I want a way of keeping a central repository of files on my server, which can then be kept in sync on client computers. Basically, I want OwnCloud, except without the file history, without the user accounts, without the web UI, it should just handle keeping its directory in sync and nothing else.
Detailed list of must-have features:
- No history. I already have git, I don't want a huge database that keeps tab on my trivial file shuffling.
- Can handle a few 100s of GB and a 10k-100ks of files (including many small files from git repos), bandwidth limit aside.
- Can be backed up easily. No actual backup feature is necessary, so long as I can easily access the data on the server and back it up myself.
- Server must be able to write to the store as well without breaking it.
- Must be free and open source.
- Server program must run on Linux. Client programs must support Linux, Windows and Android.
- Traffic over the internet must be encrypted (so plain files over HTTP are not okay).
- No user accounts. I'm the only user of my server.
- Should run inside a Docker container. If there's already a Dockerfile in the Docker Hub, even better.
- Easy sharing of files of directories, that is accessible to non-expert users - I want to be able to share photos with grandma.
- Intelligent resolution of merge conflicts. Doing what Dropbox does and saving alternate versions of the file with a suffix is perfect.
- Doesn't require setting up a database at all.
Closest existing solutions and why I don't like them:
- OwnCloud - Requires database, very slow for large numbers of small files. Ridiculously high CPU usage on server.
- SeaFile - Over complicated sharing model, pain in the rear to set up on Docker, 5 ports to manage (!!!).
- Dropbox - Not self hosted.
- BTSync - Confusing sharing model which doesn't have a centralized server.