Конструктор Docker Compose для Syncthing
Создайте compose.yaml для Syncthing. Выберите сетевой режим host или bridge, адрес графического интерфейса, пользователя и группу, хранилище и дополнительные папки, а затем получите файл с соответствующей проверкой работоспособности.
Ввод
Вывод
- Папка с данными и добавленные папки должны быть доступны для записи указанным выше пользователю и группе.
Документация
Что такое Syncthing?
Syncthing — это программа с открытым исходным кодом, которая синхронизирует папки между вашими устройствами напрямую, без центрального сервера. Проект предоставляет официальный образ syncthing/syncthing, веб-интерфейс которого прослушивает порт 8384, а протокол синхронизации использует порт 22000 для TCP и QUIC. Устройства в одной сети находят друг друга с помощью широковещательных сообщений через порт 21027.
Описание инструмента
Этот инструмент создает файл compose.yaml для Syncthing в соответствии с Docker README проекта. По умолчанию используется host networking, которое рекомендуется в README, поскольку в этом режиме Syncthing может видеть устройства в вашей локальной сети. В этом режиме инструмент удаляет переменную STGUIADDRESS, поэтому веб-интерфейс прослушивает адрес из настроек Syncthing — по умолчанию 127.0.0.1:8384. Также можно выбрать bridge mode. В этом случае инструмент публикует порт веб-интерфейса, порт синхронизации для TCP и UDP, а также порт обнаружения и предупреждает о недостатках bridge mode. Вы задаете hostname, пользователя и группу с помощью PUID и PGID, необязательные UMASK и PCAP, папку с данными и дополнительные папки с хоста. Добавляется health check, использующий адрес веб-интерфейса. Всё создается в браузере.
Возможности
- Host networking, рекомендуемое в проекте, или bridge mode с опубликованными портами 8384, 22000/tcp, 22000/udp и 21027/udp
- Адрес веб-интерфейса для host mode с предупреждением, если он доступен с других компьютеров
- Bind-адрес для порта веб-интерфейса в bridge mode, например
127.0.0.1 PUID,PGID,UMASKиPCAP, а также hostname для имени устройства- Папка с данными на хосте или именованный Docker volume, который будет объявлен автоматически
- Дополнительные папки для синхронизации, каждая из которых может быть доступна только для чтения
- Health check из README, настроенный для порта и адреса веб-интерфейса
- Любая другая переменная окружения, комментарии с пояснением файла и скачивание в виде
compose.yaml
Примеры
Настройки по умолчанию создают пример из Docker README для Syncthing:
services:
syncthing:
image: syncthing/syncthing
container_name: syncthing
hostname: syncthing
network_mode: host
environment:
PUID: "1000"
PGID: "1000"
STGUIADDRESS: ""
volumes:
- ./st-sync:/var/syncthing
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
restart: unless-stoppedСоветы
- Сохраните результат как
compose.yamlи запустите его командойdocker compose up -d. Затем откройтеhttp://127.0.0.1:8384 - Режим bridge mode по умолчанию в Docker скрывает локальные адреса ваших устройств, поэтому они подключаются медленно или через relay-серверы. По возможности используйте host mode
- По умолчанию образ прослушивает
0.0.0.0:8384. Поэтому в host mode переменнаяSTGUIADDRESSудаляется, а в bridge mode опубликованный порт веб-интерфейса следует привязать к127.0.0.1, если только вам не требуется доступ к нему с других компьютеров - Если веб-интерфейс доступен с других компьютеров, задайте пароль для веб-интерфейса и включите TLS в настройках Syncthing
- Папка с данными и добавленные вами папки должны быть доступны для записи пользователю и группе, указанным в
PUIDиPGID - Добавленные здесь папки отображаются в Syncthing по пути внутри контейнера, поэтому при добавлении папки в веб-интерфейсе выберите этот путь
- Порт синхронизации остается 22000, поскольку Syncthing сообщает другим устройствам, что подключаться нужно к этому порту