Your data everywhere and nowhere
Dust is a high-availability, decentralized file storage system. It leverages an actor-mesh architecture to move beyond traditional client-server models, treating data as a distributed pattern of encrypted fragments scattered across a private Tailscale data plane. By combining the fault tolerance of Elixir/OTP with the low-level networking capabilities of Go, Dust provides a unified, local-first filesystem that remains consistent across heterogenous nodes (NAS, Desktop, Laptop, and Mobile).
Prebuilt release binaries include the Erlang runtime and have no additional runtime dependencies. Pick your platform:
| Platform | Guide |
|---|---|
| Linux | docs/install/linux.md |
| macOS | docs/install/macos.md |
| NixOS | docs/install/nixos.md |
| Windows | docs/install/windows.md |
To compile from source instead, see docs/build-from-source.md.
Once the daemon and dustctl are installed:
dustctl daemon start # start the daemon (all other commands talk to it)
dustctl init # setup wizard: node name, key store, Tailscale, network
dustctl auth # finish/confirm Tailscale loginOptionally dustctl ui open (once the daemon is running) opens the
same wizard at http://127.0.0.1:4885 — the daemon redirects there on its
own as long as no key store exists yet.
To add a second node, run those three (or the Web UI wizard) on the new machine, then:
dustctl invite # on the existing node (must be unlocked)
dustctl join <IP> <TOKEN> # on the new nodeSee Getting Started for the full first-node walkthrough, including joining an existing cluster and installing the daemon as a system service.
- Getting Started — first-node setup walkthrough
- CLI Reference — full
dustctlcommand list - Configuration — Tailscale ACLs, environment variables, NixOS module options
- Security — authentication and tag enforcement notes
- Building from Source — toolchain setup and per-OS build steps
Apache 2.0 — see LICENSE.
