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

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

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

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

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

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

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

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

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

замените в командах ниже %USERNAME% на своё имя

systemctl enable syncthing@%USERNAME%.service
systemctl start syncthing@%USERNAME%.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/%USERNAME%
setuid "%USERNAME%"
setgid "%USERNAME%"
exec /usr/bin/syncthing
respawn

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

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

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

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

sudo reboot

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

Примечание

узнать на каком порту работает Syncthing можно посмотрев в файле /home/morikoff/.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>

В домашнем каталоге вашего пользователя как %USERNAME% появится каталог ~/Sync, который предназначен для создания в нём структуры каталогов синхронизаций. Но это ещё не всё. В следующей статье я расскажу о практическом применении Syncthing, если это будет интересно кому-то. Пишите в комменты.

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