Getting started
Two paths to a running eidan: Docker (recommended — fastest to a talking agent) or from
source (for hacking on the code). Both need a Postgres database eidan can own the eidan schema
in.
Prerequisites
- A Postgres 13+ database, reached via a non-superuser role (so row-level security enforces).
- For Docker: Docker + Docker Compose.
- For source: Node 24+ (the runtime strips TypeScript and runs it directly — no build step)
and
pnpm.
Option A — Docker (recommended)
git clone https://github.com/sielay/eidan.git
cd eidan
docker compose up -d # → http://localhost:3001
Open http://localhost:3001 and sign in with the magic link. Update later with
docker compose pull && docker compose up -d — your data is the Postgres volume.
Option B — the setup wizard
From a clone, the interactive wizard walks you through applying migrations, adding a target,
choosing bundles, configuring, and doctor/migrate checks:
pnpm eidan # interactive wizard
Option C — from source
For hacking on the code (Node 24+ runs the TypeScript directly):
( cd external/matbot && pnpm install ) # the vendored runtime
pnpm install # the eidan plugins
cp matbot.yaml.example ./matbot.yaml # host config (the real matbot.yaml is gitignored)
# apply the schema (non-superuser role so RLS enforces)
EIDAN_DATABASE_URL=postgres://eidan_app:...@host/eidan \
pnpm --filter @eidandev/migrate migrate
# start the engine (AG-UI on :8090, MCP on :8091, A2A on :8095)
node --import ./external/matbot/apps/cli/register.js \
external/matbot/apps/cli/src/index.ts start --config ./matbot.yaml
Run the reference web UI against it:
cd apps/web && pnpm install && pnpm dev # → http://localhost:3001
# set NEXT_PUBLIC_EIDAN_BACKEND_URL= (empty) and EIDAN_ENGINE_URL to the engine
Next
Deploying to a server, a Raspberry Pi, or Fly is driven by the deploy CLI (pnpm eidan) and a
gitignored eidan.deploy.json topology. A dedicated Deploy guide is coming; for now the
repo's README.md and infra/fly-mb/ are the authoritative reference.