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
Editor accessible at http://localhost:5678 within 60 seconds.
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)