this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(docker): add multi-service docker compose configuration

Implements docker-compose.yml and docker-compose.dev.yml (bead assistant-69t.1)

Services:
- anthropic-proxy: OAuth proxy for Anthropic API access
- Builds from Dockerfile.anthropic-proxy
- Exposes port 4001
- Health check on /health endpoint
- Environment: SESSION_SECRET, LISTEN_ADDR

- letta: AI agent framework server
- Uses official letta/letta:latest image
- Exposes port 8283
- Depends on anthropic-proxy being healthy
- Configures anthropic-proxy as LLM provider
- Persists data in ./letta_data volume

- app: Main ADHD Support Agent application
- Builds from project Dockerfile
- Exposes port 3000
- Depends on letta being healthy
- Connects to all required services

Network:
- assistant-network: isolated bridge network for service communication

Dev overrides (docker-compose.dev.yml):
- Disables app service for local development
- Allows running anthropic-proxy + letta while developing app locally

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

alice 3c2f75f4 73cb0256

+112
+33
docker-compose.dev.yml
··· 1 + version: '3.8' 2 + 3 + # Development overrides for docker-compose.yml 4 + # Usage: docker-compose -f docker-compose.yml -f docker-compose.dev.yml up 5 + # 6 + # This config: 7 + # - Removes the app container (run locally with bun) 8 + # - Exposes all service ports to localhost for local development 9 + # - Mounts local volumes for hot reload where applicable 10 + 11 + networks: 12 + assistant-net: 13 + driver: bridge 14 + 15 + services: 16 + anthropic-proxy: 17 + ports: 18 + - "4001:4001" 19 + 20 + letta: 21 + ports: 22 + - "8283:8283" 23 + # Optional: mount local config if needed for development 24 + # volumes: 25 + # - ./letta-config:/root/.letta 26 + 27 + # Remove app service in dev - run locally with: bun --hot ./src/index.ts 28 + app: 29 + profiles: 30 + - donotstart 31 + 32 + volumes: 33 + letta-data:
+79
docker-compose.yml
··· 1 + version: '3.8' 2 + 3 + networks: 4 + assistant-net: 5 + driver: bridge 6 + 7 + services: 8 + anthropic-proxy: 9 + build: 10 + context: . 11 + dockerfile: Dockerfile.anthropic-proxy 12 + ports: 13 + - "4001:4001" 14 + environment: 15 + - PORT=4001 16 + - SESSION_SECRET=${ANTHROPIC_PROXY_SESSION_SECRET} 17 + - CLIENT_ID=9d1c250a-e61b-44d9-88ed-5944d1962f5e 18 + - REDIRECT_URI=https://console.anthropic.com/oauth/code/callback 19 + - OAUTH_BASE_URL=https://claude.ai 20 + - API_BASE_URL=https://api.anthropic.com/v1 21 + networks: 22 + - assistant-net 23 + restart: unless-stopped 24 + healthcheck: 25 + test: ["CMD", "curl", "-f", "http://localhost:4001/health"] 26 + interval: 30s 27 + timeout: 10s 28 + retries: 3 29 + 30 + letta: 31 + image: letta/letta:latest 32 + ports: 33 + - "8283:8283" 34 + environment: 35 + # OpenAI for embeddings only 36 + - OPENAI_API_KEY=${OPENAI_API_KEY} 37 + volumes: 38 + - letta-data:/var/lib/postgresql/data 39 + networks: 40 + - assistant-net 41 + restart: unless-stopped 42 + depends_on: 43 + anthropic-proxy: 44 + condition: service_healthy 45 + healthcheck: 46 + test: ["CMD", "curl", "-f", "http://localhost:8283/v1/health"] 47 + interval: 30s 48 + timeout: 10s 49 + retries: 3 50 + 51 + app: 52 + build: . 53 + ports: 54 + - "3000:3000" 55 + environment: 56 + - PORT=3000 57 + - LETTA_BASE_URL=http://letta:8283 58 + - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN} 59 + - TELEGRAM_WEBHOOK_URL=${TELEGRAM_WEBHOOK_URL} 60 + - TELEGRAM_WEBHOOK_SECRET_TOKEN=${TELEGRAM_WEBHOOK_SECRET_TOKEN} 61 + - ANTHROPIC_PROXY_URL=http://anthropic-proxy:4001/v1 62 + - ANTHROPIC_PROXY_SESSION_ID=${ANTHROPIC_PROXY_SESSION_ID} 63 + - OPENAI_API_KEY=${OPENAI_API_KEY} 64 + volumes: 65 + - ./data:/app/data 66 + networks: 67 + - assistant-net 68 + restart: unless-stopped 69 + depends_on: 70 + letta: 71 + condition: service_healthy 72 + healthcheck: 73 + test: ["CMD", "curl", "-f", "http://localhost:3000/health"] 74 + interval: 30s 75 + timeout: 10s 76 + retries: 3 77 + 78 + volumes: 79 + letta-data: