Skip to content

Server setup

While we offer a public sync server, and cannot view your data (as it is encrypted), you may still wish to self host your own Atuin sync server.

The requirements to do so are pretty minimal! You need to be able to run a binary or docker container, and have a PostgreSQL database setup. Atuin requires PostgreSQL 14 or above.

Any host with the atuin binary may also run a server, by running

Terminal window
atuin server start

Configuration

The config for the server is kept separate from the config for the client, even though they are the same binary. Server config can be found at ~/.config/atuin/server.toml.

It looks something like this:

host = "0.0.0.0"
port = 8888
open_registration = true
db_uri="postgres://user:password@hostname/database"

Alternatively, configuration can also be provided with environment variables.

Terminal window
ATUIN_HOST="0.0.0.0"
ATUIN_PORT=8888
ATUIN_OPEN_REGISTRATION=true
ATUIN_DB_URI="postgres://user:password@hostname/database"
ParameterDescription
hostThe host to listen on (default: 127.0.0.1)
portThe TCP port to listen on (default: 8888)
open_registrationIf true, accept new user registrations (default: false)
db_uriA valid PostgreSQL URI, for saving history (default: false)
pathA path to prepend to all routes of the server (default: false)

TLS

The server supports TLS through the [tls] section:

[tls]
enable = true
cert_path = "/path/to/letsencrypt/live/fully.qualified.domain/fullchain.pem"
pkey_path = "/path/to/letsencrypt/live/fully.qualified.domain/privkey.pem"