diff --git a/blueprints/engram/docker-compose.yml b/blueprints/engram/docker-compose.yml new file mode 100644 index 00000000..21c2fcfb --- /dev/null +++ b/blueprints/engram/docker-compose.yml @@ -0,0 +1,37 @@ +version: "3.8" +services: + postgres: + image: postgres:16-alpine + restart: unless-stopped + environment: + POSTGRES_USER: engram + POSTGRES_PASSWORD: engram + POSTGRES_DB: engram_cloud + volumes: + - engram-postgres:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U engram -d engram_cloud"] + interval: 5s + timeout: 3s + retries: 10 + + engram: + image: ghcr.io/gentleman-programming/engram:1.16.3 + restart: unless-stopped + depends_on: + postgres: + condition: service_healthy + environment: + ENGRAM_DATABASE_URL: postgres://engram:engram@postgres:5432/engram_cloud?sslmode=disable + ENGRAM_JWT_SECRET: ${ENGRAM_JWT_SECRET} + ENGRAM_CLOUD_TOKEN: ${ENGRAM_CLOUD_TOKEN} + ENGRAM_CLOUD_ADMIN: ${ENGRAM_CLOUD_ADMIN} + ENGRAM_CLOUD_ALLOWED_PROJECTS: ${ENGRAM_CLOUD_ALLOWED_PROJECTS} + ENGRAM_CLOUD_HOST: "0.0.0.0" + ENGRAM_PORT: "8080" + command: ["cloud", "serve"] + expose: + - 8080 + +volumes: + engram-postgres: diff --git a/blueprints/engram/engram.png b/blueprints/engram/engram.png new file mode 100644 index 00000000..26e90f3f Binary files /dev/null and b/blueprints/engram/engram.png differ diff --git a/blueprints/engram/meta.json b/blueprints/engram/meta.json new file mode 100644 index 00000000..c86723d5 --- /dev/null +++ b/blueprints/engram/meta.json @@ -0,0 +1,17 @@ +{ + "id": "engram", + "name": "Engram", + "version": "1.16.3", + "description": "Persistent memory for AI coding agents — self-hosted Engram Cloud sync server with a web dashboard, backed by PostgreSQL.", + "logo": "engram.png", + "links": { + "github": "https://github.com/Gentleman-Programming/engram", + "website": "", + "docs": "https://github.com/Gentleman-Programming/engram/blob/main/docs/engram-cloud/README.md" + }, + "tags": [ + "ai", + "memory", + "developer-tools" + ] +} diff --git a/blueprints/engram/template.toml b/blueprints/engram/template.toml new file mode 100644 index 00000000..09c58b40 --- /dev/null +++ b/blueprints/engram/template.toml @@ -0,0 +1,20 @@ +[variables] +main_domain = "${domain}" +jwt_secret = "${password:64}" +cloud_token = "${password:48}" +admin_token = "${password:48}" + +[config] +env = [ + "ENGRAM_JWT_SECRET=${jwt_secret}", + "ENGRAM_CLOUD_TOKEN=${cloud_token}", + "ENGRAM_CLOUD_ADMIN=${admin_token}", + "ENGRAM_CLOUD_ALLOWED_PROJECTS=*", +] +mounts = [] + +[[config.domains]] +serviceName = "engram" +port = 8080 +host = "${main_domain}" +path = "/dashboard"