Files
glpi-neuroforge-mega/platform/neuroforge/docker-compose.yml
groot 9a4370e4df
All checks were successful
release-tag / release-image (push) Successful in 6m50s
v1.6.0
2026-09-02 10:26:50 +02:00

75 lines
2.4 KiB
YAML

services:
neuroforge:
build:
context: .
target: server
ports:
- "127.0.0.1:8080:8080"
environment:
NEUROFORGE_ADMIN_TOKEN: ${NEUROFORGE_ADMIN_TOKEN}
NEUROFORGE_APP_API_KEY: ${NEUROFORGE_APP_API_KEY}
NEUROFORGE_WORKER_TOKEN: ${NEUROFORGE_WORKER_TOKEN}
NEUROFORGE_METRICS_TOKEN: ${NEUROFORGE_METRICS_TOKEN}
NEUROFORGE_CLUSTER_TOKEN: ${NEUROFORGE_CLUSTER_TOKEN:-}
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
volumes:
- neuroforge-data:/app/data
restart: unless-stopped
read_only: true
tmpfs:
- /tmp:size=64m,mode=1777
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
healthcheck:
test: ["CMD", "wget", "-q", "-O", "-", "http://127.0.0.1:8080/readyz"]
interval: 15s
timeout: 3s
retries: 4
start_period: 10s
worker-cpu:
build:
context: .
target: worker
command: ["-server", "http://neuroforge:8080", "-id", "cpu-compose-1"]
environment:
NEUROFORGE_WORKER_TOKEN: ${NEUROFORGE_WORKER_TOKEN:?Set a unique NeuroForge worker token}
NEUROFORGE_WORKER_RESOURCE_CLASS: cpu
NEUROFORGE_WORKER_CAPABILITIES: cpu,vector.relink
NEUROFORGE_WORKER_MAX_CONCURRENCY: ${NEUROFORGE_CPU_WORKER_CONCURRENCY:-2}
depends_on:
neuroforge:
condition: service_healthy
restart: unless-stopped
read_only: true
tmpfs: ["/tmp:size=32m,mode=1777"]
security_opt: ["no-new-privileges:true"]
cap_drop: ["ALL"]
worker-gpu:
build:
context: .
target: worker
command: ["-server", "http://neuroforge:8080", "-id", "gpu-compose-1"]
environment:
NEUROFORGE_WORKER_TOKEN: ${NEUROFORGE_WORKER_TOKEN:?Set a unique NeuroForge worker token}
NEUROFORGE_WORKER_RESOURCE_CLASS: gpu
NEUROFORGE_WORKER_CAPABILITIES: gpu,model.chat,model.embed
NEUROFORGE_WORKER_MAX_CONCURRENCY: ${NEUROFORGE_GPU_WORKER_CONCURRENCY:-1}
NEUROFORGE_WORKER_OLLAMA_URL: ${OLLAMA_BASE_URL:-http://ollama:11434}
NEUROFORGE_WORKER_OLLAMA_CHAT_MODEL: ${OLLAMA_MODEL:-gemma3}
NEUROFORGE_WORKER_OLLAMA_EMBEDDING_MODEL: ${OLLAMA_EMBEDDING_MODEL:-embeddinggemma}
depends_on:
neuroforge:
condition: service_healthy
restart: unless-stopped
read_only: true
tmpfs: ["/tmp:size=32m,mode=1777"]
security_opt: ["no-new-privileges:true"]
cap_drop: ["ALL"]
volumes:
neuroforge-data: