HACKER Q&A
📣 wdfx

How best to sync a subset of my files with a friend?


Here's the use case:

I'm working on a music project with a friend. I want to be able to share the files with him so that he can work on the project himself. We also want that any changes either of us make on our machines get synced automatically to the other, and also possibly a 3rd/4th destination for backup.

I would like to avoid using Dropbox or other cloud storage services if possible. This is enough data being exchanged that the cost will start to add up. However, if no straightforward self-hosted solution is available, I will likely concede and just pay for a solution. I'd be happy to hear recommendations for this route.

At the moment all the files are on my machines (1x desktop, 1x laptop, 1x linux server) all synced on my local network using syncthing.

My friend is a little bit tech savvy, but he won't be interested in using anything other than using a GUI which is well designed and robust. He won't be able to use CLI or want to mess with editing config files. He's on Windows 11. Also note that I really want to do the same in Windows environment, so we would both be using the same solution to sync in Windows.

Final requirement is that the solution must only expose the files on the path I specified, I am not interested for example in SFTP that exposes my entire linux server.

What are my options for a self-hosted solution? I am able to open ports and route services into my linux server at home. You can assume I'm expert level at running services on a linux server.


  👤 svennek Accepted Answer ✓
I would use syncthing, which is open source at https://syncthing.net/.

After minimal setup, it just works(tm).

You have a normal directory in your filesystem, that is synced to the other peers (which you set up in the "minimal setup").

I have been using it for years, and it works well. It has no problems crossing os'es (i.e. windows -> linux, linux -> mac)

For windows I usually recommend https://github.com/canton7/SyncTrayzor, but vanilla syncthing works fine too (but don't try to mix them!)


👤 frankjr
> I am not interested for example in SFTP that exposes my entire linux server

You can specify the exact directory via ChrootDirectory.


👤 dsr_
You already use Syncthing. Set up a second share.