Fastest working setup: run the compose smoke profile, enroll one project, and sync explicitly.
This page gives one recommended path first. Advanced/authenticated mode follows after.
docker compose -f docker-compose.cloud.yml up -ddocker-compose.cloud.yml defaults on this branch:
ENGRAM_CLOUD_INSECURE_NO_AUTH=1ENGRAM_CLOUD_ALLOWED_PROJECTS=smoke-project- cloud endpoint published at
http://127.0.0.1:18080
engram cloud config --server http://127.0.0.1:18080engram cloud enroll smoke-projectengram sync --cloud --project smoke-project
engram sync --cloud --status --project smoke-projectOpen:
http://127.0.0.1:18080/dashboard
In compose smoke mode, /dashboard/login redirects to /dashboard/ (no bearer login needed).
Use this sequence before first bootstrap for established local projects:
engram cloud upgrade doctor --project smoke-project
engram cloud upgrade repair --project smoke-project --dry-run
engram cloud upgrade repair --project smoke-project --apply
engram cloud upgrade bootstrap --project smoke-project --resume
engram cloud upgrade status --project smoke-projectrollback is only available before bootstrap reaches bootstrap_verified.
Do not build from source for production deploys. Use the published image:
ghcr.io/gentleman-programming/engram:latest
Reference compose file:
Required runtime env vars:
ENGRAM_DATABASE_URLENGRAM_CLOUD_TOKENENGRAM_CLOUD_ADMINENGRAM_JWT_SECRETENGRAM_CLOUD_ALLOWED_PROJECTSENGRAM_CLOUD_HOST=0.0.0.0ENGRAM_PORT=18080
Dokploy guidance:
- Create a managed Postgres service.
- Create an app from image
ghcr.io/gentleman-programming/engram:latest. - Configure the env vars above (with strong secrets).
- Expose container port
18080. - Avoid build-from-source mode unless you are actively developing Engram itself.
ENGRAM_CLOUD_INSECURE_NO_AUTH=1is for local/dev smoke only. Never use it in production.
| Reason code | Meaning |
|---|---|
blocked_unenrolled |
Project is not enrolled for cloud replication |
auth_required |
Authenticated runtime requires valid token/session |
cloud_config_error |
Cloud endpoint config is missing/invalid |
policy_forbidden |
Project blocked by cloud policy |
paused |
Project sync paused in cloud control plane |
transport_failed |
Cloud transport/network operation failed |
Advanced: Authenticated Source-Run Mode
Use this when you are running engram cloud serve directly (no insecure compose smoke mode):
ENGRAM_DATABASE_URL="postgres://engram:engram_dev@127.0.0.1:5433/engram_cloud?sslmode=disable" \
ENGRAM_JWT_SECRET="replace-with-32+-byte-random-secret" \
ENGRAM_CLOUD_TOKEN="your-token" \
ENGRAM_CLOUD_ALLOWED_PROJECTS="my-project" \
engram cloud serveThen configure client endpoint + token:
engram cloud config --server http://127.0.0.1:8080
export ENGRAM_CLOUD_TOKEN="your-token"
engram cloud enroll my-project
engram sync --cloud --project my-projectRules that matter:
ENGRAM_CLOUD_INSECURE_NO_AUTH=1cannot be combined withENGRAM_CLOUD_TOKENENGRAM_CLOUD_ALLOWED_PROJECTSis required server-side in both modes- authenticated mode requires explicit non-default
ENGRAM_JWT_SECRET ENGRAM_CLOUD_INSECURE_NO_AUTH=1remains local/dev only (never production)
- Deep runtime/env reference: DOCS.md — Cloud CLI
- Background sync mode: DOCS.md — Cloud Autosync
- Branding assets and usage: Branding