ci / test (services/knowledge) (push) Successful in 47s
ci / test (services/agent) (push) Successful in 55s
ci / test (platform/neuroforge) (push) Successful in 56s
ci / docker-build (push) Failing after 1m10s
ci / test (services/control) (push) Successful in 1m26s
release-tag / release-image (push) Successful in 6m43s
79 lines
2.6 KiB
YAML
79 lines
2.6 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:-}
|
|
NEUROFORGE_OLLAMA_API_KEY: ${NEUROFORGE_OLLAMA_API_KEY:-}
|
|
OLLAMA_API_KEY: ${OLLAMA_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_API_KEY: ${NEUROFORGE_WORKER_OLLAMA_API_KEY:-}
|
|
OLLAMA_API_KEY: ${OLLAMA_API_KEY:-}
|
|
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:
|