You want a local AI agent that reads PDFs, files a ticket, and never phones home to OpenAI. You also do not want to spend a weekend wiring Docker networks between n8n, Ollama, Qdrant, and Postgres while three blog posts argue about which vector DB won 2024.
n8n's Self-hosted AI Starter Kit (~15k stars) is the official glue: one Compose file, curated env vars, demo workflows pre-imported, and profiles for CPU-only, NVIDIA, or AMD GPUs. It is a proof-of-concept stack, not a production reference architecture — but for "get our team playing with private AI this week," it beats rolling your own from scratch.
What's in the box
Clone the repo, copy .env.example to .env, pick a profile, and docker compose up. You get:
- n8n on port 5678 — workflows, webhooks, 400+ integrations, LangChain-style AI nodes
- Ollama on 11434 — pulls
llama3.2on first boot (watch logs; it is a large download) - Qdrant on 6333 — vector store for RAG workflows inside n8n
- PostgreSQL 16 — n8n's database (not SQLite), which you want before ten people touch automations
A one-shot n8n-import container seeds demo credentials and workflows from n8n/demo-data/ if the DB is empty — including a sample chat workflow at a fixed ID in the README. N8N_DIAGNOSTICS_ENABLED=false and personalization off by default, which is the right tone for self-hosters who did not ask for telemetry.
How this relates to our n8n post
We already covered self-hosted n8n as the automation workhorse — Shopify, Slack, CRM glue, scheduled jobs.
The starter kit is not a different product; it is an opinionated bundle for AI: Ollama + Qdrant + Postgres already on the same Docker network, with OLLAMA_HOST pointed correctly. Use the kit when you are prototyping agents, document Q&A, or "summarize this PDF without uploading it to ChatGPT." Use plain n8n when you only need cron and HTTP. Many teams end up merging lessons from the kit into their production compose file and dropping the demo import container.
GPU vs CPU vs Mac
Profiles matter:
docker compose --profile gpu-nvidia up— Ollama with NVIDIA device reservation--profile gpu-amd— ROCm image for AMD on Linux--profile cpu up— Ollama on CPU (slow for big models, fine for demos)
Apple Silicon in Docker cannot pass the GPU through. Options: run CPU-only in Compose, or run Ollama natively on the Mac and set OLLAMA_HOST=host.docker.internal:11434 plus fix the "Local Ollama service" credential URL in n8n — the README walks through it.
On a Canadian VPS, GPU instances are the difference between "usable" and "we gave up after Llama timed out." If you have no GPU, stick to smaller models and low concurrency, or call a cloud API from n8n only for the LLM step while keeping Qdrant and documents local.
Why self-host this stack?
Documents stay in your boundary. PDFs land in ./shared (mounted into n8n), embeddings sit in Qdrant on your disk, inference runs on your Ollama — not a vendor's multi-tenant RAG SaaS.
Composable automation. The same n8n instance that summarizes a contract can post to Slack, open a Jira ticket, or email a client — without exporting chunks to a separate "AI platform" bill.
Canadian hosting story. Postgres, Qdrant, and workflow history on infrastructure you choose (including Canadian Docker hosting) beats explaining where an OpenAI thread ID lives.
What running it takes
Minimum viable CPU demo: 8 GB RAM, fast disk for Ollama model storage. Serious local inference: 16 GB+ or a GPU with enough VRAM for your chosen model. Postgres and Qdrant add overhead; do not run this on the same micro VPS as production WordPress.
Before exposing port 5678 to the internet: set strong secrets in .env (N8N_ENCRYPTION_KEY, N8N_USER_MANAGEMENT_JWT_SECRET, Postgres passwords), put TLS in front, and restrict access — n8n is powerful and often holds API keys to everything else.
The README is explicit: customize before you call it production. Add backups for Postgres and Qdrant volumes, pin image tags instead of :latest, and plan upgrades with docker compose pull + create per their upgrade section.
Who it's for (and who should skip it)
Good fit: agencies building a private doc-Q&A demo for a client, ops teams testing agents before buying SaaS, anyone who already wanted n8n and needed a nudge to add Ollama and Qdrant correctly.
Skip it: if you only need chat with a local model — Open WebUI is simpler. If you need production RAG at scale, you will outgrow the template and should design storage, auth, and model serving separately. If you cannot maintain Docker and secrets, n8n's cloud offering exists — just know where data goes.
Hosting it in Canada
We deploy multi-container AI stacks on Canadian VPS and GPU hosts — TLS, firewall rules, volume backups for Postgres/Qdrant/Ollama, and sizing so the first ollama pull does not fill the disk.
Tell us GPU vs CPU, expected users, and whether this stays internal — we'll either lift the starter kit onto a sensible box or help you harden it into something production-shaped.