Два Docker‑контейнера, которые заменили платные облака: Syncthing + OpenCloud

Два Docker‑контейнера избавили меня от оплаты облаков: Syncthing для мгновенной P2P‑синхронизации и лёгкий «OpenCloud» для веб‑доступа, шаринга и онлайн‑редактирования — без абонплат и с полным контролем над данными.

TL;DR

  • Публичное облако удобно, но стоит всё дороже и отнимает контроль над данными.
  • Решение — радикальное упрощение: всего два контейнера.
  • Syncthing: децентрализованная, шустрая P2P‑синхронизация без центрального сервера.
  • «OpenCloud»: лёгкий self‑hosted веб‑интерфейс наподобие Google Drive/OneDrive с шарингом и онлайн‑документами.
  • Итог: ноль подписок, полная приватность, скорость локальной сети и доступ из браузера с любого устройства.
  • Альтернативы для роли «OpenCloud»: ownCloud/Seafile (производительность и офис), File Browser (сверхлёгкий), Nextcloud AIO (максимум функций).

Почему два контейнера вместо подписок

Обещание публичных облаков — «все файлы всегда с вами» — часто разбивается о две вещи: скрытую инфляцию стоимости (чем больше данных и устройств, тем выше чек) и потерю контроля (внешние сервера, egress‑трафик, локация хранения, политика провайдера). Ответ оказался не в увеличении железа или покупке массивов SSD, а в упрощении архитектуры. Два контейнера закрывают 90% сценариев: мгновенный обмен между своими устройствами и аккуратный веб‑доступ с шарингом и редактированием, когда это нужно.

Контейнер №1: Syncthing — бесшовная P2P‑синхронизация

Syncthing — это децентрализованная синхронизация файлов без центрального сервера. Типичный сценарий: делаю скриншот на телефоне, и через секунды он уже на ноутбуке или домашнем сервере. Не нужно ждать, пока файл уйдёт в облако и вернётся обратно; устройство‑к‑устройству — напрямую и быстро.

  • Без центрального хранилища: файлы остаются на ваших устройствах; передача строится по локальной сети при возможности.
  • Инкрементальные блоки: пересылаются только изменения внутри файла, экономя время, батарею и трафик.
  • Тонкая политика папок: двусторонняя синхронизация для рабочих документов, «Send‑only» для фотопотока с телефона — и порядок гарантирован.
  • Шифрование в транзите и устройство‑уровень авторизации: каждое подключение подтверждается, нет «открытых дверей».
  • Гибкое управление: игнор‑паттерны, версионирование, ограничения по скорости, понятная веб‑панель.

Зачастую Syncthing вообще снимает потребность в «облаке»: ничего не грузится «куда‑то», ничего не ждёт бекэнда — просто ваши узлы обмениваются данными по локальной сети или через ретрансляцию, если вы вне дома. Для повседневных задач этого достаточно в подавляющем большинстве случаев.

Быстрый старт (пример docker‑compose для Syncthing)

version: "3.8"
services:
  syncthing:
    image: lscr.io/linuxserver/syncthing:latest
    container_name: syncthing
    network_mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Moscow
    volumes:
      - ./syncthing/config:/config
      - ./data:/data
    restart: unless-stopped

После запуска откройте веб‑панель на хосте, добавьте устройства друг к другу, определите папки и режимы («Send‑only», «Receive‑only», двусторонняя). Дальше всё работает без вашего участия.

Контейнер №2: OpenCloud — центральная точка доступа для совместной работы

Если Syncthing — идеален для мгновенной P2P‑синхронизации между собственными устройствами, то роль «OpenCloud» — быть единой точкой входа в файлы через браузер из любой точки мира. Это знакомый файловый менеджер со структурой папок, предпросмотром, шарингом по ссылке (с паролями и сроками), поиском и версионированием. Плюс интеграция с офисным редактированием документов, таблиц и презентаций без скачивания.

В качестве альтернативы для OpenCloud чаще всего выбирают одно из следующих решений:

  • ownCloud — классический сервер с веб‑интерфейсом, WebDAV, ссылочным доступом и интеграцией с офисными редакторами. Известен предсказуемостью и зрелостью.
  • Seafile — лёгкий и быстрый по ощущениям, особенно на больших наборах файлов; хорошо работает с библиотеками и дельта‑синхронизацией. Часто рассматривается как более шустрая альтернатива тяжёлым комбайнам.
  • File Browser — сверхлёгкий одноконтейнерный файловый веб‑интерфейс для тех, кому нужен минимализм без лишних сервисов. Отличный «лайт»‑вариант.

Минимальный «OpenCloud‑лайт» на базе File Browser

version: "3.8"
services:
  opencloud:
    image: filebrowser/filebrowser:latest
    container_name: opencloud
    user: "1000:1000"
    ports:
      - "8080:80"
    volumes:
      - ./opencloud/root:/srv
      - ./opencloud/filebrowser.db:/database/filebrowser.db
      - ./opencloud/settings.json:/config/settings.json
    restart: unless-stopped

Этого достаточно, чтобы получить аккуратный веб‑доступ к файлам, загрузки, скачивания и базовый шаринг. При необходимости можно перейти к ownCloud/Seafile и подключить офисную редактуру через отдельный контейнер офисного пакета.

Практические сценарии и настройки

  • Рабочие документы: двусторонняя папка в Syncthing между ноутбуком и сервером — правки мгновенно появляются на обоих. Финальные версии и архивы — в «OpenCloud».
  • Фото с телефона: папка «Send‑only» на мобильном клиенте Syncthing; сервер — «Receive‑only». Так бэкап идёт односторонне, без риска случайной правки на сервере.
  • Шеринг крупных файлов: выгрузили в «OpenCloud», создали ссылку с паролем и сроком жизни — и отправили адресату.
  • Коллаборация: подключили офисный движок к ownCloud/Seafile — документы редактируются прямо в браузере без внешних сервисов.

Архитектура: как сделать надёжно и удобно

  • Сеть и доступ: поднимите обратный прокси с автоматическими сертификатами и включите HTTPS для «OpenCloud». Для доступа из‑вне без проброса портов удобно использовать современный VPN‑оверлей.
  • Резервные копии: синхронизация — не равно бэкап. Поставьте автоматический бэкап конфигов и данных (например, дедупликация и версии), храните копии офф‑сайт.
  • Файловая система и снапшоты: снапшоты на уровне тома (например, в файловых системах с поддержкой мгновенных снимков) помогают быстро откатывать ошибки и вымарывания.
  • Шифрование на диске: включите шифрование томов на уровне хоста, чтобы защитить данные при потере/выводе из эксплуатации диска.
  • Ресурсы: Syncthing нетребователен к RAM/CPU; «OpenCloud» выбирайте по задачам: от сверхлёгкого File Browser до более функциональных ownCloud/Seafile.

Подборка альтернатив и полезных дополнений

  • ownCloud — классика для роли «OpenCloud»: стабильный веб‑интерфейс, ссылки, версии, расширения, офис через подключаемый сервер документов.
  • Seafile — заметно быстрее на больших библиотеках, удобная модель «библиотек», экономный по ресурсам.
  • File Browser — минималистичный и быстрый способ получить файловый веб‑доступ в один контейнер.
  • Nextcloud AIO — монолит со всем и сразу (контакты, календари, задачи, офис), но ощутимо тяжелее.
  • ONLYOFFICE Docs / Collabora Online — добавляют онлайн‑редактирование документов для ownCloud/Seafile/Nextcloud.

Сколько это занимает и чего стоит

На практике достаточно мини‑ПК или домашнего сервера с одним‑двумя дисками. Syncthing «ест» считанные сотни мегабайт RAM, лёгкий «OpenCloud» — сопоставимо. Комбинация даёт мгновенную локальную синхронизацию и полноценный удалённый доступ — без ежемесячных платежей, без лимитов по устройствам и без вывоза данных к стороннему провайдеру.

Итог

Два контейнера действительно могут заменить подписку на облако. Syncthing закрывает скорость и приватность P2P‑синхронизации, а «OpenCloud» даёт привычный веб‑опыт с шарингом и офисом. Под ваши задачи вы выбираете лёгкость или функциональность, а при росте требований добавляете нужные модули. Никакой магии — только радикальное упрощение и грамотная сборка.

Бонус: минимальный docker‑compose stack «в одну команду»

version: "3.8"
services:
  syncthing:
    image: lscr.io/linuxserver/syncthing:latest
    container_name: syncthing
    network_mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Moscow
    volumes:
      - ./syncthing/config:/config
      - ./data:/data
    restart: unless-stopped

  opencloud:
    image: filebrowser/filebrowser:latest
    container_name: opencloud
    user: "1000:1000"
    ports:
      - "8080:80"
    volumes:
      - ./opencloud/root:/srv
      - ./opencloud/filebrowser.db:/database/filebrowser.db
      - ./opencloud/settings.json:/config/settings.json
    restart: unless-stopped

Запускайте, настраивайте правила синхронизации, включайте бэкапы — и счёт за облака останется в прошлом.

Фото аватара

Сергей Шац

Специализация: ZeroCode, NoCode, LowCode
Современные подходы интеграции систем

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *