sinkd 000m

Deployable Cloud

No account. No fees. No tradeoffs.

The cloud is no longer someone else's machine, it's yours.

curl -fsSL https://sinkd.octoworks.dev/install.sh | sh

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.

client client client hub

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.

two machines
# 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