Home-lab Documentatie
Deze hub documenteert Aldo's home-lab: infrastructuur, mediaservices en zelf-gehoste applicaties.
Wat je hier vindt
| Sectie | Inhoud |
|---|---|
| Thuis (v3/v4/v5/main) | VRT MAX video-downloader — installatie, gebruik, probleemoplossing |
| Clocky | React klokstudio — features en ontwikkeling |
| Blanky | Projectdocumentatie, main en v1 |
| Radio Community | Democratische internetradio — architectuur, API, streaming |
| Passive Income (PINO) | Orchestrator voor passive-income providers |
| Neo-Brutalist Home | Dashboard design-exploratie |
De documentatie van elk project staat in een eigen sectie (zie de navigatie) en wordt bij het bouwen van de site rechtstreeks uit de repository van dat project gehaald — zo klopt hij altijd met de code.
Voor AI-agents
Machineleesbare gestructureerde kennis (OKF-formaat) en een lokale retrieval-pipeline (RAG) worden apart bijgehouden en lokaal op de host gequery'd.
Hoe het werkt
Het OKF (Open Knowledge Format) bundle op ~/dev/okf-home-lab/ bevat
gestructureerde markdown-documentatie over de home-lab infrastructuur. Een RAG
(Retrieval-Augmented Generation) pipeline indexeert deze kennis en stelt
natuurlijke-taal queries mogelijk.
Pipeline flow:
1. Alle markdown bestanden in concept-mappen (01-*, 05-*, 06-*) plus
index.md en log.md worden geladen
2. Tekst wordt geëmbedd met sentence-transformers/all-MiniLM-L6-v2
3. Vectoren worden opgeslagen in FAISS (lokaal) of Mem0 Platform (cloud)
4. Queries worden geëmbed en doorzocht voor top-k relevante documenten
5. De best-matching snippet wordt teruggegeven als antwoord met relevantiescore
Bestandslocaties
| Pad | Doel |
|---|---|
~/dev/okf-home-lab/rag/rag_query.py |
Core RAG pipeline (OKFRAGPipeline klasse) |
~/dev/okf-home-lab/rag/rag_api.py |
FastAPI wrapper (poort 8000) |
~/dev/okf-home-lab/rag/mem0_store.py |
Mem0 Platform vector store client |
~/dev/okf-home-lab/rag/memory_helper.py |
Leest hermes config get memory.provider |
~/dev/okf-home-lab/rag/README.md |
Volledige RAG documentatie |
~/dev/okf-home-lab/rag/requirements.txt |
Python afhankelijkheden |
Commando's voor agents
Query via Python (direct):
from rag_query import OKFRAGPipeline
pipeline = OKFRAGPipeline('~/dev/okf-home-lab')
result = pipeline.query_with_answer('Wat is het Jellyfin health-check commando?')
print(result['answer']) # Snippet van meest relevante doc
print(result['confidence']) # 0.0-1.0 relevantiescore
print(result['sources']) # Lijst van {title, path, relevance}
Query via CLI:
cd ~/dev/okf-home-lab
python3 rag/rag_query.py "Wat is het Jellyfin health-check commando?"
python3 rag/rag_query.py "Hoe deploy je Traefik?" --k 5
Query via HTTP API:
# Start de API server
./scripts/run_rag_api.sh
# Query de API
curl -s -X POST http://127.0.0.1:8000/search \
-H 'Content-Type: application/json' \
-d '{"question": "Wat is het Jellyfin health-check commando?", "k": 3}'
Vector store provider wisselen:
hermes config set memory.provider mem0 # Gebruik Mem0 Platform (vereist MEM0_API_KEY)
hermes config set memory.provider faiss # Gebruik lokale FAISS (standaard)
Wat agents moeten doen
Wanneer je informatie nodig hebt over de home-lab infrastructuur:
- Query de RAG pipeline in plaats van handmatig bestanden te doorzoeken — het retourneert relevante snippets met confidence scores
- Citeer bronnen — het
sourcesveld bevat het oorspronkelijke doc pad, zodat je kunt verwijzen naar waar het antwoord vandaan komt - Gebruik de API wanneer mogelijk — het FastAPI endpoint is sneller voor meerdere queries dan de pipeline elke keer opnieuw te initialiseren
- Controleer confidence — als
confidence < 0.5kan het antwoord onbetrouwbaar zijn; val terug op het direct lezen van de brondocumenten
Indexering gedrag
- Nieuwe markdown bestanden in concept-mappen worden automatisch meegenomen bij de volgende run
- Re-indexering is gecached via content hash (
.mem0_index_hash) om onnodig werk te vermijden wanneer het bundle niet is veranderd - De watcher op
~/dev/okf-home-lab/documentation_watcher/watcher.pymonitort source repos en synchroniseert wijzigingen naar het bundle
Probleemoplossing
| Probleem | Oplossing |
|---|---|
MEM0_API_KEY not found |
Voeg MEM0_API_KEY=... toe aan ~/.hermes/.env of export het |
| "Index not built" | Zorg dat je vanuit de OKF bundle root draait |
| Langzame eerste query | Eerste run bouwt de index; daaropvolgende queries zijn snel |