Running AI agents that touch customer data, financial records, or internal APIs on someone else's SaaS is a risk most teams tolerate only because the alternative — self-hosting — sounds hard. It is not. This guide shows how to deploy n8n (an open-source workflow automation platform) on a Contabo VPS for under $8/month, then wire it up to an LLM so you have a private, self-hosted AI agent pipeline. No per-execution fees, no data leaving your server, no vendor lock-in.
Why n8n for AI Agent Workflows?
Most teams reach for Zapier or Make when they want to automate repetitive tasks. Both are excellent tools. But AI agent workflows have three properties that break the SaaS automation model:
- High execution volume. An agent that checks an inbox every two minutes, classifies each email, and drafts a reply can fire thousands of operations per month. Zapier and Make bill per operation. n8n self-hosted bills per server — flat.
- Sensitive data paths. Agents that read CRM records, parse invoices, or summarize internal Slack threads are sending business data through the automation platform's servers. With self-hosted n8n, the data never leaves your VPS.
- Custom code in the loop. Real agent workflows need JavaScript or Python at arbitrary points — to transform an API response, call a local model, or branch on a condition the no-code UI can't express. n8n has a native Code node for exactly this.
n8n's 400+ integrations cover the common apps, and its HTTP Request node handles any REST or GraphQL API that lacks a pre-built connector. The LangChain-style AI nodes (Advanced AI nodes in n8n's own nomenclature) let you chain LLM calls, memory, and tool-use into multi-step agents — all editable in the same visual canvas as a regular automation.
Why Contabo for the Hosting Layer?
Self-hosting n8n needs a server with enough RAM to run Node.js, Docker, and the workflow engine comfortably. The benchmark most practitioners cite is 4GB RAM minimum, 8GB recommended for production with multiple active workflows.
Contabo's VPS S at $7.50/month delivers 4 vCPU cores, 8GB RAM, and 100GB NVMe SSD. That spec costs $25–40/month at DigitalOcean, Linode, or Vultr. Contabo owns its own data centers in Germany, the US (St. Louis, Chicago), Japan, Singapore, and Australia — it is not reselling AWS or Google Cloud. For a workload that is single-purpose (run n8n), stateful (workflow execution history), and budget-sensitive, the raw spec-per-dollar math favors Contabo over the hyperscalers.
The trade-off is documented and honest: Contabo's customer support is slower than premium hosts, and the control panel prioritizes function over form. If you are a developer or sysadmin who does not need hand-holding, that trade-off is acceptable. If you want managed support, look elsewhere and pay two to five times more.
Step 1: Provision the Contabo VPS
Sign up for a Contabo VPS S (or larger if you expect heavy concurrent workflow execution). Choose the data center closest to your users — the Germany location has the longest track record and lowest latency to Europe.
Once provisioned, you receive a root IP and password. SSH in:
ssh root@YOUR_SERVER_IP
Update the system and install Docker — n8n's recommended deployment method is the official Docker image, which isolates the app and makes updates trivial:
apt update && apt upgrade -y
curl -fsSL https://get.docker.com | bash
systemctl enable docker
systemctl start docker
Step 2: Deploy n8n with Docker
Create a directory and a docker-compose.yml that persists n8n's database (SQLite by default, sufficient for single-instance setups) and connects it to a PostgreSQL database if you outgrow SQLite later:
# /opt/n8n/docker-compose.yml
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- N8N_HOST=n8n.yourdomain.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourdomain.com/
- GENERIC_TIMEZONE=America/New_York
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
Bring it up:
cd /opt/n8n
docker compose up -d
n8n is now running on port 5678. Point a subdomain at the server's IP and proxy it through Caddy or Nginx with a free Let's Encrypt certificate — Caddy is the faster path:
# /opt/caddy/Caddyfile
n8n.yourdomain.com {
reverse_proxy localhost:5678
}
docker run -d --name caddy --restart always \
-p 80:80 -p 443:443 \
-v /opt/caddy/Caddyfile:/etc/caddy/Caddyfile \
-v caddy_data:/data \
caddy
Visit https://n8n.yourdomain.com and complete the one-screen setup. You now have a self-hosted n8n instance with HTTPS, persistent storage, and automatic restarts — for $7.50/month of infrastructure.
Step 3: Add the AI Layer
n8n's Advanced AI nodes let you build agents that reason, remember, and call tools. To use them you need an LLM API key. The most common choices:
- OpenAI (GPT-4o, GPT-4o-mini) — broadest capability, pay per token
- Anthropic (Claude) — strong on long-context reasoning and code
- Local models via Ollama — zero per-call cost, runs on the same VPS if you size up to a Contabo VPS with a GPU or accept CPU inference latency for smaller models
Add the API key as a credential in n8n (Settings → Credentials → New). Then build a basic agent workflow:
- Trigger node — Schedule (every 15 minutes) or Webhook (real-time from an external system)
- AI Agent node — set the model, attach a memory node (Window Buffer Memory is the simplest), and attach tool nodes (HTTP Request, Code, or n8n's built-in tool nodes)
- Output node — send the agent's response to Slack, email, a database, or an API
The agent node is where the reasoning happens. The tools are what it can act on. The memory is what it remembers between turns. This mirrors the architecture of any production agent framework — LangChain, CrewAI, AutoGen — but in a visual canvas you can debug without writing boilerplate orchestration code.
Step 4: A Real Workflow Example — Inbox Triage Agent
A practical first agent: monitor a support inbox, classify each incoming email by urgency, and draft a response for human review.
- Trigger: IMAP node polls the inbox every 10 minutes
- Agent: Claude or GPT-4o-mini with a system prompt defining the triage rules (urgency levels, product categories, escalation thresholds)
- Tools: an HTTP Request tool that searches your internal knowledge base API for relevant help articles
- Output: a row in a Google Sheet (urgent) or a Slack message (informational), with the drafted reply attached
This workflow runs every 10 minutes. On Zapier, that is ~4,300 operations per month — at Zapier's per-operation pricing, a single agent like this can cost more in monthly fees than the entire Contabo VPS. On self-hosted n8n, the marginal cost of each additional workflow is zero.
Step 5: Backups and Updates
Self-hosting means you own the operational responsibility. Two habits keep n8n healthy:
Backups: The n8n_data Docker volume holds your SQLite database (all workflows, credentials, and execution history). Back it up nightly:
docker run --rm -v n8n_data:/data -v /backups:/backup \
alpine tar czf /backup/n8n-$(date +%F).tar.gz -C /data .
Sync /backups off-server (to Backblaze B2, S3, or another Contabo VPS) with rclone on a cron.
Updates: n8n ships frequently. Update monthly:
cd /opt/n8n
docker compose pull
docker compose up -d
n8n runs database migrations automatically on startup. Take a backup before updating — the rollback path on Docker is to restore the volume and re-run the previous image tag.
How This Compares to SaaS Automation Pricing
The cost advantage compounds with scale. A concrete comparison at 10,000 workflow executions per month — realistic for a single agent running every few minutes:
| Platform | Monthly Cost (10k executions) | Data Residency | | :--- | :--- | :--- | | n8n self-hosted (Contabo VPS S) | $7.50 | Your server | | n8n Cloud Pro | ~€60 | n8n's servers (EU) | | Make Core | ~$10.59 (10k ops) | Make's servers | | Zapier Professional | ~$49 (limited ops) | Zapier's servers |
Make and Zapier are the right choice for teams that want zero infrastructure management and low execution volumes. n8n self-hosted is the right choice when execution volume is high, data must stay private, or custom code in the workflow is non-negotiable. Contabo's spec-per-dollar makes it the cheapest serious hosting option for the self-hosted path.
When Not to Self-Host
Self-hosting is not universally better. Skip it if:
- Your team has no one comfortable with a Linux command line. The Docker setup above is approachable, but a broken container or full disk will require SSH access and troubleshooting.
- Your execution volume is under 1,000 operations per month. At that volume, Make's free tier or Zapier's free tier costs nothing and requires zero setup.
- You need SOC 2 or HIPAA audited infrastructure documentation. Self-hosted n8n on a Contabo VPS is not audited. n8n Cloud, Zapier, and Make publish their compliance certifications.
The Bottom Line
Self-hosting n8n on a Contabo VPS gives you a private AI agent automation platform for under $8/month — a fraction of what equivalent SaaS automation costs at any meaningful execution volume. The setup is one Docker Compose file and one Caddy reverse proxy. The AI layer is a credential and a visual workflow builder. The data never leaves your server. For teams whose AI agent workflows are growing past what per-operation SaaS pricing can sustain, this is the architecture that stops the bill from scaling with every workflow you add.
Affiliate disclosure: This article contains affiliate links to Contabo. We may earn a commission if you sign up through these links — this never affects our scores, rankings, or editorial independence. All recommendations are based on independent testing and the product's documented specifications.
Compare all marketing automation platforms on our automation rankings →
