From install to first
encrypted backup.
About five minutes on a host that already has your database on it.
- 01
Install the agent
A single static binary with zero third-party dependencies. The installer checks the download against our published SHA256SUMS before it puts anything on PATH. You also need your engine's client tools - pg_dump, mysqldump or mongodump - available.
curl -fsSL https://odyssie.net/install.sh | sh # or download and verify it yourself curl -fsSLO https://odyssie.net/dl/latest/odyssie-agent-linux-amd64 curl -fsSL https://odyssie.net/dl/latest/SHA256SUMS | sha256sum -c --ignore-missing sudo install -m 0755 odyssie-agent-linux-amd64 /usr/local/bin/odyssie-agent
- 02
Pair it with your account
Create an agent in the dashboard and copy its key - it is shown once and we only keep its SHA-256. The agent stores it encrypted at rest on the host.
odyssie-agent login \ --api-url=https://odyssie.net \ --token=dba_xxxxxxxxxxxxxxxx Logged in. Agent ac32e41c-… is now healthy.
- 03
Tell it how to reach the database
The connection string is stored encrypted on this host and never sent to the control plane. The target name must match the database name in your dashboard.
odyssie-agent target add \ --name=orders \ --db-type=postgres \ --connection-string="postgres://user:pass@localhost:5432/orders" odyssie-agent target list
- 04
Set a passphrase and back up
The passphrase derives your encryption key and is never transmitted. Put it in a password manager before this command runs - nobody, including us, can recover it.
export ODYSSIE_ENCRYPTION_PASSPHRASE='correct-horse-battery-staple' odyssie-agent backup --name=orders --retention=30d read 4.20 GB from pg_dump, uploaded 1.31 GB encrypted locked: until 2026-12-24 (WORM)
- 05
Leave it running
Set the cron schedule and retention per database in the dashboard. The agent polls for queued backups and restore drills, so no inbound firewall rule is needed.
odyssie-agent run --interval=30s # as a service, with the passphrase supplied by systemd systemctl enable --now odyssie-agent
- 06
Restore, and prove it restores
The passphrase is required here too - without it the ciphertext is inert. Run verify against a scratch database to check a backup restores before you need it to.
odyssie-agent restore \ --backup-id=6e783318-dea2-4815-b54d-3efbdf0f098e \ --target-db="postgres://user:pass@localhost:5432/orders_restored" odyssie-agent verify --latest --name=orders \ --scratch-db="postgres://user:pass@localhost:5432/postgres"