{ "module": "letta", "version": "1", "capabilities": [ "container-runtime" ], "requires": [ "postgres-database" ], "contributes": { "postgres-database": { "name": "letta" } }, "binds": { "postgres-database": "/var/lib/letta/database.json" }, "secrets": { "postgres-database": "/var/lib/letta/database.secret" }, "own-secrets": { "server-password": "/var/lib/letta/server-password.secret", "broker": "/var/lib/mesh/letta/broker" }, "listens": [ { "port": 8283, "protocol": "tcp", "from": "mesh", "why": "the Letta agent server REST API and web UI; a public name is a route grant later" } ], "resources": [ { "id": "mesh-state", "type": "directory", "path": "/var/lib/mesh/letta", "mode": "0700" }, { "id": "state", "type": "directory", "path": "/var/lib/letta", "mode": "0700" }, { "id": "server-env", "type": "file", "path": "/var/lib/letta/server.env", "mode": "0600", "content": "LETTA_PG_URI=postgresql://${bound:postgres-database:as}:${secret:postgres-database}@${bound:postgres-database:at}:${bound:postgres-database:port}/${bound:postgres-database:as}\nLETTA_SERVER_PASSWORD=${secret:server-password}\nSECURE=true\nTZ=Europe/Brussels\n" }, { "id": "net", "type": "network", "name": "letta" }, { "id": "server", "type": "container", "name": "letta", "image": "letta/letta@sha256:1d2e0692514287c5ed1a483e14e16ed945f8632d315539f5e66373bb7d7c471b", "network": "letta", "env-file": [ "/var/lib/letta/server.env" ], "ports": [ "8283" ] }, { "id": "runtime-config", "type": "file", "path": "/var/lib/mesh/letta/config.json", "mode": "0600", "content": "{}\n", "merge": "json" }, { "id": "runtime-env", "type": "file", "path": "/var/lib/letta/runtime.env", "mode": "0600", "content": "MESH_LETTA_PASSWORD=${secret:server-password}\n" }, { "id": "runtime", "type": "container", "name": "mesh-letta", "network": "letta", "volumes": [ "/var/lib/mesh/letta/broker:/run/secrets/broker:ro", "/var/lib/mesh/letta/config.json:/run/config/config.json:ro" ], "env": { "MESH_BROKER_FILE": "/run/secrets/broker", "MESH_LETTA_URL": "http://letta:8283", "MESH_LETTA_CONFIG_FILE": "/run/config/config.json" }, "env-file": [ "/var/lib/letta/runtime.env" ], "restart-on": [ "runtime-config" ], "artifact": "runtime" } ], "build": { "on": [ { "arg": "BUILD_BASE", "module": "mesh-tools", "artifact": "build" }, { "arg": "RUNTIME_BASE", "module": "mesh-tools", "artifact": "runtime" } ], "artifacts": [ { "name": "runtime", "kind": "image", "from": "Dockerfile" } ] } }