Syncthing

I had to get a new phone, so decided to try Syncthing instead of Dropbox for syncing stuff like password files between devices. Seems to be working great:

PC screenshot:

Phone:

From there I can use Password Safe to open the password file on whatever device I am using.

I’ve been using Syncthing for about a year now synchronizing my laptop that travels to the office with me and my desktop which I prefer to work on while I’m at home since it has significantly more resources. It has made my life very easy keeping these two machines synchronized, however, it’s taken some effort to get the ignore patterns right, especially for build environments.

These are the ignore patterns I use for my SSD that holds all of my Yoe builds:

**build
**buildhistory
**cache
**SDK
**sysroots

I’ve been looking through different websites, but I haven’t found where anyone has created a “developer’s list of ignore patterns”. If anyone knows of a good starting point, please share, if not, maybe we should create one?

1 Like

Still using Password Gorilla (and have for years), but I’m concurrently trying KeePassXC because it allows me to store TOTP keys. When used carefully, this allows me to use multiple devices to unlock accounts that use two factor authentication. I needed to drop Google Authenticator because it doesn’t easily allow you to sync with other devices… and I want to employ Syncthing for the sync.

Anyway, glad to see you have kicked the tires on Syncthing. It’s pretty great.

1 Like

KeePassXC looks pretty nice! What do you use TOTP keys for?

Does KeePassXC support a tree of password entries (multi-level), vs just a single level of groups? That is one thing I really like about pwsafe/gorilla that I have not found in other password managers (like bitwarden). Often I’ll have something like customer->server->app->accounts. With a single level of groups, it is difficult to organize things like this.

So, I had this same question – is 3-way sync possible?

https://www.reddit.com/r/Syncthing/comments/i8ppor/is_3way_sync_possible/

I was wondering if a three-way peer->peer config is safe?, e.g. each node is in two sync with the other two nodes

A <-> B & C

B <-> A & C

C <-> A & B

Syncthing handles this.

For example, I have my stuff shared across three devices: homePC, phone and laptop. If I change something on homePC, and phone picks it up, the phone then can propagate those changes to my laptop, even if homePC isn’t on anymore when I turn on the laptop.

Now, if I turn off my phone, and delete the file from laptop, homePC will also delete it.

In this scenarios, all devices are in the Send/Receive mode, which I believe is the default on all platforms.

So this is pretty neat – if I take my phone and laptop traveling, they can stay in sync. When I get home, then they will sync to the office workstation.

I need to give syncthing a serious try

I really like Syncthing so far – in this age of cheap disk space, it is often easier to sync than share files. In the past, we have maintained a shared “fileserver” using sshfs. However, fileservers are fraught with file permission problems. Lately, I’ve been reorganizing stuff a bit and simply sharing stuff with Syncthing. One benefit of this is you get some redundancy. Another benefit is that files are local, so things always work and it is always fast.

The new “fileserver” model is going well. Each toplevel directory on the fileserver is a separate syncthing share and then shared with devices that need access to those files:

Some benefits:

  • no VPN needed to access files when out of the office – they are local
  • the “fileserver” does not need to be running all the time, as things get sync’d next time it is up. We can power if off at night, etc.
  • the “fileserver” can be rebooted any time without disrupting the work of others.
  • we are not dependent on the network working 100% of the time.
  • working with local files (especially media) is nice as everything is fast.

There are likely some datasets where it does not make sense to replicate data (ex: video), but for most other forms of data that humans create and use (documents, photos, music, etc), replication works just fine.

Still a very happy user of Syncthing – again, the key is to have granular shares so that you can share just what is needed with each device. Permissions are granted when you share a folder so there are no fussy fileserver permissions issues to deal with which you often encounter when using a common file store with multiple users. With Syncthing, files are local so they are blazing fast.

I recently finished setting up Syncthing on my Boox Note Air2. It has been a while, but I think I just side-loaded the APK. I split out my digital books collection into a share called fileserver/books and synced that to the Note Air2. Now, to add a new book to the tablet, I just drag a PDF or ePub to the “books” folder on any computer, and it magically shows up on the Air2. If I reorganize my collection on a computer, those changes get transferred to the tablet.

This is the way technology should work!

I will probably add another share for current news, articles, etc, and try to get more in the mode of moving articles I want to read to the boox and have a dedicated reading time instead of reading them online as I encounter them to minimize distraction.

Another cool feature of Syncthing is that you send files encrypted to another “less trusted” peer. For example, you can backup a bunch of files to a cloud instance encrypted. Then, anyone can sync with that peer as long as they have the password.

So imagine A <--> Cloud <--> B where the cloud instance only sees encrypted data, but A and B can sync even when they are not concurrently powered up.

1 Like

I have half of my household on android and half on apple ecosystem which prevents me to use it. I wonder if they will comeup with apple port.

Yeah, same here – everyone else here has iPhones …

It is interesting the differences between Android and iOS that prevent Syncthing from working well:

Syncthing only syncs when you connect for a brief period, as ios doesn’t permit a daemon running full time in the background. Another limitation of the ios operating system is it does not allow me to open a file directly, but I must import it into the app. This may be a limitation of the app along with the ios operating system.

Syncthing can be configured on Android to only run when on AC power – that is what I do with my phone and tablet.

https://www.mobiussync.com/ – might be an option on iOS – looks like a hack, but probably works well enough for some things.

I like the iPhone cameras and the ability to copy images between apps. But the flexibility of Android keeps me there. The same comparison can be made with MacOS and Linux – there is certainly some nice polish in MacOS systems, but the simplicity and flexibility of Linux is so much nicer for me – even on a laptop (really like the MSI Prestige).

It exists but has important limitations. Notably, it won’t work to sync photos, videos because iOS does not treat them like “files”.

To me its the apple hardware which I think is better than others, it would be good if it ran Linux on Macs :slight_smile: as first class desktop OS but thats just me. For phones, I dont know, limited set of apps I use iPhones are best.

Yeah, Apple HW is the best – M1/M2 is amazing …

This guy likes his new iPhone: