Deploy
Locally, from source
make db-up # Postgres 16 in Docker on 5432, user/password lertha/lertha
make run # builds bin/lertha-flow and runs it against that Postgres
Any Postgres 12 or newer works; the Homebrew one is fine. Point LERTHA_FLOW_DB_* at it.
On LAP
deploy/lap-stack.yaml in the orchestrator repository is one LAP Docker Compose stack: Postgres 16
with a volume, the orchestrator image from GHCR, and the docs assistant's flow service.
- The UI is routed by the platform proxy to
flow.lertha.com, behind the orchestrator's own sign-in (a code sent by email, then a session cookie). - Port 7233 is what Workers and the gateway connect to, as
lertha-flow:7233. It is on the stack's own network and thelerthaapp network, where LAP apps and Serverless Worker pools run, and never on the public internet until frontend auth is configured. Postgres stays on the stack's own network. - Secrets come from the platform environment (Doppler into LAP), never from the compose file.
Releases
Push a vX.Y.Z tag. The release workflow builds the image once, scans it, and pushes
ghcr.io/lertha-app/lertha-flow:X.Y.Z. Set LERTHA_FLOW_VERSION on the LAP stack and redeploy. Rollback is pulling the
previous tag; schema changes are additive, so an older image runs against a newer database.
Sizing
The four services in one process idle around 300 to 500 MB on this workload, plus Postgres. It fits beside the gateway on the current box; give it its own box when history grows.
Not yet
- Frontend auth. No authorizer is configured yet; access is network-level.
- Multi-node. Single process by design; the code path to change is one option.