# ──────────────────────────────────────────────────────────────── # docker-compose.yml — single-host / in-process mode # # Spins up: # - mariadb (10.11) # - rails (orchestrator + 4 sister agents all in one process) # # Everything runs in one container so the 4 sisters are just function # calls instead of 4 separate daemons. Pick this file when you want # "docker compose up and try it". # # Usage: # cp .env.example .env # set LLM_PROVIDER and API keys # docker compose up --build # # Then hit http://localhost:18800/health to confirm. # # For the production topology with 4 separate sister daemons, see # docker-compose.full.yml instead. # ──────────────────────────────────────────────────────────────── services: mariadb: image: mariadb:10.11 restart: unless-stopped environment: MARIADB_ROOT_PASSWORD: rootpw MARIADB_DATABASE: hanarang_rails MARIADB_USER: rails MARIADB_PASSWORD: rails healthcheck: test: - "CMD" - "healthcheck.sh" - "--connect" - "--innodb_initialized" interval: 5s timeout: 3s retries: 20 volumes: - rails-db:/var/lib/mysql networks: - rails-net rails: build: context: . dockerfile: Dockerfile restart: unless-stopped depends_on: mariadb: condition: service_healthy environment: DATABASE_URL: mysql://rails:rails@mariadb:3306/hanarang_rails RAILS_PORT: "18800" RAILS_LOG_LEVEL: info NODE_ENV: production RAILS_TRANSPORT: in-process RAILS_API_URL: http://127.0.0.1:18800 SISTER_AGENT_CORE_PATH: /app/sister-agent/dist/core.js SISTER_WORKSPACE_DIR: /app/rails-projects # LLM — read from .env LLM_PROVIDER: ${LLM_PROVIDER:-mock} LLM_MODEL_MANAGER: ${LLM_MODEL_MANAGER:-} LLM_MODEL_PRINCIPAL: ${LLM_MODEL_PRINCIPAL:-} LLM_MODEL_LEAD: ${LLM_MODEL_LEAD:-} LLM_MODEL_JUNIOR: ${LLM_MODEL_JUNIOR:-} LLM_MODEL_FALLBACK: ${LLM_MODEL_FALLBACK:-} OPENAI_API_KEY: ${OPENAI_API_KEY:-} OPENAI_BASE_URL: ${OPENAI_BASE_URL:-} ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-} ANTHROPIC_BASE_URL: ${ANTHROPIC_BASE_URL:-} OLLAMA_BASE_URL: ${OLLAMA_BASE_URL:-} # Gitea — leave empty to disable auto-push GITEA_BASE_URL: ${GITEA_BASE_URL:-} GITEA_ORG: ${GITEA_ORG:-} GITEA_TOKEN: ${GITEA_TOKEN:-} ports: - "18800:18800" volumes: - rails-workspace:/app/rails-projects networks: - rails-net healthcheck: test: ["CMD", "wget", "-qO-", "http://localhost:18800/health"] interval: 10s timeout: 3s retries: 10 volumes: rails-db: rails-workspace: networks: rails-net: driver: bridge