Auto-start Syncthing on Linux Boot with systemd
By default, Syncthing on Linux needs to be started manually each session. This guide sets it up as a native systemd service so it runs automatically on every boot — no terminal required after setup.
Tested on Debian 12 (bookworm) with Syncthing installed from the system package manager.
Prerequisites
- Linux with systemd (Debian, Ubuntu, Raspberry Pi OS, etc.)
- Syncthing installed (
apt install syncthingor equivalent) - A user account to run it under
Step 1 — Check Syncthing is installed
1
2
which syncthing
syncthing --version
The system syncthing service unit expects the binary at /usr/bin/syncthing. If yours is elsewhere (e.g. installed manually), adjust accordingly.
Step 2 — Kill any running instance
If you have been running Syncthing manually, stop it first. The systemd service locks the database and will fail to start if another instance already has it open.
1
pkill syncthing
If nothing was running, this will return silently — that’s fine.
Step 3 — Enable the service
Syncthing ships a templated systemd unit (syncthing@.service) that accepts a username. Enable it for your user:
1
sudo systemctl enable syncthing@bailey
Replace bailey with your actual Linux username. You should see:
1
Created symlink /etc/systemd/system/multi-user.target.wants/syncthing@bailey.service → /usr/lib/systemd/system/syncthing@.service.
Tip: You can confirm your username with
whoamiif you’re unsure.
Step 4 — Start the service
No reboot required — start it immediately:
1
sudo systemctl start syncthing@bailey
Step 5 — Verify it is running
1
systemctl status syncthing@bailey
Look for Active: active (running) and enabled in the Loaded line:
1
2
3
● syncthing@bailey.service - Syncthing - Open Source Continuous File Synchronization for bailey
Loaded: loaded (/usr/lib/systemd/system/syncthing@.service; enabled; preset: enabled)
Active: active (running) since ...
The enabled keyword confirms it will start automatically on every boot.
You can also open the Syncthing web UI to confirm it is live:
1
http://127.0.0.1:8384
Warning: If the service fails to start with
Error opening database: resource temporarily unavailable, another Syncthing instance is still running. Runpkill syncthingand try again.
How it works
| Concept | Detail |
|---|---|
syncthing@.service |
A templated unit file — the @ accepts a username |
systemctl enable |
Creates a symlink so the service starts at boot |
systemctl start |
Starts the service immediately without rebooting |
enabled in status |
Confirms the service is registered for autostart |
--no-browser |
Prevents Syncthing opening a browser on launch |
--no-restart |
Lets systemd handle restarts rather than Syncthing’s own watchdog |
Managing the service
| Command | What it does |
|---|---|
sudo systemctl stop syncthing@bailey |
Stop the service |
sudo systemctl restart syncthing@bailey |
Restart the service |
sudo systemctl disable syncthing@bailey |
Remove from autostart |
systemctl status syncthing@bailey |
Check current status |
journalctl -u syncthing@bailey -f |
Tail live logs |
journalctl -u syncthing@bailey --no-pager -n 50 |
Last 50 log lines |
Syncthing will now start silently in the background on every boot, accessible at http://127.0.0.1:8384.
