alvis a5c625b9b6 adolf: bearer-authenticate the agap MCP server, fix audio config schema
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>
2026-07-30 04:41:13 +00:00
2026-03-05 11:22:34 +00:00
2026-03-05 11:22:34 +00:00
2026-03-17 03:06:18 +00:00
2026-03-05 11:22:34 +00:00

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 stored
  • THUMB_LOCATION — thumbnail cache directory
  • ENCODED_VIDEO_LOCATION — transcoded video cache
  • DB_DATA_LOCATION — Postgres database directory
  • DB_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):

  1. Install NVIDIA Docker runtime: sudo ./nvidia-docker-install.sh
  2. 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
No description provided
Readme 8.1 MiB
Languages
JavaScript 49%
Python 39.8%
Shell 6.9%
Dockerfile 1.8%
HTML 1.5%
Other 1%