# Multiverse Agent Demo — Madame Trash Heap deployment # Uses host Ollama instead of remote llama.cpp services: gateway: build: context: ./gateway dockerfile: Dockerfile container_name: multiverse-gateway restart: unless-stopped ports: - "127.0.0.1:8290:8000" environment: - DATABASE_URL=postgresql+asyncpg://multiverse:mv-mth-2026@postgres:5432/multiverse - LLM_URL=http://172.19.0.1:11434 - LLM_MODEL=${LLM_MODEL:-deepseek-v2:16b} - EMBED_MODEL=${EMBED_MODEL:-nomic-embed-text} - PHAROS_PACKS_DIR=/app/packs - PHAROS_URL=http://172.19.0.1:8300 - GARUDA_ENABLED=true - LOG_LEVEL=info - CORS_ORIGINS=* - AGENT_NAME=Coordinator extra_hosts: - "host.docker.internal:host-gateway" depends_on: postgres: condition: service_healthy healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"] interval: 15s timeout: 5s retries: 3 start_period: 15s networks: - multiverse postgres: image: pgvector/pgvector:pg16 container_name: multiverse-postgres restart: unless-stopped environment: - POSTGRES_USER=multiverse - POSTGRES_PASSWORD=mv-mth-2026 - POSTGRES_DB=multiverse volumes: - mv-pgdata:/var/lib/postgresql/data - ./db/init.sql:/docker-entrypoint-initdb.d/01-schema.sql:ro healthcheck: test: ["CMD-SHELL", "pg_isready -U multiverse"] interval: 10s timeout: 5s retries: 3 networks: - multiverse chat-ui: build: context: ./gateway dockerfile: Dockerfile container_name: multiverse-chat-ui restart: unless-stopped command: ["python", "-m", "app.chat_ui"] ports: - "127.0.0.1:8291:5000" environment: - GATEWAY_URL=http://gateway:8000 - AGENT_NAME=Coordinator depends_on: gateway: condition: service_healthy networks: - multiverse volumes: mv-pgdata: networks: multiverse: driver: bridge