services:
letta-mcp-rust:
image: ghcr.io/oculairmedia/letta-mcp-server-rust:rust-latest
container_name: letta-mcp-rust
restart: unless-stopped
ports:
- '6507:6507' # Expose for testing
environment:
# Required - Letta API connection
LETTA_BASE_URL: ${LETTA_BASE_URL}
LETTA_PASSWORD: ${LETTA_PASSWORD}
# Internal server port
PORT: 6507
# CORS configuration - allow all origins for development
CORS_ALLOWED_ORIGINS: '*'
# Optional - Rust logging
RUST_LOG: ${RUST_LOG:-debug}
RUST_BACKTRACE: ${RUST_BACKTRACE:-1}
env_file:
- .env
healthcheck:
test: ['CMD-SHELL', "timeout 1 bash -c '</dev/tcp/localhost/6507' || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
networks:
- letta-network
nginx:
image: nginx:alpine
container_name: letta-mcp-nginx
restart: unless-stopped
ports:
- '3001:3001'
volumes:
- ./rust/nginx.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
letta-mcp-rust:
condition: service_healthy
healthcheck:
test:
['CMD', 'wget', '--quiet', '--tries=1', '--spider', 'http://localhost:3001/health']
interval: 30s
timeout: 10s
retries: 3
start_period: 5s
networks:
- letta-network
networks:
letta-network:
driver: bridge