# This file deliberately owns only one inactive release slot. It joins the # stable project's shared network as an external resource, but has a distinct # Compose project name supplied by run-production-canary.sh. Do not add # durable services or stable services here. services: research-runtime: build: context: .. dockerfile: deploy/images/runtime.Dockerfile args: { TARGET: research-runtime, SOURCE_REVISION: "${ASSISTANT_SOURCE_REVISION:-unknown}" } restart: "no" environment: LISTEN_ADDR: :8087 RESEARCH_SOURCE_ROOT: /var/lib/research-sources RESEARCH_HTTP_ALLOWED_HOSTS: assistant.cin.su,git.cin.su RESEARCH_SEARCH_URL_TEMPLATE: ${RESEARCH_SEARCH_URL_TEMPLATE:-https://www.bing.com/search?q=%s} RESEARCH_SEARCH_ALLOWED_HOSTS: ${RESEARCH_SEARCH_ALLOWED_HOSTS:-www.bing.com} POSTGRES_HOST: postgres POSTGRES_PORT: "5432" POSTGRES_DATABASE: ${POSTGRES_DB:-assistant} EPISTEMICS_POSTGRES_USER: epistemics_role EPISTEMICS_POSTGRES_CREDENTIAL_REF: credential://domovoy/epistemics/db-password/v1 SECRET_BACKEND_ROOT: /run/secrets volumes: - assistant_core_secrets:/run/secrets:ro - assistant_research_sources:/var/lib/research-sources:ro networks: shared: aliases: [research-runtime-candidate] healthcheck: test: ["CMD-SHELL", "wget -qO- http://localhost:8087/healthz >/dev/null && wget -qO- http://localhost:8087/readyz >/dev/null"] interval: 10s timeout: 10s retries: 20 core-runtime: build: context: .. dockerfile: deploy/images/runtime.Dockerfile args: { TARGET: core-runtime, SOURCE_REVISION: "${ASSISTANT_SOURCE_REVISION:-unknown}" } restart: "no" environment: LISTEN_ADDR: ":8080" POSTGRES_HOST: postgres POSTGRES_PORT: "5432" POSTGRES_DATABASE: ${POSTGRES_DB:-assistant} POSTGRES_USER: situation_role POSTGRES_PASSWORD: ${SITUATION_DB_PASSWORD} IDENTITY_POSTGRES_USER: identity_role IDENTITY_POSTGRES_PASSWORD: ${IDENTITY_DB_PASSWORD} CREATOR_USERNAME: ${CREATOR_USERNAME} ACCEPTANCE_HARNESS_SERVICE_CREDENTIAL_REF: credential://domovoy/acceptance-harness/service-token/v1 WORK_POSTGRES_USER: work_role WORK_POSTGRES_PASSWORD: ${WORK_DB_PASSWORD} CAPABILITY_POSTGRES_USER: capability_role CAPABILITY_POSTGRES_PASSWORD: ${CAPABILITY_DB_PASSWORD} CONTROL_PLANE_SERVICE_CREDENTIAL_REF: credential://domovoy/control-plane/service-token/v1 CONTROL_PLANE_SERVICE_SECRET_ROOT: /run/control-plane-secrets SELF_POSTGRES_USER: self_role SELF_POSTGRES_CREDENTIAL_REF: credential://domovoy/self/db-password/v1 EPISTEMICS_POSTGRES_USER: epistemics_role EPISTEMICS_POSTGRES_CREDENTIAL_REF: credential://domovoy/epistemics/db-password/v1 INTERACTION_POSTGRES_USER: interaction_role INTERACTION_POSTGRES_CREDENTIAL_REF: credential://domovoy/interaction/db-password/v1 SECRET_BACKEND_ROOT: /run/secrets COGNITIVE_ADMISSION_POLICY_ID: creator-advisory-local-v1 COGNITIVE_ADMISSION_MAX_CONCURRENT: ${COGNITIVE_ADMISSION_MAX_CONCURRENT:-1} COGNITIVE_ADMISSION_MAX_ACCEPTED_PER_HOUR: ${COGNITIVE_ADMISSION_MAX_ACCEPTED_PER_HOUR:-60} COGNITIVE_ADMISSION_MAX_INPUT_BYTES: ${COGNITIVE_ADMISSION_MAX_INPUT_BYTES:-81920} COGNITIVE_ADMISSION_MAX_OUTPUT_BYTES: ${COGNITIVE_ADMISSION_MAX_OUTPUT_BYTES:-16384} COGNITIVE_RUNTIME_URL: http://cognitive-worker-candidate:8083 RESEARCH_RUNTIME_URL: http://research-runtime-candidate:8087 volumes: - assistant_core_secrets:/run/secrets:ro - assistant_control_plane_service_secrets:/run/control-plane-secrets:ro networks: shared: aliases: [core-runtime-candidate] healthcheck: test: ["CMD-SHELL", "wget -qO- http://localhost:8080/healthz >/dev/null && wget -qO- http://localhost:8080/readyz >/dev/null"] interval: 10s timeout: 20s retries: 20 cognitive-worker: build: context: .. dockerfile: deploy/images/runtime.Dockerfile args: { TARGET: cognitive-worker, SOURCE_REVISION: "${ASSISTANT_SOURCE_REVISION:-unknown}" } restart: "no" environment: LISTEN_ADDR: ":8083" CORE_RUNTIME_URL: http://core-runtime-candidate:8080 LOCAL_CPU_PROVIDER_URL: http://docker.cin.su:18082/v1 LOCAL_CPU_PROVIDER_API_KEY_FILE: ${LOCAL_CPU_PROVIDER_API_KEY_FILE:-} LOCAL_CPU_PROVIDER_CREDENTIAL_REF: ${LOCAL_CPU_PROVIDER_CREDENTIAL_REF:-credential://domovoy/local-cpu/provider-api-key/v1} LOCAL_MEDIUM_PROVIDER_URL: ${LOCAL_MEDIUM_PROVIDER_URL:-http://llm-local-gateway:8080/v1} LOCAL_MEDIUM_PROVIDER_API_KEY_FILE: ${LOCAL_MEDIUM_PROVIDER_API_KEY_FILE:-/run/secrets/llm_local_gateway_api_key} LOCAL_MEDIUM_PROVIDER_CREDENTIAL_REF: ${LOCAL_MEDIUM_PROVIDER_CREDENTIAL_REF:-credential://domovoy/local-medium/provider-api-key/v1} LOCAL_GPU_PROVIDER_TIMEOUT: ${LOCAL_GPU_PROVIDER_TIMEOUT:-60s} LOCAL_LIFEBOAT_PROVIDER_URL: http://cognitive-lifeboat:8086/v1 LOCAL_IMAGE_PROVIDER_KIND: ${LOCAL_IMAGE_PROVIDER_KIND:-comfyui} LOCAL_IMAGE_PROVIDER_URL: ${LOCAL_IMAGE_PROVIDER_URL:-http://comfyui:8188} LOCAL_IMAGE_MODEL: ${LOCAL_IMAGE_MODEL:-z_image_turbo_bf16.safetensors} COGNITIVE_OWNER_PRINCIPAL_ID: domovoy-creator-principal COGNITIVE_ALLOW_CANARY: "true" volumes: - assistant_core_secrets:/run/secrets:ro networks: shared: aliases: [cognitive-worker-candidate] llm-local: {} healthcheck: test: ["CMD-SHELL", "wget -qO- http://localhost:8083/healthz >/dev/null && wget -qO- http://localhost:8083/readyz >/dev/null"] interval: 10s timeout: 20s retries: 20 creator-web: build: context: .. dockerfile: deploy/images/runtime.Dockerfile args: { TARGET: creator-web, SOURCE_REVISION: "${ASSISTANT_SOURCE_REVISION:-unknown}" } restart: "no" environment: LISTEN_ADDR: ":8084" CORE_RUNTIME_URL: http://core-runtime-candidate:8080 CONTINUITY_RUNTIME_URL: http://continuity-runtime:8081 COMMIT_RUNTIME_URL: http://commit-runtime:8082 COGNITIVE_RUNTIME_URL: http://cognitive-worker-candidate:8083 AGENT_WORKER_URL: http://agent-worker:8090 ASSISTANT_BUILD_REVISION: ${ASSISTANT_SOURCE_REVISION:-unknown} networks: shared: aliases: [creator-web-candidate] healthcheck: test: ["CMD-SHELL", "wget -qO- http://localhost:8084/healthz >/dev/null"] interval: 10s timeout: 5s retries: 20 volumes: assistant_core_secrets: external: true assistant_control_plane_service_secrets: name: assistant_control_plane_service_secrets external: true assistant_research_sources: name: assistant_research_sources external: true networks: shared: name: assistant_default external: true llm-local: name: llm-local_default external: true