Repository navigation
10 Docker Profiles
Updated: 2026-08-30
⚠️ Ports arrêtés cités dans cette page (note ajoutée le 2026-08-30 ; le corps ci-dessous n'a pas été réécrit) :
brain_worker :5557est arrete depuis le 2026-06-03 (OOM ONNX BGE-M3) — l'embedder vivant est:8099(BGE-M3 GGUF llama.cpp).
Nokido's Docker setup uses Compose profiles to ship only the services
you need. Five profiles (core, full, all, dev) and four image
variants (core, hub, full, all).
Compose file : docker/nokido/docker-compose.yml. Dockerfile :
docker/nokido/Dockerfile.
-
Profile = which services launch (
docker compose --profile X up). -
Variant = which Python extras get baked into the laforge-hub image
(
BUILD_VARIANT=Y docker compose build).
You combine them : a small image variant + a minimal profile = lightest
setup. A heavy image variant + the all profile = full stack.
| Profile | Services | Image size | Use case |
|---|---|---|---|
core |
ollama + laforge-hub
|
~1 GB | Daily dev, single-host. |
full |
+ deno-webhub + brain-worker
|
~2.5 GB | Production-like, with event bus + embedder. |
all |
+ netcfg-agent + searxng
|
~3.5 GB | Multi-vendor network management + local web search. |
dev |
+ adminer
|
+50 MB | Database browsing during development. |
Profiles compose with --profile flags :
# Minimal
docker compose -f docker/nokido/docker-compose.yml --profile core up -d
# Production
docker compose --profile full up -d
# Everything including dev tools
docker compose --profile all --profile dev up -d-
ollama:11434 — LLM inference (Ollama). Pull models withdocker exec laforge-ollama ollama pull <model>. Models persisted inollama_datavolume. -
laforge-hub:8766 — the hub itself. Built fromdocker/nokido/Dockerfile. Volumes :rag_data(/app/RAG),logs_data(/app/logs),sandbox_data(/app/sandbox),vault_data(/app/data).
-
deno-webhub:7401 — Deno event bus (nervous system). Mountsproxy_deno/read-only. Communicates with hub via the internal Docker network. -
brain-worker:5557 (ZMQ) — Rust + ONNX BGE-M3 embedder. Built fromdocker/brain_worker/Dockerfile(separate image). Mountsrag_dataread-only +models_datafor ONNX model cache.
-
netcfg-agent:7500 (UI) + :8767 (MCP) — multi-vendor network config (Cisco, Huawei, Aruba, HPE…). Volumenetcfg_data. -
searxng:8888 → :8080 — self-hosted SearXNG forweb_searchtool.
-
adminer:8080 — browseembeddings.dbvia web UI. Useful for inspectingrag_chunks,agent_messages,network_log.
Build the hub image with one of four extras combinations :
BUILD_VARIANT=core docker compose -f docker/nokido/docker-compose.yml build laforge-hub
BUILD_VARIANT=hub docker compose build laforge-hub # default
BUILD_VARIANT=full docker compose build laforge-hub
BUILD_VARIANT=all docker compose build laforge-hub| VARIANT | pyproject extra | Includes | Image size |
|---|---|---|---|
core |
(core only) |
httpx + requests + pydantic + psutil + rich | ~80 MB |
hub |
[hub,rag,llm,docs,git] |
+ FastAPI + FAISS + litellm + tree-sitter + gitpython | ~450 MB |
full |
[hub,rag,llm,cloud,ui,git,docker,docs] |
+ Anthropic/Groq/Cohere clients + Textual + PySide6 + Docker SDK | ~900 MB |
all |
[all] |
+ torch + jax + sentence-transformers + semgrep + pwntools + …everything | ~5 GB |
Default is hub — useful for the core and full compose profiles.
If you run the all compose profile, set BUILD_VARIANT=full or all
to make the heavy services usable.
The Dockerfile uses two stages for layer caching and small final images :
-
builder (Python 3.12-slim + apt build deps) :
- Installs
gcc,g++,libffi-dev,libssl-dev,git,curl. - Pre-downloads wheels into
/wheelsfor the requestedVARIANT. - Builds the
laforge-agentwheel itself.
- Installs
-
runtime (Python 3.12-slim, minimal apt) :
- Only
curl(healthcheck) +libgomp1(faiss). - Installs from
/wheelswith--no-index --find-links=/wheels(offline, reproducible). - Non-root user UID 1000 (configurable via build ARG).
- HEALTHCHECK on
/health. - Sets
LAFORGE_ROOT=/app,LAFORGE_ENV=prod.
- Only
| Volume | Mount | Purpose |
|---|---|---|
ollama_data |
/root/.ollama (ollama container) |
Persisted LLM model files. |
rag_data |
/app/RAG |
embeddings.db + FAISS indexes + lessons. |
logs_data |
/app/logs |
All log files. |
sandbox_data |
/app/sandbox |
Scratch space + heartbeats. |
vault_data |
/app/data |
machine_vault.dat (DPAPI-equivalent on Linux ≡ keyring file fallback). |
models_data |
/app/models (brain-worker) |
ONNX BGE-M3 model cache. |
netcfg_data |
/app/netcfg (netcfg-agent) |
Multi-vendor config + KeePass vault. |
searxng_data |
/etc/searxng |
SearXNG config + custom plugins. |
Backup : docker compose down && docker run --rm -v nokido_rag_data:/data -v $(pwd):/backup alpine tar czf /backup/rag.tar.gz /data.
- All services live in the default Compose network (
laforge-default). - Inter-service DNS :
http://laforge-hub:8766,http://ollama:11434,http://laforge-deno-webhub:7401, etc. - Host port mappings :
-
8766→ laforge-hub -
11434→ ollama -
7401→ deno-webhub -
5557→ brain-worker (ZMQ) -
7500/8767→ netcfg-agent (UI / MCP) -
8888→ searxng -
8080→ adminer (dev)
-
-
extra_hosts: ["host.docker.internal:host-gateway"]lets the hub reach services on your laptop (e.g. native LM Studio on :1234).
Every service that exposes HTTP has a healthcheck :
-
ollama:curl -sf http://localhost:11434/api/tags -
laforge-hub:curl -sf http://localhost:8766/health
Start-period : 15s for laforge-hub (warmup time : RAG load + ONNX init).
If you need to embed a custom skill or pre-pulled models, fork the Dockerfile :
FROM nokido:hub AS base
USER root
RUN apt-get update && apt-get install -y my-tool
USER nokido
COPY my-skill/ /app/skills/my-skill/Build : docker build -f Dockerfile.custom -t nokido:my-build .. Override
the image in compose : image: nokido:my-build.
- Use multi-CPU. Set
OLLAMA_MAX_LOADED_MODELS=1(default in compose) unless you're benchmarking — model swap is fast enough and saves RAM. - For ML extras, build on the target host (CUDA wheels are
arch-specific). Don't
docker buildon a non-GPU host and expect CUDA to work. - For embeddings,
brain-workeris CPU-bound by default. To use a GPU/NPU, setBRAIN_WORKER_BACKEND=directml|vulkan|openvino|cudain the service'senvironmentblock.
- The hub binds
0.0.0.0:8766inside the container, but the port mapping uses127.0.0.1:8766:8766— only localhost reaches it. To expose remotely, wrap with Tailscale/WireGuard ; don't change the bind. - Sandbox accounts for
run/orchestrateDocker actions = thenokidoUID 1000 inside the container. The container itself runs as non-root. -
vault_datacontains decryptable secrets if the host is compromised — same threat model as aNokido.envon disk. The DPAPI / Keychain protection is only meaningful in native installs.
For a full threat model, see 07 — Security model.
Nokido-labs/nokido · AGPL-3.0 (licence commerciale disponible) · wiki genere depuis docs/wiki de v0.20.11 (19c350a) — corrections : ouvrir une issue ou une PR sur le depot.
Nokido
English
- 01 — Installation
- 02 — Quick Start
- 03 — Architecture overview
- 04 — MCP clients setup
- 05 — LLM providers
- 06 — Hub API reference
- 07 — Security model
- 08 — Vault & secrets
- 09 — TUI reference
- 10 — Docker profiles
- 11 — Cross-OS notes
- 12 — AMI cognitive stack
- 13 — Hardware roadmap
- 14 — Troubleshooting
- 15 — Glossary
- 16 — FAQ
- 17 — First launch
- 18 — Launchers & service files
- 19 — Knowledge Pack
- 20 — Modules Reference
- 21 — SSoT Cross-CLI
- 22 — Governance, cognition & self-safety
- 23 — Orchestration & Workflows
- 24 — Cloud peers (claude.ai, ChatGPT)
- OpenAI Gateway souverain
- Nokido — Wiki
- SearXNG Keeper
- Web Egress Gateway —
:7779
Français
- Accueil
- 01 — Installation
- 02 — Démarrage rapide
- 03 — Aperçu architecture
- 04 — Configuration clients MCP
- 05 — Providers LLM
- 06 — Référence API hub
- 07 — Modèle de sécurité
- 08 — Vault & secrets
- 09 — Référence TUI
- 10 — Profils Docker
- 11 — Notes multi-OS
- 12 — Pile cognitive AMI
- 13 — Roadmap matérielle
- 14 — Troubleshooting
- 15 — Glossaire
- 16 — FAQ
- 17 — Premier lancement
- 18 — Lanceurs & fichiers services
- 19 — Knowledge Pack
- 20 — Référence des modules
- 21 — SSoT Cross-CLI
- 22 — Gouvernance, cognition & auto-sûreté
- 23 — Orchestration & workflows
- 24 — Pairs cloud (claude.ai, ChatGPT)