🔄 Своя Dropbox-альтернатива: Syncthing

🔄 Своя Dropbox-альтернатива: Syncthing

🧠 Зачем?

Облачные сервисы — удобно, но:

  • не хочется платить Google/Dropbox за хранение своих файлов
  • хочется моментально синхронизировать фото, документы и заметки между устройствами
  • и делать это на своём сервере, без отправки данных «в облако»

👉 Решение — Syncthing:
децентрализованный, зашифрованный, open source-синк между любыми устройствами.


🚀 Что ты получишь?

  • 📂 Автосинк папок между сервером, ноутбуком, телефоном (Android/iOS)
  • 🔒 Сквозное шифрование и передача по локальной сети
  • ☁️ Собственный "Dropbox", но без интернета и подписок

📦 Что уже готово

  • ✅ Docker и Docker Compose установлены
  • ✅ Traefik настроен (по этой инструкции)
  • ✅ У тебя есть домен вида sync.home.example.com

Создай папку для данных и конфигов:

mkdir -p /opt/docker/syncthing

⚙️ Docker Compose конфигурация

Добавляем в наш docker-compose.yml:

  syncthing:
    <<: *defaults
    image: syncthing/syncthing
    container_name: syncthing
    hostname: my-syncthing
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - /opt/docker/syncthing:/var/syncthing
    ports:
      - 22000:22000/tcp  # TCP-передача
      - 22000:22000/udp  # QUIC-передача
      - 21027:21027/udp  # Обнаружение устройств в локалке
    healthcheck:
      test: curl -fkLsS -m 2 127.0.0.1:8384/rest/noauth/health | grep -o --color=never OK || exit 1
      interval: 1m
      timeout: 10s
      retries: 3
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.syncthing-opt.rule=Host(`sync.home.example.com`)"
      - "traefik.http.routers.syncthing-opt.entrypoints=https"
      - "traefik.http.routers.syncthing-opt.tls.certresolver=myresolver"

Запускаем:

docker compose up -d

Теперь интерфейс доступен по адресу:
🔗 https://sync.home.example.com


👩‍💻 Первичная настройка Syncthing

  1. Зайди в веб-интерфейс
  2. Установи имя устройства (например, home-server)
  3. Добавь папку для синка (например, /var/syncthing/shared)
Папки внутри контейнера можно смонтировать в volumes, если хочешь доступ снаружи

💻 Подключаем ноутбук (Linux, macOS, Windows)

  1. Скачай Syncthing: https://syncthing.net/downloads/
  2. Установи и запусти
  3. Зайди в интерфейс (обычно http://localhost:8384)
  4. Добавь устройство → введи Device ID сервера
  5. На сервере подтверди соединение
  6. Настрой общую папку

Готово — теперь всё будет синхронизироваться автоматически.


📱 Подключаем Android

  1. Установи Syncthing Android
  2. Запусти, прими права на хранилище
  3. Подключи устройство:
    • Зайди в «Устройства» → «Добавить»
    • Отсканируй QR-код сервера (или введи ID)
  4. Добавь папки:
    • Например, DCIM/Camera для автосинка фото
    • Или Download, чтобы забирать файлы с телефона на сервер

🍏 Подключаем iOS

Для iOS есть Syncthing для iOS (Mobius) — он работает в фоне, но с ограничениями:

  • Запуск синка требует открыть приложение
  • Нельзя синкать системные папки напрямую (ограничения iOS)

Но ты можешь:

  • Добавить «каталоги» внутри приложения (например, документы, заметки)
  • Настроить обмен с сервером или ноутбуком

🔐 Безопасность та же: сквозное шифрование, без сторонних облаков.


🛡️ Безопасность

  • Все соединения — шифруются
  • Нет стороннего сервера: синк происходит напрямую
  • Синхронизация работает по локальной сети, если оба устройства в одной Wi-Fi

🧠 Что можно синхронизировать?

  • 📸 Фото и видео с телефона
  • 📄 Документы, заметки, пароли
  • 🔁 Папку Downloads с ноутбука и сервера
  • 🗂️ Бэкапы, проекты, конфиги

🎁 Бонус: автоматическая очистка и версионирование

Syncthing умеет:

  • Хранить версии файлов
  • Автоматически удалять старые файлы
  • Переименовывать удалённые/изменённые файлы в .stversions

Настраивается для каждой папки в её свойствах.


✅ Результат

ВозможностьЕсть ✅
Мгновенный синк между всеми девайсами
Поддержка Android и iOS
Полная автономность и приватность
HTTPS-доступ через Traefik
Без подписок и сторонних серверов

📎 Полезные ссылки