Installation
Install and run Athena locally for development.
Prerequisites
- Rust
1.85+ - Docker (recommended for local Postgres/Redis)
- Optional:
pg_dumpandpg_restorefor backup/restore workflows
1. Clone and Build
git clone https://github.com/<your-org>/athena.git
cd athena
cargo build --release2. Configure Environment
Create .env with at least the logging client URI:
POSTGRES_ATHENA_LOGGING_URI=postgres://athena:athena@localhost:5433/athena_loggingIf your environment provides non-Linux paths for Postgres tools, override:
ATHENA_PG_DUMP_PATH=/usr/bin/pg_dump
ATHENA_PG_RESTORE_PATH=/usr/bin/pg_restore3. Start Local Dependencies
docker compose up -d postgres4. Run Athena API
cargo run --Default API port is 4052.
cargo run -- --api-only still works, but it is now a deprecated alias for
the same boot path.
Optional: Split worker ownership into separate processes
Athena still defaults to one main binary. Split worker binaries are optional
and all of them read the same config.yaml and .env.
Full API + daemon split
Set daemon.enabled: true in config.yaml, then run:
# terminal 1
cargo run --
# terminal 2
cargo run -p athena-daemon --bin athena_daemonIn this profile, athena_daemon owns clone execution plus deferred, backup,
Typesense, and optional legacy workers.
Clone-only hybrid split
If clone jobs need a separate supervisor first, keep daemon.enabled: false
and run:
# terminal 1
cargo run --
# terminal 2
cargo run -p athena-daemon --bin athena_clone_workerThis is the only supported partial split today. Backup, deferred, Typesense, and legacy workers do not yet have a per-family "external only, inline off" toggle.
5. Verify Health
curl http://localhost:4052/ping
curl http://localhost:4052/health/clusterIf clone execution matters in your environment, also verify that either
athena_daemon or athena_clone_worker is running before expecting
/admin/provision/clones* jobs to leave the queued state.
Optional: Run Web Explorer
The apps/web Next.js app can be started against your local Athena instance:
cd apps/web
pnpm install
NEXT_PUBLIC_ATHENA_BASE_URL=http://localhost:4052 \
NEXT_PUBLIC_ATHENA_CLIENT=athena_logging \
pnpm dev