Adds a blueprint for Engram — a self-hosted persistent-memory sync server ("Engram Cloud") for AI coding agents (Claude Code, Cursor, Codex, Gemini CLI, and anything else that speaks MCP).
Why
Engram gives AI agents memory that survives across sessions. The cloud server is the multi-project sync backend plus a web dashboard. This template makes it one-click deployable on Dokploy instead of hand-rolling Postgres + auth + the container.
postgres — postgres:16-alpine with a persistent volume.
Configuration
Auth secrets auto-generated via template helpers: ENGRAM_CLOUD_TOKEN, ENGRAM_CLOUD_ADMIN, and a 64-char ENGRAM_JWT_SECRET (engram refuses the dev default, so a real one is generated).
ENGRAM_CLOUD_ALLOWED_PROJECTS=* — allow any project, access gated by the bearer token. Operators can narrow this to specific project names.
Postgres password is generated and wired into ENGRAM_DATABASE_URL.
Testing
Resolved the helpers to concrete values and booted the stack locally with Docker Compose:
✅ Image pulls (linux/amd64 + arm64).
✅ Postgres becomes healthy; engram waits on the healthcheck before starting.
✅ engram boots in authenticated mode — logs show [engram-cloud] listening on 0.0.0.0:8080 / Starting Engram cloud server on port 8080, confirming the auth validation passes (token + allowlist + non-default JWT secret all accepted) and that it connected to Postgres using the generated DSN.
✅GET /dashboard → 303 (dashboard route live), server responding over HTTP.
Follows AGENTS.md: version: "3.8", no container_name/networks, expose only, restart: unless-stopped, persistent volume, and the primary service name matches the blueprint folder.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/Dokploy/templates/pull/928
**Author:** [@danestves](https://github.com/danestves)
**Created:** 6/19/2026
**Status:** ✅ Merged
**Merged:** 7/8/2026
**Merged by:** [@Siumauricio](https://github.com/Siumauricio)
**Base:** `canary` ← **Head:** `add-engram-template`
---
### 📝 Commits (4)
- [`a29e4b4`](https://github.com/Dokploy/templates/commit/a29e4b4a1897b354aa9b7abc7cc01f6d840a8126) feat(blueprint): add engram template
- [`01f532d`](https://github.com/Dokploy/templates/commit/01f532d02c84aba84ac81022a6d7c37639261afd) fix(engram): use static internal Postgres password in DSN
- [`5d90a07`](https://github.com/Dokploy/templates/commit/5d90a07508364f1aa6d04e96fc1e136aeef617bf) Merge remote-tracking branch 'origin/canary' into add-engram-template
- [`16eacb1`](https://github.com/Dokploy/templates/commit/16eacb1fdf8a9175b7928c5b7ab13aab7097dbd0) fix: point domain at /dashboard — engram cloud serves no route at /
### 📊 Changes
**4 files changed** (+74 additions, -0 deletions)
<details>
<summary>View changed files</summary>
➕ `blueprints/engram/docker-compose.yml` (+37 -0)
➕ `blueprints/engram/engram.png` (+0 -0)
➕ `blueprints/engram/meta.json` (+17 -0)
➕ `blueprints/engram/template.toml` (+20 -0)
</details>
### 📄 Description
## What
Adds a blueprint for **Engram** — a self-hosted persistent-memory sync server ("Engram Cloud") for AI coding agents (Claude Code, Cursor, Codex, Gemini CLI, and anything else that speaks MCP).
## Why
Engram gives AI agents memory that survives across sessions. The cloud server is the multi-project sync backend plus a web dashboard. This template makes it one-click deployable on Dokploy instead of hand-rolling Postgres + auth + the container.
## Stack
- **engram** — `ghcr.io/gentleman-programming/engram:1.16.3` (official multi-arch image), runs `cloud serve`, exposes `8080` (dashboard + API).
- **postgres** — `postgres:16-alpine` with a persistent volume.
## Configuration
- Auth secrets auto-generated via template helpers: `ENGRAM_CLOUD_TOKEN`, `ENGRAM_CLOUD_ADMIN`, and a 64-char `ENGRAM_JWT_SECRET` (engram refuses the dev default, so a real one is generated).
- `ENGRAM_CLOUD_ALLOWED_PROJECTS=*` — allow any project, access gated by the bearer token. Operators can narrow this to specific project names.
- Postgres password is generated and wired into `ENGRAM_DATABASE_URL`.
## Testing
Resolved the helpers to concrete values and booted the stack locally with Docker Compose:
- ✅ Image pulls (linux/amd64 + arm64).
- ✅ Postgres becomes healthy; engram waits on the healthcheck before starting.
- ✅ engram boots in **authenticated mode** — logs show `[engram-cloud] listening on 0.0.0.0:8080` / `Starting Engram cloud server on port 8080`, confirming the auth validation passes (token + allowlist + non-default JWT secret all accepted) and that it connected to Postgres using the generated DSN.
- ✅ `GET /dashboard` → `303` (dashboard route live), server responding over HTTP.
- ✅ `node dedupe-and-sort-meta.js` runs clean (390 entries, sorted).
Follows `AGENTS.md`: `version: "3.8"`, no `container_name`/`networks`, `expose` only, `restart: unless-stopped`, persistent volume, and the primary service name matches the blueprint folder.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/Dokploy/templates/pull/928
Author: @danestves
Created: 6/19/2026
Status: ✅ Merged
Merged: 7/8/2026
Merged by: @Siumauricio
Base:
canary← Head:add-engram-template📝 Commits (4)
a29e4b4feat(blueprint): add engram template01f532dfix(engram): use static internal Postgres password in DSN5d90a07Merge remote-tracking branch 'origin/canary' into add-engram-template16eacb1fix: point domain at /dashboard — engram cloud serves no route at /📊 Changes
4 files changed (+74 additions, -0 deletions)
View changed files
➕
blueprints/engram/docker-compose.yml(+37 -0)➕
blueprints/engram/engram.png(+0 -0)➕
blueprints/engram/meta.json(+17 -0)➕
blueprints/engram/template.toml(+20 -0)📄 Description
What
Adds a blueprint for Engram — a self-hosted persistent-memory sync server ("Engram Cloud") for AI coding agents (Claude Code, Cursor, Codex, Gemini CLI, and anything else that speaks MCP).
Why
Engram gives AI agents memory that survives across sessions. The cloud server is the multi-project sync backend plus a web dashboard. This template makes it one-click deployable on Dokploy instead of hand-rolling Postgres + auth + the container.
Stack
ghcr.io/gentleman-programming/engram:1.16.3(official multi-arch image), runscloud serve, exposes8080(dashboard + API).postgres:16-alpinewith a persistent volume.Configuration
ENGRAM_CLOUD_TOKEN,ENGRAM_CLOUD_ADMIN, and a 64-charENGRAM_JWT_SECRET(engram refuses the dev default, so a real one is generated).ENGRAM_CLOUD_ALLOWED_PROJECTS=*— allow any project, access gated by the bearer token. Operators can narrow this to specific project names.ENGRAM_DATABASE_URL.Testing
Resolved the helpers to concrete values and booted the stack locally with Docker Compose:
[engram-cloud] listening on 0.0.0.0:8080/Starting Engram cloud server on port 8080, confirming the auth validation passes (token + allowlist + non-default JWT secret all accepted) and that it connected to Postgres using the generated DSN.GET /dashboard→303(dashboard route live), server responding over HTTP.node dedupe-and-sort-meta.jsruns clean (390 entries, sorted).Follows
AGENTS.md:version: "3.8", nocontainer_name/networks,exposeonly,restart: unless-stopped, persistent volume, and the primary service name matches the blueprint folder.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.