01 Your machines, not a data mining service
Old laptop? Raspberry pi? perfect.
-
Hub and spoke
All connected machines store the files. Hub centralizes communication over TLS.
-
Delta sync
Only the changes are sent over the wire. libreflect is faster than rsync.
-
No runtime dependencies
One `sinkd-srv` and the rest are `sinkd`. One line to install, one line to run.
-
Conflicts kept
The hub is the source of truth. If you also edited, those files are set aside, not overwritten.
-
Pair on the LAN
The hub prints a 6-digit code. Type it once on the other machine. Done.
02 Try it
Edit a file. Watch it surface.
laptop
- notes.md
- todo.txt
- photos/
desktop
- notes.md
- todo.txt
- photos/
desktop · ~/.local/state/sinkd/conflicts/
- nothing set aside
Both machines have the same notes.md.
03 How it works
One hub. The rest follow.
Run sinkd-srv on the machine that should hold the files. Run sinkd everywhere else, and name the folders to watch. A save is pushed. A file that shows up on the hub is pulled. A delete on one side becomes a delete on the other.
A share is one tree for every client. An anchor is one tree per user. Both live on the hub, under the directory you gave --sync-root.
04 Install
One line, then two machines.
The script checks the checksum, then installs. Debian and Ubuntu get the package. Everyone else gets a tarball in /usr/local/bin. Set PREFIX to put it somewhere else.
# hub sinkd-srv --sync-root ~/sinkd-data # the other machine, once the hub prints a 6-digit code sinkd pair 192.168.1.20 sinkd --server 192.168.1.20 --anchor ~/Documents
The hub prints the pair code on stderr. Under systemd that is the journal, not the terminal: journalctl -u sinkd-srv -f