What Was Tested
Full stack deployment via Docker Compose on Apple Silicon Mac, with ollama running on host.
Environment:
- macOS Apple Silicon
- Docker 28.3.2 / Docker Compose v2.38.2
- ollama running on host with llama3.1:8b pulled
- balajiloganathan user (Docker available)
Install
git clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git
cd self-hosted-ai-starter-kit
cp .env.example .env
docker compose up
Three containers started cleanly:
- n8n (port 5678)
- Qdrant vector store
- PostgreSQL
What Worked
One command deployment: docker compose up started all three services without errors. No manual database setup, no volume configuration, no network wiring. Everything pre-configured in docker-compose.yml.
Pre-built AI agent workflow: Navigating to localhost:5678 showed a "Test a simple AI Agent example" option immediately. Pre-built workflow loaded with Chat trigger → Agent → Chat Model already wired.
Ollama integration: Swapped OpenAI node for Ollama Chat Model node. Set credential Base URL to http://host.docker.internal:11434 (ollama running on Mac host, not in Docker). Agent responded to "hi" in 2.432 seconds, 295 tokens. Zero API keys. Fully local.
Persistent storage: PostgreSQL backing n8n means workflows, credentials, and execution history survive container restarts. Production-ready by default.
Qdrant vector store: Qdrant container running and accessible. Ready to use as vector store for RAG workflows via n8n's built-in Qdrant nodes.
Honest Findings
Demo workflow ships with OpenAI, not Ollama: The pre-built "My first AI Agent" workflow has OpenAI Chat Model pre-configured. The setup wizard immediately asks for an OpenAI API key. The README mentions switching to Ollama in the tips section but not in the quick start steps. First-time users following quick start literally will hit a broken workflow before reaching this guidance.
Fix: delete the OpenAI Model node, add Ollama Chat Model node, set Base URL to http://host.docker.internal:11434, select model. Takes 2 minutes once you know.
host.docker.internal required for Mac ollama: When ollama runs on the Mac host (not in Docker), the credential Base URL must be http://host.docker.internal:11434 — not localhost. This is documented in the README for Mac users but easy to miss.
Docker image slightly behind latest n8n: "Critical update available — please update to version 1.121.0 or higher" shown on first login. The starter kit Docker image does not always track the latest n8n release immediately.
What Was Not Tested
- RAG workflows with Qdrant (document ingestion + retrieval)
- Scheduled automations with persistent PostgreSQL storage
- Production hardening (authentication, SSL, backups)
- GPU acceleration (not available on Apple Silicon via Docker)