name: glpi-ai-core services: ollama: image: ${OLLAMA_IMAGE:-ollama/ollama:0.33.2} restart: unless-stopped volumes: - ${CORE_DATA_ROOT:-../../runtime}/ollama:/root/.ollama ports: - ${OLLAMA_BIND_IP:-127.0.0.1}:${OLLAMA_HOST_PORT:-11434}:11434 networks: core: aliases: [ollama] security_opt: - no-new-privileges:true agent-data-init: image: ${AGENT_DATA_INIT_IMAGE:-git.send.nrw/sendnrw/glpi-neuroforge-mega-agent-data-init:${IMAGE_TAG:-1.6.2}} restart: "no" user: "0:0" volumes: - ${CORE_DATA_ROOT:-../../runtime}/agent-data:/app/data security_opt: - no-new-privileges:true cap_drop: [ALL] cap_add: [CHOWN, FOWNER] agent: image: ${AGENT_IMAGE:-git.send.nrw/sendnrw/glpi-neuroforge-mega-agent:${IMAGE_TAG:-1.6.2}} restart: unless-stopped env_file: [.env] environment: HTTP_ADDR: :8080 DATA_DIR: /app/data KNOWLEDGE_DIR: /app/knowledge OLLAMA_URL: http://ollama:11434 OLLAMA_URLS: http://ollama:11434 KNOWLEDGE_VECTOR_BACKEND: local OUTCOME_LEARNING_ENABLED: "false" OUTCOME_RETRIEVAL_ENABLED: "false" BRAIN_ACTIVITY_URL: "" BRAIN_ACTIVITY_API_KEY: "" NEUROFORGE_URL: "" NEUROFORGE_API_KEY: "" CONTROL_READ_TOKEN: "" ports: - ${AGENT_BIND_IP:-127.0.0.1}:${AGENT_HOST_PORT:-9980}:8080 volumes: - ${CORE_DATA_ROOT:-../../runtime}/agent-data:/app/data - ${CORE_DATA_ROOT:-../../runtime}/knowledge:/app/knowledge:ro depends_on: agent-data-init: condition: service_completed_successfully ollama: condition: service_started networks: [core] read_only: true tmpfs: [/tmp:size=64m,mode=1777] security_opt: [no-new-privileges:true] cap_drop: [ALL] healthcheck: test: ["CMD", "/app/glpi-ai-agent", "healthcheck"] interval: 15s timeout: 3s retries: 8 start_period: 10s stop_grace_period: 20s knowledge: image: ${KNOWLEDGE_IMAGE:-git.send.nrw/sendnrw/glpi-neuroforge-mega-knowledge:${IMAGE_TAG:-1.6.2}} restart: unless-stopped env_file: [.env] environment: APP_MODE: ${KB_APP_MODE:-editor} DATA_DIR: /data/knowledge BACKUP_DIR: /data/backups STAGING_DIR: /data/staging LISTEN_ADDR: :8080 OLLAMA_BASE_URL: http://ollama:11434 BRAIN_ACTIVITY_URL: "" BRAIN_ACTIVITY_API_KEY: "" ports: - ${KNOWLEDGE_BIND_IP:-127.0.0.1}:${KNOWLEDGE_HOST_PORT:-9981}:8080 volumes: - ${CORE_DATA_ROOT:-../../runtime}/knowledge:/data/knowledge:rw - ${CORE_DATA_ROOT:-../../runtime}/staging:/data/staging:rw - ${CORE_DATA_ROOT:-../../runtime}/backups:/data/backups:rw depends_on: ollama: condition: service_started networks: [core] read_only: true tmpfs: [/tmp:size=32m,mode=1777] security_opt: [no-new-privileges:true] cap_drop: [ALL] stop_grace_period: 35s networks: core: name: ${CORE_NETWORK:-glpi-ai-core}