1e66d3dcb5bb02f2f929e8b0ca308e97995ea33b
Resolves the 4 P4 blockers and wires cognee/cognee-mcp into the openai compose stack: - qdrant: container was gone (data intact under /mnt/ssd/dbs/qdrant); brought back up, confirmed healthy on :6333. - Embeddings: switched from a dead LiteLLM route to ollama directly (host.docker.internal:11436, nomic-embed-text, 768-dim), using cognee's dedicated OllamaEmbeddingEngine and its native /api/embed endpoint. Requires extra_hosts: host.docker.internal:host-gateway since ollama lives in a separate compose project. - cognee-llm kimi auth: root cause was that cognee-llm had never been started, so its kimi-agent-home-equivalent volume didn't exist yet. Seeded cognee-llm-home from the already-authed kimi-agent-home volume (read-only copy of config/credentials/oauth/device_id); cognee-llm now serves real completions. - mkdir'd cognee data/system dirs: confirmed present (done by user). Also fixed three issues found only during a live end-to-end smoke test: - VECTOR_DB_PROVIDER must be a real container env var, not just present in the mounted cognee.env — the qdrant adapter's sitecustomize.py registration hook reads os.environ directly, which pydantic-settings' env_file parsing never populates. - Baked the Kuzu/Ladybug JSON extension into the cognee image. This deployment's egress to extension.ladybugdb.com is bandwidth-throttled to ~1.2 KB/s, so cognee's own runtime auto-download reliably timed out, leaving /health permanently unhealthy and graph queries failing. Fetched the ~827KB extension out-of-band (16-way parallel ranged GETs) and added it to the image via COPY. - LLM_ENDPOINT needed an explicit /v1 suffix (litellm appends "/chat/completions" verbatim) and LLM_INSTRUCTOR_MODE=json_mode is required since cognee-llm's Kimi wrapper is a text-only pass-through with no real tool-calling support. Verified with a full remember -> recall round trip through cognee-mcp's MCP tool surface: stored a fact containing a codeword, recalled it via GRAPH_COMPLETION search, got the exact codeword back. Exercises cognee-llm, ollama embeddings, Qdrant, and Kuzu together. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LeqyaxJF2nbRXJtae2kNB2
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%