a5c625b9b6d8ac4af1602b4c36c2acde83e3d6a6
openclaw.json now sends `Authorization: Bearer ${AGAP_MCP_TOKEN}` to the agap
MCP server, which requires it as of kb#180. The token is injected from
openai/.env via docker-compose.yml and only substituted here, never inlined.
It maps to agent id `adolf`, which is also what the kb#147 vault gate reads.
Fixes tools.media.audio, which had been added but never restart-validated:
the per-entry `apiKey: "not-needed"` is rejected by the schema
("tools.media.audio.models.0: Invalid input"), and an invalid config makes the
gateway refuse to start outright -- adolf crash-looped on the first restart
after the block landed. The old comment claimed the schema requires a
non-empty apiKey; it is the opposite, apiKey is not a valid per-entry key at
all. Isolated with `openclaw config validate` against the running image
(2026.6.11): {provider, model} and {provider, model, baseUrl} validate, and
adding apiKey alone reproduces the failure. baseUrl is kept -- that is the
per-entry override pointing the openai-shaped provider at the local
faster-whisper server. Provider auth follows the normal model auth order per
docs/nodes/audio.md, and faster-whisper-server has no auth to satisfy anyway.
Two lessons encoded in the comments: `enabled: false` does NOT exempt an entry
from schema validation, and a config edit is not done until a restart boots
healthy -- this sat invalid but latent because the running gateway still held
an older loaded config. The block stays enabled: false; turning STT on is
still a kb#175/#191 decision (GTX 1070 co-residency).
Also adds the proactive-prioritization and todoist-capture design notes and
the vw-mcp prototype.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Agap Home Server
Docker Compose configurations for the Agap self-hosted home server infrastructure.
Services
- Immich (
immich-app/) — Photo management and backup (port 2283) - Gitea (
gitea/) — Self-hosted Git server with web UI (port 3000, SSH 222) - Open WebUI (
openai/) — AI chat interface with Ollama, GPU-accelerated (port 3125)
Quick Start
Start Immich (main service)
docker compose up -d
Start Gitea (from gitea/ directory)
cd gitea
docker compose up -d
Start Open WebUI (from openai/ directory)
cd openai
docker compose up -d
Configuration
Environment variables are in the root .env file for Immich:
UPLOAD_LOCATION— where photo originals are storedTHUMB_LOCATION— thumbnail cache directoryENCODED_VIDEO_LOCATION— transcoded video cacheDB_DATA_LOCATION— Postgres database directoryDB_PASSWORD— Postgres password
Storage
Media is stored on:
/mnt/media/upload— Immich originals/mnt/ssd1/media/— Immich thumbnails, encoded video, and Postgres database/mnt/misc/gitea— Gitea repositories and data
GPU Support
For GPU acceleration (Open WebUI/Ollama, Immich ML):
- Install NVIDIA Docker runtime:
sudo ./nvidia-docker-install.sh - Install CUDA toolkit:
./install-cuda.sh
Documentation
See CLAUDE.md for detailed developer instructions and Gitea wiki integration guidelines.
See the Gitea wiki for infrastructure documentation (storage, network, services setup).
Description
Languages
JavaScript
49%
Python
39.8%
Shell
6.9%
Dockerfile
1.8%
HTML
1.5%
Other
1%