Установка Syncthing в Linux

Введение

В данной заметке разберем установку Syncthing в Linux, будем использовать доменное имя и выпустим для него бесплатный SSL сертификат

Если коротко, Syncthing – это Open Source, кроссплатформенное, приложение для синхронизации файлов между двумя и более клиентами, обходит NAT (вам не нужно наличие белого адреса), использует TLS шифрование и т.д.

Например с помощью нее вы можете синхронизировать свои фотографии с телефона на компьютер, какие-либо рабочие директории с одного пк на другой, я его использую для синхронизации базы Obsidian между рабочим и домашним пк, для синхронизации фотографий с телефона на домашний пк, для пароль менеджера и т.д.


Установка Syncthing

Я буду устанавливать Syncthing на Debian 11, с использованием доменного имени sync.site.ru, использовать домен не обязательно, если у вас его нет пропускаем пункт с nginx и certbot

1. Установим нужные пакеты

apt install curl apt-transport-https

2. Импортируем GPG ключ и добавим репозиторий

curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | tee /etc/apt/sources.list.d/syncthing.list

3. Обновляем список пакетов и устанавливаем Syncthing

apt update && apt install syncthing -y

4. Создаем нового пользователя

useradd -m syncthing

5. Настроим нашу службу

nano /etc/systemd/system/syncthing@.service
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target

[Service]
User=%i
ExecStart=/usr/bin/syncthing -gui-address="0.0.0.0:8384" -no-restart -no-browser -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

[Install]
WantedBy=multi-user.target

6. Перечитаем настройки, включаем автоматический запуск службы и стартуем ее:

systemctl daemon-reload
systemctl enable syncthing@syncthing
systemctl start syncthing@syncthing

7.  Увеличиваем лимиты, или при большом количестве файлов будем получать предупреждение в веб морде и синхронизация не будет работать:

echo 'fs.inotify.max_user_watches=204800' >> /etc/sysctl.conf
sysctl -p

8. Готово, переходим в браузер по адресу:

http://ip-сервера:8384

И тут нас встречает сообщение “GUI аутентификация: Установите имя пользователя и пароль“, переходим в Настройки=>Интерфейс и устанавливаем логин и пароль для веб морды

Установка Syncthing в Linux
Установка Syncthing в Linux

Готово, на этом этапе, если вы не хотите использовать доменное имя, можно заканчивать и переходить к добавлению устройств и настройке синхронизации, единственное во вкладке Интерфейс рекомендую так же включить чекбокс на “Использовать HTTPS для панели управления” и пользоваться Syncthing уже на https://ip-сервера:8384.

Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT


Получаем SSL сертификат для Syncthing

Мы будем проксировать Syncthing с помощью Nginx и выпустим SSL сертификат для нашего домена используя Certbot

1. Установим nginx и certbot

apt install nginx certbot python3-certbot-nginx

2. Создаем конфиг nginx (замените sync.site.ru на свой домен):

nano /etc/nginx/sites-enabled/sync.site.ru.conf
server {
    listen 80;
    server_name sync.site.ru;

    location / {
        proxy_pass http://127.0.0.1:8384;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

3. Перезагружаем Nginx:

systemctl restart nginx

4. Выпускаем SSL сертификат

Если пользуемся Certbot в первый раз, то вводим почту, соглашаемся с политикой и другими вопросами, будет предложено выбрать домен для которого нужно выпустить SSL сертификат, выбираем и жмем Enter:

certbot --nginx
Установка Syncthing в Linux

5. Бежим в браузер проверять если Certbot не выдал ошибок на

https://sync.site.ru

Так же рекомендую закрыть 8384 порт любым удобным для вас способом.


Вывод

В данной небольшой заметке разобрали установку Syncthing в Linux, с использованием своего домена и защищенного https соединения, настройки или примеры разбирать не буду, у них на сайте достаточно подробная документация и нормальный форум, так что велком.

Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT, спасибо за потраченное время на чтение и доброго времени суток!)

Так же вы можете отблагодарить автора материально:

Оставьте комментарий