Written in April 2026. The setup has grown since, and the current map is at duncansmith.tech/homelab.
Every note, document, bookmark, voice memo and wiki page I keep flows into one knowledge base I can search by keyword or by meaning. It is a set of self-hosted services wired together, each doing one job.
I had used Notion, Evernote, Google Keep, Apple Notes, Bear, Roam Research and others. Each solved part of the problem and added another silo. I knew I had the answer to a question somewhere and couldn’t find it. So I stopped looking for the right tool and connected the ones that each do one thing well.
The four layers
Capture. Obsidian takes quick notes, daily logs and meeting notes, synced across devices with Resilio. Paperless-ngx takes scans, receipts and mail through a watched folder. SolScribe takes voice memos and recordings. Linkwarden archives web pages in full, and FreshRSS brings in feeds.
Process. n8n workflows run when something new arrives. Paperless-ngx extracts text with OCR. WhisperX transcribes audio with speaker identification. A local model, Qwen3.5-9B, writes summaries and suggests tags and document types. nomic-embed-text turns the text into vectors for search.
Store. The Obsidian vault holds Markdown with backlinks and is the layer I read. Paperless-ngx holds the document archive. Qdrant holds the vectors and is the layer the AI reads. BookStack holds runbooks and reference material, and Linkwarden holds archived pages.
Retrieve. Keyword search in Obsidian, Paperless-ngx and BookStack handles exact matches. Qdrant finds things by meaning, so “How do I fix Docker networking?” returns a note titled “Container bridge mode troubleshooting”. AnythingLLM answers questions with cited sources. Claude can search all of it through MCP servers.
Three pipelines
A new document. I drop a file into the Paperless-ngx folder. Paperless OCRs and stores it, and a webhook starts an n8n workflow. The model reads the content and suggests tags and a document type, which are applied through the Paperless API. The content is embedded in Qdrant and ntfy tells me it’s done. The whole run takes under 60 seconds with no manual steps.
A voice memo. I record in SolScribe from a browser or phone. It transcribes with timestamps and speakers, then calls n8n. The model summarizes the transcript into key points and action items. An Obsidian note is created with the title, the summary and a link to the audio, and the full transcript is embedded.
The weekly digest. Every Sunday at 9am, n8n collects the week’s daily notes. The model extracts themes, decisions, action items and open questions into a Weekly Review note and surfaces anything unfinished.
The workflows behind these are described in 80 workflows later.
How the vault is organised
Obsidian follows a modified PARA structure:
Daily Notes: one per day from a template, for quick captures and logs
Projects: active work with its notes, references and tasks
Areas: ongoing responsibilities such as homelab, finance, health and career
Resources: reference material by topic
Archive: finished projects and inactive areas
Templates: 15 of them, including meeting notes, weekly reviews and decision logs
Every note carries the same frontmatter of date, tags, project and status, which lets Dataview build dashboards.
Semantic search across three collections
Three Qdrant collections sit behind semantic search: documents from Paperless-ngx, notes from Obsidian and wiki pages from BookStack. One call searches all three and returns ranked results.
What it’s like to use
A week in, I stopped worrying about where to put information. It goes in, and the system handles routing, processing and retrieval.
The weekly digest surfaces patterns I wouldn’t have noticed, and every new item is searchable as soon as it lands.
Where to start
Two pieces are enough to begin. Obsidian is free, local and Markdown-based, and daily notes with a few templates build the capture habit. Paperless-ngx is one Docker container that makes every document you drop in searchable.
Qdrant adds semantic search, n8n automates the connections and AnythingLLM adds conversational access.