Как сделать автозапуск Syncthing

Это продолжение темы про Syncthing. В предыдущей статье я рассказал как установить официальные репозитории Syncthing чтобы обновления устанавливались по мере их выхода и содержали Syncthing в актуальном состоянии. В этой статье я коротенько расскажу как сделать, чтобы Syncthing запускался автоматически. Это точно работает на Ubuntu 14.04 LTS, я проверял :)

О вариантах автозапуска Syncthing

Есть несколько вариантов организации автозапуска Syncthing, это запуск вместе с графической оболочкой при запуске сеанса пользователем (подходит для не обременённого пользователя), запуск как сервис системы (фактически сервер для всех) и запуск под именем одного из пользователей, например хозяина компьютера (без варианта использования для других пользователей). И ясное дело, что я использую последний вариант.

Как настроить автозапуск

Требуется создать в системном каталоге файл (/etc/init/syncthing.conf) и перезапустить всю систему.

Делаем последовательно:

Открыть терминал комбинацией [CTRL+ALT+T]

Для Ubuntu 16.04 и старше

По идее должна быть замена $USER на имя текущего пользователя

systemctl enable syncthing@$USER.service
systemctl start syncthing@$USER.service

Всё как бы.


Для Ubuntu раннее, чем 16.04

Запустить команду редактора от имени root:

sudo nano /etc/init/syncthing.conf

Вставить содержание файла /etc/init/syncthing.conf:

description "Syncthing P2P sync service"
start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]
env STNORESTART=yes
env HOME=/home/$USER
setuid "$USER"
setgid "$USER"
exec /usr/bin/syncthing
respawn

Замените $USER на требуемое (например ваше) имя пользователя.

И сохранить файл /etc/init/syncthing.conf нажав в редакторе [CTRL+O] и для выхода [CTRL+X]

Продолжение для всех систем

В терминале пишем для перезагрузки:

sudo reboot

После перезапуска системы, запускаем браузер по адресу https://localhost:8384 и смотрим как оно работает.

Примечание

узнать на каком порту работает Syncthing можно посмотрев в файле

~/.config/syncthing/config.xml

вот такую строку (в нашем случае указан порт 8384):

<gui enabled=»true» tls=»false»> <address>127.0.0.1:8384</address>

это говорит, что веб-интерфейс администрирования сервера откликается только локально, но изменив адрес на

0.0.0.0:8384

Вы получаете доступ по сети с других IP-адресов. Войдите в этот веб-интерфейс и установите имя и пароль админа (я думаю это крайне полезно).

Далее в конфиге есть указание общаться с серверами с любых адресов на порту 22000. Этот порт должен в вашей сети быть открыть в NAT, или если он блокируется.

<options> <listenAddress>0.0.0.0:22000</listenAddress>

В домашнем каталоге вашего пользователя как $USER появится каталог

~/Sync

который предназначен для создания в нём структуры каталогов синхронизаций. Естественно, этот каталог по-умолчанию создан и предложен.

Вы можете свои домашние папки, такие как Документы, Загрузки, Изображения и т.д. настроить для синхронизации с другим своим компьютеров, связав те же папки. И вот у вас уже одинаково на каждом и компьютеров.

Написал всё по мотивам документации.

UPDATE

Для любителей графических интерфейсов, теперь есть такое для Syncthing. Установите конечно сперва Syncthing, а потом поставьте графический интерфейс GTK:

sudo apt install syncthing-gtk