[PR #928] [MERGED] feat(blueprint): add engram template #16240

Closed
opened 2026-07-14 23:15:41 -05:00 by GiteaMirror · 0 comments
Owner

📋 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: canaryHead: add-engram-template


📝 Commits (4)

  • a29e4b4 feat(blueprint): add engram template
  • 01f532d fix(engram): use static internal Postgres password in DSN
  • 5d90a07 Merge remote-tracking branch 'origin/canary' into add-engram-template
  • 16eacb1 fix: 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

  • engramghcr.io/gentleman-programming/engram:1.16.3 (official multi-arch image), runs cloud serve, exposes 8080 (dashboard + API).
  • postgrespostgres: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 /dashboard303 (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.


🔄 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>
GiteaMirror added the pull-request label 2026-07-14 23:15:41 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/templates#16240