A Brief Exploration of Syncthing
Syncthing is an incredible tool. Many days past I stumbled upon it as an alternative to Dropbox. It’s different from Dropbox, or similar services, though, in a number of ways. For one, Syncthing is a peer-to-peer synchronization program, whereas Dropbox is a centralized file storage and synchronization service. When you setup and use Syncthing, the files only ever live on whichever peers you setup. This is different from Dropbox, or similar services, where files live on their servers. There’s more to it, and for all the details, the Syncthing website provides plentiful information.
In this post, I want to discuss how to setup Syncthing, and some use-cases for it. In future posts, I want to explore setting up custom relay servers, and perhaps some more use-cases as well.
Install the appropriate package for your operating system. Syncthing is available on just about every OS out there. Syncthing already has thorough installation documentation, so I won’t re-write what’s already available. I will discuss how I setup my Syncthing instead.
On my desktop, running Arch Linux, I installed the necessary package:
$ sudo pacman -S syncthing
When I was running Gnome, I also installed
syncthing-gtk to provide a tray
icon. After my switch to KDE Plasma, the Syncthing application displays a tray
icon by default, and so I removed the now unnecessary package. When I had a
Windows partition, I also installed
SyncTrazor for a tray icon.
The second device of choice is my Android phone, where I installed the Syncthing app (helpfully available on F-Droid too!).
With packages installed on both devices, I then followed the guide. All things considered, it was a very easy process.
One of the most immediate uses I had for Syncthing was music. I finally decided
to drop all streaming services, and start buying my music. As a result, I
suddenly had a growing music library available on my desktop. This was the
primary reason I decided to try Syncthing: to get music files from my desktop
onto my phone. After setup, syncing was a breeze. The new problem became space:
I have quite a bit of music now, and I don’t necessarily want all of it on my
phone. Conveniently, Syncthing allows for creating a
.stignore file, which
tells Syncthing which files to exclude from synchronizing. The
documentation provides a great
breakdown of available options. One challenge is that the
.stignore file is
not synchronized. To get around this, I setup my ignore file to include a
second file, which does get synchronized. That file lists every directory and
subdirectory in my music folder, and then ends with
**/*. For any directory or
subdirectory (generally artist and album, respectively) that I want to sync, I
! before it. The eventual plan is to automatically update the file
whenever new music is added to the directory. When I get around to that, I’ll
almost certainly post about it.
Use-Case: Notes / To-Do
Not long after music, I started looking around for a good to-do / note-taking app for my phone. I wanted an application that was simple, without bells and whistles. I tried a few before settling on Markor. This app is wonderful. Everything I want, with almost nothing I don’t. It’s open-source, actively developed, available on F-Droid; it works on local files, and that’s it. I started using it to track my gym workouts, make grocery lists, or track suggestions for media. As long as I was on wi-fi, those files were waiting for me on my desktop. Very convenient, simple, and effective.
Another straight-forward use case: synchronizing pictures. As I continue to “de-Google” my life, I needed a replacement for Google Photos. I have a Flickr, but I’m not certain that I’ll hang onto it. For now, I just need a simple way to synchronize pictures between my phone and my desktop, and Syncthing provides that.
I’m writing this post as part of #100DaysToOffload, an initiative to inspire writing habits. Perhaps you could do the same.