Skip to main content

Operations

View Markdown

Health

EndpointAnswers
GET /healthzthe process is up
GET /readyzthe frontend's gRPC health service reports SERVING

The container health check uses /readyz, so a process that is up but not serving is unhealthy and gets restarted. First boot on an empty database migrates the schema, which the start period covers.

Upgrading the core

Bump the four core modules in go.mod together, to the versions the matching core CLI release pins. Run go mod tidy, run CI, tag. Schema migrations apply on the next boot. Read the core's release notes for dynamic-config keys that changed; they live in one function.

Then run the lab's contract against the new build before promoting:

LERTHA_FLOW_ADDRESS=engine-staging:7233 ./gradlew test --rerun-tasks

Refreshing the UI

cd ../lertha-ui && pnpm build:server
rm -rf internal/ui/assets && cp -R ../lertha-ui/server/ui/assets/local internal/ui/assets
git -C ../lertha-ui rev-parse --short HEAD > internal/ui/UI_VERSION

Backups

Everything is in the two Postgres databases. Back them up like any other Postgres; a restore is a full restore of both, then a normal boot. History retention bounds their size.

Reading the logs

The log is JSON. Two lines at boot about a queue reader and "shard status unknown" are normal: shards are being acquired while the previous process's leases expire.