- One Docker image runs the
liteservice. - One Postgres database stores persistent state.
- Everything else is either an upstream API call or an optional runtime profile.
lite service serves the dashboard, REST API, LiteLLM-compatible gateway routes, MCP proxy routes, Slack callbacks, and runtime event streams from the same process.
What Runs
| Process | Required | What it does |
|---|---|---|
lite | Yes | Serves the UI, API, gateway, MCP proxy, Slack callbacks, and session streams |
| Postgres | Yes | Stores agents, sessions, credentials, runtime harnesses, schedules, memory, and settings |
| Template runtimes | Optional | Local OpenCode, OpenClaw, DeepAgents, or Hermes services for development and demos |
lite service.
Docker Shape
The repository has one mainDockerfile. It builds the static UI, builds the Rust lite binary, and packages both into one runtime image:
compose.yaml starts:
lap, built from the rootDockerfilepostgres
Request Flow
- A user opens the dashboard, calls the REST API, or talks to a connected Slack app.
- The request reaches the
liteservice. - LAP reads or writes state in Postgres.
- If the request needs a model, MCP server, or agent runtime, LAP calls that upstream service.
- Runtime events stream back through the same
liteservice to the UI or API client.