name: thothii services: core: build: context: . dockerfile: docker/core.Dockerfile image: thothii-core:local environment: HOST: 0.0.0.0 PORT: "8787" THT_HARNESS_DIR: /app/harness THT_BIN: /opt/venv/bin/tht THT_DATA_ROOT: /data SETTINGS_FILE: /data/settings/settings.json THT_MAINTENANCE_FILE: /data/settings/maintenance.json THT_WORKSPACE_REGISTRY_ROOT: /data/workspace-registry THT_WORKSPACE_GIT_REMOTE: ${THT_WORKSPACE_GIT_REMOTE:?set THT_WORKSPACE_GIT_REMOTE} THT_WORKSPACE_GIT_BRANCH: ${THT_WORKSPACE_GIT_BRANCH:-main} THT_WORKSPACE_INSTALLATION_ID: ${THT_WORKSPACE_INSTALLATION_ID:-local} THT_WORKSPACE_GIT_AUTHOR_NAME: ${THT_WORKSPACE_GIT_AUTHOR_NAME:-Thoth Workspace Registry} THT_WORKSPACE_GIT_AUTHOR_EMAIL: ${THT_WORKSPACE_GIT_AUTHOR_EMAIL:-thoth-workspace-registry@localhost} THT_WORKSPACE_SECRET_ROOTS: /run/secrets THT_SECRETS_FILE: /run/secrets/thothii.secrets THT_DB_NAME: ${THT_DB_NAME:-} THT_DWH_REST_URL: ${THT_DWH_REST_URL:-} THT_LLM_URL: ${THT_LLM_URL:-} THT_INTERNAL_QDRANT_URL: http://qdrant:6333 THT_INTERNAL_EMBEDDING_URL: http://embedding:11434 THT_INTERNAL_EMBEDDING_MODEL: qwen3-embedding:0.6b THT_INTERNAL_EMBEDDING_DIMENSIONS: "1024" MAX_PI_PROCESSES: ${MAX_PI_PROCESSES:-4} volumes: - settings:/data/settings - pi-state:/home/thoth/.pi - ${PI_AUTH_FILE:?set PI_AUTH_FILE}:/home/thoth/.pi/agent/auth.json:ro - ./deploy/pi/models.json:/home/thoth/.pi/agent/models.json:ro - ./deploy/pi/settings.json:/home/thoth/.pi/agent/settings.json:ro - workspace-registry:/data/workspace-registry - sessions:/data/sessions secrets: - source: thothii_secrets target: thothii.secrets healthcheck: test: ["CMD", "curl", "-fsS", "http://127.0.0.1:8787/health"] interval: 15s timeout: 3s retries: 5 start_period: 30s depends_on: qdrant: condition: service_healthy embedding-model-init: condition: service_completed_successfully networks: - thothii frontend: build: context: . dockerfile: docker/frontend.Dockerfile args: VITE_BASE: / VITE_BACKEND_URL: /api image: thothii-frontend:local depends_on: core: condition: service_healthy healthcheck: test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:8080/ || exit 1"] interval: 15s timeout: 3s retries: 5 start_period: 10s networks: - thothii qdrant: image: qdrant/qdrant:v1.18.2@sha256:75eab8c4ba42096724fdcfde8b4de0b5713d529dde32f285a1f86fdcb2c9e50c expose: - "6333" volumes: - qdrant-data:/qdrant/storage healthcheck: test: - CMD-SHELL - > /usr/bin/bash -lc "exec 3<>/dev/tcp/127.0.0.1/6333 && printf 'GET /healthz HTTP/1.1\r\nHost: 127.0.0.1\r\nConnection: close\r\n\r\n' >&3 && grep -q '200 OK' <&3" interval: 15s timeout: 3s retries: 10 start_period: 10s networks: - thothii embedding: image: ollama/ollama:0.32.0@sha256:57f573b47f1f71ebb445789f279fe3e596a8beab182f7cf486db9205bad87c5a command: ["serve"] expose: - "11434" volumes: - embedding-models:/root/.ollama networks: - thothii embedding-model-init: image: ollama/ollama:0.32.0@sha256:57f573b47f1f71ebb445789f279fe3e596a8beab182f7cf486db9205bad87c5a entrypoint: ["/usr/bin/bash", "/opt/thoth/embedding-model-init.sh"] environment: OLLAMA_BASE_URL: http://embedding:11434 OLLAMA_MODEL: qwen3-embedding:0.6b OLLAMA_WAIT_TIMEOUT_SEC: "180" volumes: - embedding-models:/root/.ollama - ./docker/embedding-model-init.sh:/opt/thoth/embedding-model-init.sh:ro depends_on: embedding: condition: service_started networks: - thothii networks: thothii: volumes: settings: pi-state: workspace-registry: sessions: qdrant-data: embedding-models: secrets: thothii_secrets: file: "${THT_SECRETS_FILE:?set THT_SECRETS_FILE}"