Syncthing is a file synchronization tool. I decided to try it after seeing this post on hacker news. Many posts have been written about how awesome it is, and this is another one of those – I’m really having fun with it.
I mainly run
syncthing on three devices – my Android phone, my server, and my laptop.
I ended up switching to it because I upgraded my laptop to Ubuntu 20.04, and this broke Unison, which I had previously been using to synchronize a few folders between my server and laptop.
After several hours wasted didn’t solve the issue, I gave up on it altogether, and I’m glad I did.
Setup was straightforward on my Ubuntu laptop.
On the server, I had to do a few manual steps.
After adding the apt rep and installation, I copied a systemd unit file from here.
I wasn’t familiar with the
@.server and the
User=%i syntax of unit files, and I still can’t find it documented anywhere.
This confused me for a bit, but eventually I got the file named properly, reloaded unit files with
systemctl daemon-reload, and got the service running with
systemctl enable and
systemctl start firstname.lastname@example.org.
Next, I wanted to get into the configuration web GUI. I used a local tunnel:
ssh -L 4567:localhost:8384
I was then able to visit localhost:4567 in my local browser and configure
syncthing on the server.
I picked a custom port for the
syncthing protocol, and punched a firewall hole for incoming connections on that port.
Also, I picked a custom port for the web GUI server, so I wouldn’t conflict with other users who might want to enable their own
I set the web GUI to only listen on localhost, and then added a reverse proxy to this port from my web server config.
ProxyPass /syncthing/ http://localhost:12345/ ProxyPassReverse /syncthing/ http://localhost:12345/
On my phone, I wanted
syncthing to be able to write stuff onto the SD card.
Apparently, this is not currently possible.
I worked around it by granting Syncthing root permissions, which works for me on my rooted Lineage android build.
What I use
- removed google photos from my phone and allowed syncthing to sync photos directly to my laptop. This is especially handy when I use my phone as a scanner (to take photos of documents for archival), since I then immediately have them available for email. It’s nice to be off Google photos – one step closer to a google-free life!
- syncing my documents folder between laptop and server
- local cache of music. I prviously used
dsub to play my
music collection, and occasionally had to fight it’s cache system to convince
it that I really wanted it to cache my entire music library. Now, I just
syncthingmy music collection onto the SD card in my phone, and then play it with Pulsar
- i use a text-based email reader (mutt) which I access
while SSHed into my server. Dealing with attachments can be annoying.
Previously, I would save them to a web scratch folder and open them in a
browser. Now, I simply keep a
syncthinged scratch folder and throw them into there – they’re immediately accessible on my laptop.