DOCS
Deploy
Replicas are stateless. Histories and settings live in Postgres. Occupancy, throttle, and MCP creds live in Redis.
Compose
From the
sveda
repo:
docker compose up --build
starts Postgres 16, Redis 7, and
sveda-server
on
:8787.
This is the local path that matches production wiring.
docker compose up --build
curl -s http://127.0.0.1:8787/sveda/ready Stores
SVEDA_DATABASE_URL
is required for durable histories and admin settings.
SVEDA_REDIS_URL
is required for occupancy, embed throttle, MCP creds, and settings revision across replicas.
If either URL is set and unreachable, the process fails closed at boot.
SVEDA_ADMIN_API_KEY
is required when Postgres is configured. First-boot
POST /sveda/admin/setup
is memory/dev only.
SVEDA_DATABASE_URL=postgres://sveda:sveda@postgres:5432/sveda
SVEDA_REDIS_URL=redis://redis:6379
SVEDA_APP_KEY=...
SVEDA_ADMIN_API_KEY=...
SVEDA_EMBED_ENABLED=true Probes
GET /sveda/health
is liveness (process up).
GET /sveda/ready
pings Postgres and Redis when those URLs are set. Kubernetes uses health for liveness and ready for readiness.
An SSE turn stays on one pod for the HTTP connection; the next request can land on any replica.
Image
ghcr.io/neresson/sveda-server.
Docker Hub
neresson/sveda-server
is published when Hub credentials are configured on the repo.
Bind
0.0.0.0:8787.
docker pull ghcr.io/neresson/sveda-server:latest Helm
Chart
charts/sveda-server.
Production sets
databaseUrl
and
redisUrl
to managed stores.
postgresql.enabled
and
redis.enabled
bundle single-replica official images for kind/k3d only — not HA.
SVEDA_INDEX_ROOT
stays optional and per-pod. It is not a shared code index.
helm install sveda charts/sveda-server \
--set postgresql.enabled=true \
--set redis.enabled=true \
--set secrets.appKey=dev-app-key-change-me \
--set secrets.adminApiKey=dev-admin-key-change-me \
--set secrets.hostApiKey=dev-host-key-change-me