2022-02-03

Instalar syncthing en Debian / Ubuntu

Antes de instalar

Se recomienda iniciar el servicio con un usuario que no sea root, por lo tanto, lo primero que tenemos que hacer es crear el usuario llamado syncthing (u otro nombre), y asignamos una contraseña.

adduser syncthing
En mi caso voy a cambiar la carpeta home del usuario, entonces uso useradd en vez de adduser.
useradd -g users -d /media/datos/syncthing -m -s /bin/bash syncthing
passwd syncthing

Actualizamos el sistema antes de empezar 

apt update
apt upgrade
apt install syncthing

Ingresamos con el usuario que creamos.

su syncthing

Configuración

Ejecutar por primera vez y esperar hasta que muestre el ID del dispositivo
syncthing

Después Salir con ctrl+c

Editar el archivo ~/.config/syncthing/config.xml, cambiar la ip 127.0.0.1 a 0.0.0.0. Tiene que quedar así

vim ~/.config/syncthing/config.xml
<gui enabled="true" tls="false" debugging="false">
    <address>0.0.0.0:8384</address>
    <user></user>
    <password></password>
    <apikey></apikey>
    <theme>default</theme>
</gui>

Para que inicie automáticamente, crear el archivo y pegar lo siguiente.

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

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

[Install]
WantedBy=multi-user.target

Salimos del usuario synching para seguir com root.

Aumentar el límite de inotify para que funcione el observador del sistema de archivos

echo "fs.inotify.max_user_watches=204800" | tee -a /etc/sysctl.conf

Habilitar y arrancar el servicio

systemctl enable syncthing@syncthing.service
systemctl start syncthing@syncthing.service
systemctl status syncthing@syncthing.service

Si se configura para otro usuario.

systemctl enable syncthing@usuario.service
systemctl start syncthing@usuario.service
systemctl status syncthing@usuario.service