Quickstart
Stand up the full Eddytor stack on one host, bootstrap the first admin, and sign in.
One command pulls the prebuilt public images, scaffolds an install directory, starts the stack, and prompts you to create the first admin.
Good to know
Prerequisites
- A host with Docker and the Docker Compose plugin.
- Outbound network access to pull images from
ghcr.io/nordalf.
Install in one command
curl -fsSL https://get.eddytor.com | shThis scaffolds ~/eddytor/:
~/eddytor/
├── docker-compose.yml # replaced on upgrade - don't edit
├── config.toml # non-secret settings (public URL, CORS, …) - edit this
├── HOSTING.md # the self-hosting guide
└── .env # secrets + bundled-stack wiring (generated) - back upIt generates the required secrets into .env (including bundled
object-store credentials), starts Compose, and offers the Web UI.
Heads up
.env. It holds EDDYTOR_ENCRYPTION_KEY -
lose it and every stored secret becomes unrecoverable.Verify it's up
docker compose ps # eddytor-server should show (healthy)http://localhost:8080 is the REST + gRPC API, not a web page. If you
enabled the Web UI, it serves at http://localhost:3000.
Bootstrap the first admin
There is no public setup endpoint - the first admin is provisioned inside the server container. The installer prompts you; by hand:
docker compose exec eddytor-server eddytoradm setup \
--email you@example.com --org "Default"
# ✓ Admin you@example.com created in organisation 'Default'.Good to know
eddytoradm setup is idempotent - once an admin exists
it's a no-op.On Kubernetes it runs in the server pod via kubectl exec - the chart's
install NOTES print the command.
Sign in
Sign-in is magic-link / device-code. Point the CLI at your server and log in:
eddytor config set-api-url http://localhost:8080
eddytor config set-flight-url http://localhost:8082 # Flight SQL port for `eddytor query`
eddytor login # device-code flow; opens your browser
eddytor get tablesHeads up
docker compose logs eddytor-server | grep -i 'sign in to eddytor' -A2Headless access (API key)
For scripting - and for eddytor query - mint a non-expiring API key inside
the container, then point the CLI at it:
docker compose exec eddytor-server eddytoradm create-api-key --email you@example.com
# Admin API key for you@example.com (shown once): edd_live_…
eddytor config set-key edd_live_…Heads up
eddytor login, for eddytor query -
the why and the failure signature are on
Flight SQL endpoint.A lost key is recoverable - the in-container tools are re-runnable; see Can't sign in / lost API key.
Driving it yourself
Every installer step is documented for manual use in Docker Compose (single host).
Upgrades
Bump EDDYTOR_VERSION in .env and re-pull - full procedure in
Upgrades & migrations.
Related
- Connect storage - register the bucket Eddytor writes tables to.
- Create your first table.