Before you start
You need Docker to run the server. To use the desktop client today you also need Go 1.26 or newer, since the client is built from source. This walkthrough assumes you are running everything on one machine to try it out.
1. Start the server
From a checkout of the Driftless repository, build and start the container:
docker compose up --build
The server listens on port 8080, and its data is stored in a Docker volume named driftless-data so it survives restarts.
2. Create your admin account
Open http://localhost:8080/admin/. On first run you are asked to create the administrator account. This admin is for managing the server only — it is separate from the accounts your devices use to sync.
3. Add a sync user
In the admin, open the Users page and create a user (for example alice) with a password. This is the account a device will log in with. You can also create one from the command line:
go run ./cmd/driftlessd adduser alice
4. Set up the desktop client
Build the client and log in with the user you just created (the password is read from standard input):
go build -o driftless ./cmd/driftless
driftless login -server http://localhost:8080 -user alice
5. Sync a folder
Point the client at a local folder. The first sync pushes its contents to the server; later syncs transfer only what changed:
driftless sync -dir /path/to/folder
6. Keep it in sync
Instead of running sync by hand, leave the watcher running. It syncs automatically when files change and periodically checks the server for remote changes:
driftless watch
See it converge
Log in from a second machine (or a second config directory) as the same user and sync the same folder name. Creates, edits, and deletes flow between them. To go further, read the Desktop client guide.