Docker Compose (single host)
Run the full Eddytor stack on one host with Docker Compose.
Docker Compose runs a single server and a single engine (talking over direct TCP), plus optional bundled Postgres and object storage. It's the simplest way to run Eddytor and what the Quickstart installer sets up.
The fast path
curl -fsSL https://get.eddytor.com | shThis scaffolds ~/eddytor/ (docker-compose.yml, config.toml, .env),
generates secrets, starts the stack, and prompts for the first admin. See the
Quickstart for the walkthrough.
Driving it yourself
If you'd rather not pipe a script to a shell - or you're wiring external Postgres / S3 - do the same steps by hand:
mkdir -p ~/eddytor && cd ~/eddytor
curl -fsSL https://get.eddytor.com/docker-compose.yml -o docker-compose.yml
curl -fsSL https://get.eddytor.com/config.toml -o config.toml
cat > .env <<EOF
EDDYTOR_ENCRYPTION_KEY=$(openssl rand -base64 32)
EDDYTOR_API_KEY_SECRET=$(openssl rand -base64 32)
EDDYTOR_DATABASE_URL=postgres://eddytor:eddytor@postgres:5432/eddytor
EDDYTOR_VERSION=$(curl -fsSL https://get.eddytor.com/VERSION)
EOF
docker compose up -dGood to know
The bundled object store (Garage) needs random credentials
and a
garage.toml mounted read-only. The curl | sh installer writes both for
you - prefer it unless you're bringing your own Postgres/S3.What's running
| Service | Role |
|---|---|
eddytor-server | REST + gRPC API, MCP, auth, migrations. Port 8080 (API), 8082 (Flight SQL). |
eddytor-engine | Data plane - reads/writes Delta tables. |
postgres | Bundled metadata DB (evaluation). |
garage | Bundled S3-compatible object store (evaluation). |
Heads up
http://localhost:8080 is the API, not a web page -
Eddytor is API-first. The optional Web UI serves at
:3000.Operate it
docker compose ps # wait for eddytor-server (healthy)
docker compose logs -f eddytor-server # follow logs
docker compose restart # after editing config.toml
docker compose pull && docker compose up -d # upgrade (bump EDDYTOR_VERSION first)Config is read at boot, not hot-reloaded - restart after editing
config.toml. See Configure.
Next
- Bootstrap the first admin & sign in.
- Bundled vs external datastores - before you keep data.
- Connect storage and create your first table.