services:
pgvector:
image: agnohq/pgvector:16
restart: unless-stopped
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
environment:
POSTGRES_USER: ${DB_USER:-ai}
POSTGRES_PASSWORD: ${DB_PASSWORD:-ai}
POSTGRES_DB: ${DB_NAME:-ai}
networks:
- agent-os
api:
build:
context: .
dockerfile: Dockerfile
image: ${IMAGE_NAME:-agent-os}:${IMAGE_TAG:-latest}
command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
restart: unless-stopped
ports:
- "8000:8000"
# env_file:
# - .env
volumes:
- .:/app
environment:
# OPENAI_API_KEY: ${OPENAI_API_KEY}
DB_HOST: pgvector
DB_PORT: 5432
DB_USER: ${DB_USER:-ai}
DB_PASS: ${DB_PASSWORD:-ai}
DB_DATABASE: ${DB_NAME:-ai}
WAIT_FOR_DB: "True"
PRINT_ENV_ON_LOAD: "True"
networks:
- agent-os
depends_on:
- pgvector
ibmi-mcp-server:
image: ${IBMI_MCP_IMAGE:-ibmi-mcp-server:latest}
build:
context: ../../../server # Build from server directory (monorepo root/server)
dockerfile: ../Dockerfile # Path to Dockerfile relative to server context
container_name: ibmi-mcp-server
restart: unless-stopped
ports:
- "3010:3010"
networks:
- agent-os
env_file:
- ../../../.env # Load environment variables from monorepo root .env
environment:
- YAML_AUTO_RELOAD=true
- TOOLS_YAML_PATH=/usr/src/app/tools # Tools path inside container
volumes:
- ../../../tools:/usr/src/app/tools:rw # Mount tools from monorepo root
- ../../../server/secrets:/usr/src/app/secrets:ro # Mount secrets from server directory
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3010/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 20s
agent-ui:
build:
context: ./agent-ui
dockerfile: Dockerfile
image: ${AGENT_UI_IMAGE:-agent-ui:latest}
container_name: agent-ui
restart: unless-stopped
ports:
- "3000:3000"
networks:
- agent-os
environment:
- NEXT_PUBLIC_API_URL=http://api:8000
depends_on:
- api
networks:
agent-os:
volumes:
pgdata: