Hello, today I was looking at Syncthing and there was a pretty nice upgrade available from 1.9 stable to 2.0
I am fully aware syncthing needs access to the things it does so of course I make a service account for these types of things with all the permissions it needs set via ACL. My previously working steps went:
useradd --system --home /var/lib/syncthing --shell /usr/sbin/nologin syncthing
mkdir -p /var/lib/syncthing
chown -R syncthing:syncthing /var/lib/syncthing
usermod -d /var/lib/syncthing syncthing
nano /etc/systemd/system/syncthing.service
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization
After=network.target
[Service]
User=syncthing
ExecStart=/usr/bin/syncthing -no-browser -home=/var/lib/syncthing
Restart=on-failure
SuccessExitStatus=3 4
[Install]
WantedBy=multi-user.target
But the new version dropped the -home argument. The -no-browser I don’t think was hurting anything but when it simplified to syncthing serve this ultimately broke my configuration
Now instead of /var/lib/syncthing/config.xml being readily accessible it’s stuffed in /var/lib/syncthing/.local/state/config.xml
This path change alone is quite annoying to deal with, and I’m quite upset at the limitations in 2.0 that does not allow syncthing to run as a system service as it did with 1.9.
Additionally, I have to log in as my service account to install the application where previously this was not a requirement. I could set it all up as root and be on my merry way but because the new installer targets specifically the user’s home directory, and defaults to these paths, it’s terrible in terms of management.