# ThothII standalone development/smoke base. Model settings are intentionally absent; # use `tht start --build`, which adds the generated modelCatalog projection. # frontend: http://localhost:8090 backend: http://localhost:8787 name: thothii-dev 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 PI_BIN: pi AUTH_MODE: none NODE_ENV: development THT_SESSION_STORAGE: local THT_HOME: /data/local-home 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_SECRET_STORE_ROOT: /data/workspace-secrets THT_WORKSPACE_SECRET_RUNTIME_ROOT: /tmp/thothii-workspace-secrets 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 MAX_PI_PROCESSES: ${MAX_PI_PROCESSES:-4} extra_hosts: - "host.docker.internal:host-gateway" volumes: - dev-data:/data - dev-pi-state:/home/thoth/.pi - ${PI_AUTH_FILE:?set PI_AUTH_FILE}:/home/thoth/.pi/agent/auth.json:ro - workspace-registry:/data/workspace-registry - workspace-secrets:/data/workspace-secrets - ${THT_DEV_EVIDENCE_HOST_PATH:-./evidence}:/data/evidence:ro secrets: - source: thothii_secrets target: thothii.secrets ports: - "127.0.0.1:8787:8787" healthcheck: test: ["CMD", "curl", "-fsS", "http://127.0.0.1:8787/health"] interval: 15s timeout: 3s retries: 5 start_period: 30s restart: "no" depends_on: qdrant: condition: service_healthy embedding-model-init: condition: service_completed_successfully networks: [thothii-net] frontend: build: context: . dockerfile: docker/frontend.Dockerfile args: VITE_BASE: / VITE_BACKEND_URL: /api image: thothii-frontend:local ports: - "127.0.0.1:8090:8080" depends_on: core: condition: service_healthy restart: "no" networks: [thothii-net] 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-net] embedding: image: ollama/ollama:0.32.0@sha256:57f573b47f1f71ebb445789f279fe3e596a8beab182f7cf486db9205bad87c5a command: ["serve"] expose: - "11434" volumes: - embedding-models:/root/.ollama healthcheck: test: - CMD-SHELL - > /usr/bin/bash -lc "exec 3<>/dev/tcp/127.0.0.1/11434 && printf 'GET /api/tags 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: 5s retries: 20 start_period: 10s networks: [thothii-net] 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_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_healthy networks: [thothii-net] networks: thothii-net: driver: bridge volumes: dev-data: dev-pi-state: workspace-registry: workspace-secrets: qdrant-data: embedding-models: secrets: thothii_secrets: file: "${THT_SECRETS_FILE:?set THT_SECRETS_FILE}"