{"owner":"thedotmack","repo":"claude-mem","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"docker-compose.yml","servicesCount":4,"services":[{"name":"postgres","image":"postgres:17-alpine","restart":"unless-stopped","environment":["POSTGRES_USER=${POSTGRES_USER:?POSTGRES_USER is required}","POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}","POSTGRES_DB=${POSTGRES_DB:?POSTGRES_DB is required}"],"volumes":["postgres-data:/var/lib/postgresql/data"]},{"name":"valkey","image":"valkey/valkey:8-alpine","restart":"unless-stopped","command":"valkey-server --appendonly yes --appendfsync everysec --maxmemory-policy noeviction","volumes":["valkey-data:/data"]},{"name":"claude-mem-server","build":{"context":".","dockerfile":"docker/claude-mem/Dockerfile"},"restart":"unless-stopped","ports":["37877:37877"],"environment":["CLAUDE_MEM_CONTAINER_MODE=server","CLAUDE_MEM_DOCKER=1","CLAUDE_MEM_RUNTIME=server-beta","CLAUDE_MEM_HOST=0.0.0.0","CLAUDE_MEM_SERVER_HOST=0.0.0.0","CLAUDE_MEM_SERVER_PORT=37877","CLAUDE_MEM_WORKER_HOST=0.0.0.0","CLAUDE_MEM_WORKER_PORT=37877","CLAUDE_MEM_DATA_DIR=/data/claude-mem","CLAUDE_MEM_QUEUE_ENGINE=bullmq","CLAUDE_MEM_REDIS_URL=${CLAUDE_MEM_REDIS_URL:-redis://valkey:6379}","CLAUDE_MEM_REDIS_MODE=docker","CLAUDE_MEM_SERVER_DATABASE_URL=postgres://${POSTGRES_USER:?POSTGRES_USER is required}:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}@postgres:5432/${POSTGRES_DB:?POSTGRES_DB is required}","CLAUDE_MEM_AUTH_MODE=api-key","CLAUDE_MEM_CHROMA_ENABLED=false","CLAUDE_MEM_GENERATION_DISABLED=true"],"volumes":["claude-mem-data:/data/claude-mem"],"depends_on":["postgres","valkey"]},{"name":"claude-mem-worker","build":{"context":".","dockerfile":"docker/claude-mem/Dockerfile"},"restart":"unless-stopped","environment":["CLAUDE_MEM_CONTAINER_MODE=worker","CLAUDE_MEM_DOCKER=1","CLAUDE_MEM_RUNTIME=server-beta","CLAUDE_MEM_DATA_DIR=/data/claude-mem","CLAUDE_MEM_QUEUE_ENGINE=bullmq","CLAUDE_MEM_REDIS_URL=${CLAUDE_MEM_REDIS_URL:-redis://valkey:6379}","CLAUDE_MEM_REDIS_MODE=docker","CLAUDE_MEM_SERVER_DATABASE_URL=postgres://${POSTGRES_USER:?POSTGRES_USER is required}:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}@postgres:5432/${POSTGRES_DB:?POSTGRES_DB is required}","CLAUDE_MEM_AUTH_MODE=api-key","CLAUDE_MEM_CHROMA_ENABLED=false","CLAUDE_MEM_SERVER_PROVIDER=${CLAUDE_MEM_SERVER_PROVIDER:-claude}","ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}","CLAUDE_MEM_ANTHROPIC_API_KEY=${CLAUDE_MEM_ANTHROPIC_API_KEY:-}","GEMINI_API_KEY=${GEMINI_API_KEY:-}","OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-}"],"volumes":["claude-mem-data:/data/claude-mem"],"depends_on":["postgres","valkey","claude-mem-server"]}],"exposedPorts":["37877"],"dockerRunCommand":"docker run -d --name claude-mem -p 37877:37877 --restart always postgres:17-alpine","podmanRunCommand":"podman run -d --name claude-mem -p 37877:37877 --restart always postgres:17-alpine","skopeoInspectCommand":"skopeo inspect docker://docker.io/library/postgres:17-alpine","orasPullCommand":"oras pull postgres:17-alpine","registryMeta":{"provider":"dockerhub","image":"library/postgres","canonicalImage":"docker.io/library/postgres:17-alpine","latestTag":"17-alpine","cliCommands":{"dockerRun":"docker run -d --name claude-mem -p 37877:37877 --restart always postgres:17-alpine","dockerPull":"docker pull postgres:17-alpine","podmanRun":"podman run -d --name claude-mem -p 37877:37877 --restart always postgres:17-alpine","skopeoInspect":"skopeo inspect docker://docker.io/library/postgres:17-alpine","orasPull":"oras pull postgres:17-alpine","composeYaml":"services:\n  claude-mem:\n    image: postgres:17-alpine\n    restart: unless-stopped\n    ports:\n      - \"37877:37877\""}}}