I spend a weird amount of time thinking about automation. I built Trigli to automate customer support for small businesses. I use Claude Code to automate this entire blog. And somewhere along the way, I got hooked on the idea that if I’m doing the same task more than twice, a computer should be doing it instead.
That obsession is how I found n8n.
n8n (pronounced “n-eight-n”) is a source-available automation platform that you can self-host for free. Think of it as a Zapier or Make replacement that runs on your own hardware, costs nothing beyond electricity, and doesn’t charge you per task. If you followed along with the Linux home server guide, you already have a machine that can run it. If you didn’t, a mini PC, old laptop, or even a Raspberry Pi will work.
This guide walks you through what n8n is, how to get it running with Docker, and four practical automations you can set up today. No coding experience required. No monthly bill. Just a bit of your time and a willingness to click around a visual workflow builder.
Why n8n Instead of Zapier?
This isn’t a knock on Zapier. Zapier is a great product. But its pricing has gotten aggressive, and for people who are already comfortable self-hosting (or willing to learn), n8n offers a compelling alternative.
Here’s the honest comparison:
Zapier charges per task. Their free plan gives you 100 tasks per month with single-step Zaps only. The Starter plan is $19.99/month for 750 tasks. If you’re running multiple automations across your life and projects, you can blow through that in a week. The Professional plan is $49/month, and it goes up from there.
n8n charges nothing if you self-host. The community edition is free and open-source under a “fair-code” license. You get unlimited workflows, unlimited executions, and access to over 400 integrations. There are no artificial limits on complexity. Multi-step workflows, branching logic, error handling, webhooks, cron scheduling… all included.
Your data stays local. Every automation you run through Zapier means your data passes through Zapier’s servers. That might be fine for “post a tweet when I publish a blog post,” but it gets uncomfortable when your automations handle emails, customer data, or financial notifications. With self-hosted n8n, everything runs on your machine.
You own the infrastructure. Zapier has outages. They change their API integrations. They deprecate features. When you self-host n8n, your workflows keep running as long as your server does. Nobody can change the pricing on you mid-workflow.
The tradeoff is real, though. You’re responsible for keeping it running. Updates, backups, troubleshooting. If that sounds like too much, Zapier or n8n’s paid cloud version might be better fits. But if you enjoy tinkering (and if you’re reading this blog, I’m guessing you do), the self-hosted route is hard to beat.
What You Need Before We Start
This isn’t a demanding setup. If you have any of the following, you’re good:
- A mini PC or home server running Linux (the machines from the home server guide are perfect for this)
- A Raspberry Pi 4 or 5 with at least 4GB of RAM
- An old laptop or desktop you can leave running
- A VPS or cloud instance if you’d rather not host at home
You’ll also need Docker installed. If you set up Docker during the home server guide, you’re already there. If not, here’s the quick version for Ubuntu/Debian:
sudo apt update && sudo apt install -y docker.io docker-compose
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER
Log out and back in after that last command so the group change takes effect. Verify Docker is working:
docker --version
docker-compose --version
If both commands return version numbers, you’re ready.
Installing n8n with Docker Compose
The cleanest way to run n8n is with Docker Compose. It keeps your configuration in a single file, makes updates simple, and isolates n8n from the rest of your system.
Create a directory for your n8n setup:
mkdir -p ~/n8n && cd ~/n8n
Now create a docker-compose.yml file:
nano docker-compose.yml
Paste in the following configuration:
version: '3.8'
services:
n8n:
image: n8nio/n8n
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=localhost
- N8N_PORT=5678
- N8N_PROTOCOL=http
- GENERIC_TIMEZONE=America/New_York
- TZ=America/New_York
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
Important: n8n v1.x handles authentication through the owner account you’ll create on first launch, and that setup wizard is your security layer. If you plan to expose n8n beyond your local network, add a reverse proxy with HTTPS first (Nginx Proxy Manager or Caddy both work well with Docker). Don’t expose the raw port 5678 to the internet without it.
Spin it up:
docker-compose up -d
Give it 30 seconds, then open your browser and navigate to http://your-server-ip:5678. You should see the n8n setup screen asking you to create an owner account.
That’s it. n8n is running. The whole process takes about five minutes if Docker is already installed.
Keeping n8n Updated
When a new version drops, updating is two commands:
cd ~/n8n
docker-compose pull && docker-compose up -d
Your workflows and credentials are stored in the Docker volume, so updates won’t wipe your data.
Four Practical Automations Worth Setting Up
The visual workflow builder is n8n’s best feature. You drag nodes onto a canvas, connect them with lines, and configure each node’s behavior. It feels like drawing a flowchart that actually does things. No code needed for any of these, though n8n does let you drop into JavaScript or Python if you want to get fancy later.
Here are four workflows that are genuinely useful and not just demo-ware.
1. Auto-Backup Important Emails to a Spreadsheet
The problem: You get receipts, invoices, shipping confirmations, and account alerts buried in your inbox. Finding that one email from six months ago when you need it for taxes or a warranty claim is painful.
The workflow:
- Trigger: Email (IMAP) node, filtered by sender or subject line keywords (e.g., “receipt”, “order confirmation”, “invoice”)
- Process: Extract key details using n8n’s built-in expression editor (sender, subject, date, body snippet)
- Store: Append a row to a Google Sheet or write to a local CSV file
- Optional: Save the full email as a PDF to a Nextcloud or local folder
This runs in the background, scanning your inbox at whatever interval you set (every 5 minutes, every hour, whatever). After a month, you’ll have a clean, searchable spreadsheet of every important email, and you didn’t lift a finger.
Pro tip: n8n’s IMAP node supports Gmail, Outlook, Fastmail, and any standard IMAP server. You’ll need to generate an app-specific password if you’re using Gmail with 2FA enabled.
2. Amazon Price Drop Alerts for Products You’re Watching
This one is near and dear to this blog. I research a lot of products for reviews here, and prices fluctuate constantly. A chair that costs $450 today might hit $320 during a random Tuesday sale, and I’d never know unless I was obsessively checking.
The workflow:
- Trigger: Cron node, set to run once or twice daily
- Fetch: HTTP Request node, calling a price tracking API like Keepa or CamelCamelCamel (Keepa offers an API with historical price data; CamelCamelCamel has unofficial API access through browser extensions)
- Compare: IF node, checking whether the current price is below your target threshold
- Notify: Send yourself a Slack message, email, Telegram notification, or even a webhook to your phone
You maintain a simple list of ASINs (Amazon product IDs) and target prices. The workflow checks each one on schedule, and when something drops below your threshold, you get pinged. This works great as a research tool for a blog like this, and it works just as well for personal shopping. That standing desk you’ve been eyeing? Set a target price and let n8n watch it for you.
A note on APIs: Keepa’s API requires a paid subscription ($19/month for 10,000 tokens per day). For casual price checking, that’s overkill. An alternative approach uses n8n’s HTTP Request node to scrape publicly available pricing data, though that’s more fragile and depends on website structure not changing. For a free option, the workflow can check Amazon product pages directly using the HTML Extract node, though Amazon does rate-limit aggressive scraping.
3. RSS Feed Aggregator with Filtered Notifications
The problem: You follow a dozen blogs, news sites, and forums. You open 15 tabs every morning to check for updates, skim most of it, and miss the one article you actually cared about.
The workflow:
- Trigger: RSS Feed Read node, pointed at your favorite feeds (repeat for each feed, or use a Merge node to combine them)
- Filter: IF node, checking titles and descriptions for keywords you care about (e.g., “n8n”, “self-hosting”, “home server”, “Linux”)
- Notify: Send matching articles to a Slack channel, Discord webhook, email digest, or Telegram bot
- Optional: Store all items in a database node for your own personal “feed reader”
I like this one because it turns a passive activity (scrolling through feeds hoping something catches your eye) into an active notification. You define what matters, and n8n only bothers you when something matches. The rest gets archived quietly.
You can get creative with the filter logic, too. Weight certain keywords higher. Exclude sources that tend to be clickbait. Combine RSS with the Hacker News API to surface things that are trending in tech communities. The possibilities expand as you get comfortable with n8n’s node library.
4. Auto-Post Blog Content to Social Media
The problem: You publish a blog post and then have to manually share it to Twitter/X, Bluesky, LinkedIn, Facebook, and wherever else your audience hangs out. Or you forget entirely and the post sits there with zero promotion.
The workflow:
- Trigger: Webhook node (fires when your CMS publishes a post) or RSS Feed Read node (watches your blog’s RSS feed for new entries)
- Format: Multiple Function nodes, each tailoring the message for a specific platform (Twitter gets a short hook + link, LinkedIn gets a longer summary, etc.)
- Post: HTTP Request nodes hitting each platform’s API, or native n8n nodes for supported platforms
- Log: Append results to a Google Sheet so you can track what posted and when
This is one of those automations that saves 15 minutes per post but, more importantly, eliminates the “I’ll share it later” procrastination that means it never gets shared at all. Consistency matters more than any individual post.
Fair warning: Social media APIs change frequently, and platform rules around automated posting vary. Twitter/X’s API has become increasingly restrictive (and expensive) in recent years. Bluesky and Mastodon are much more automation-friendly. Always check the current terms of service before automating posts.
The AI Side of n8n: Agents, Vector Stores, and Local Models
Here’s the part that changed my mind about n8n being “just a Zapier replacement.”
If you were looking at n8n a couple years ago, it was mostly a visual workflow builder for connecting SaaS apps. That’s still true. But in 2026, n8n has quietly become one of the cleanest ways I’ve seen to run self-hosted AI agent workflows. And if you pair it with the local Ollama setup from earlier in this series, you can run AI agents on your own hardware with zero API tokens, zero data leaving your network, and zero marginal cost per run. 🤖
I haven’t built this stack in production yet. What follows is the architecture I’ve been reading about in n8n’s docs, the self-hosted AI starter kit on GitHub, and community writeups, and it’s the direction I want to take my own home setup.
The AI Agent Node
n8n ships with a built-in AI Agent node that behaves a lot like a LangChain agent. You give it an LLM backend (OpenAI, Anthropic, Ollama, or anything with a compatible API), a memory store, and a list of tools. From there, the agent can call any other n8n node as a tool, chain steps together on its own, keep conversation memory across runs, and stream responses back.
In plain terms: instead of you building every branch of a workflow by hand, you describe the job, plug in some tools, and let the model figure out the order of operations. For non-devs, the practical upshot is that n8n goes from “if this then that” to “here’s the goal, here are the tools you have, go do it.” The visual canvas doesn’t disappear. You’re just adding a node that can reason.
Vector Store Nodes for RAG
n8n also has native Vector Store nodes: Pinecone, Qdrant, Supabase, and a few others are all first-class integrations. These power what people call RAG, short for retrieval-augmented generation. In plain English: you dump a pile of your own documents into a vector database, and the agent is allowed to look things up in that pile before it answers. It grounds responses in your actual data instead of making stuff up.
Good use cases I’ve seen people build: an internal “ask the wiki” bot, customer support triage that references your product docs, a research assistant that queries a folder of saved articles. If you can get the docs in, the agent can reason over them.
Ollama + n8n for Fully Local AI
This is the piece that makes the whole stack click.
If you followed the Ollama guide and have Llama 3 or Qwen running on your home server, you already have everything you need for the LLM backend. Point n8n’s AI Agent node at your Ollama endpoint (usually http://host.docker.internal:11434 from inside the n8n container), pick your model, and the agent runs fully offline. No OpenAI key. No data shipped to a third party. No per-token billing.
n8n even publishes an official template for this called the self-hosted AI starter kit. It bundles n8n, Ollama, Qdrant, and Postgres into a single Docker Compose file. If you want the fastest path to “local AI agent running on my own box,” that repo is the starting point.
A Concrete Example: Local Email Triage Agent
Here’s the architecture people are running that I want to clone:
- Trigger: Email (IMAP) node watches your inbox
- Agent: AI Agent node configured with Ollama (Llama 3) as the LLM backend, with a short system prompt like “classify this email as urgent, follow-up, or noise and extract any dates or dollar amounts mentioned”
- Route: Switch node reads the agent’s classification and forwards urgent messages to Slack, follow-ups to a Google Sheet, noise to archive
- Log: Everything gets appended to a local SQLite or Postgres table so you can audit what the agent did
Same shape as the email backup workflow earlier in this post, but with a reasoning step in the middle. That reasoning step is what used to require GPT-4o and a monthly OpenAI bill.
Why This Matters: The 2026 Cost Math
Running the above on self-hosted n8n + local Ollama costs you electricity. That’s it. No per-invocation token fees, no rate limits, no surprise bills when a workflow misfires and burns through 50,000 tokens.
The equivalent workflow on Zapier plus OpenAI’s GPT-4o API starts around $50 to $200 per month for modest volume, and scales up fast once you’re processing hundreds of items a day. For a home-scale automation stack, the self-hosted AI route is the biggest reason to run your own infrastructure in 2026. The free-Zapier-alternative pitch was nice in 2024. The “run your own AI agents for free” pitch is what actually moves the needle now.
The n8n Interface: What to Expect
When you first log in, n8n drops you into a clean canvas. The left sidebar has your workflow list, credentials store, and execution log. Building a workflow is visual. You click the “+” button, search for a node (there are over 400), drag it onto the canvas, and connect it to other nodes.
Each node has a configuration panel where you set up the specifics: which email account to watch, what RSS feed to read, what conditions to check. Most of it is fill-in-the-blank. The expression editor lets you reference data from previous nodes, so node 3 can use the output of node 1.
Testing is built in. You can execute a single node to see its output, run the entire workflow manually, or set it to run on a schedule. The execution log shows you every run with its data, so when something breaks (and something will eventually break), you can see exactly where and why. 🔧
n8n’s community has also built a workflow library at n8n.io/workflows where people share pre-built automations. It’s a fantastic starting point. Browse, find something close to what you want, import it, and modify it to fit your setup.
Run Your Own Automation Server: Gear Recommendations
If you’re building a dedicated server for n8n (and honestly, once you start automating things, you’ll want it running 24/7), here’s what I’d recommend. A lot of this overlaps with the home server guide, so if you already have that hardware, you’re covered.
The Server Itself
n8n is lightweight. It runs comfortably on 2GB of RAM and a dual-core processor. Any of these will work:
Dell OptiPlex 7060/7070 Micro ($80-$160 refurbished)
The same recommendation from the home server guide, because it’s still the best value. i5 processor, 16GB RAM, silent operation, tiny footprint. More than enough for n8n plus a dozen other Docker containers.
Beelink Mini S12 Pro ($130-$160 new)
If you’d rather buy new, the Beelink S12 Pro with an Intel N100 processor is a solid budget option. The N100 is surprisingly capable for lightweight server tasks, sips power (6W TDP), and comes with 16GB RAM in most configurations.
Raspberry Pi 5 (8GB) ($80-$100 for the board)
Works fine for n8n specifically. You won’t be doing media transcoding on it, but for running automation workflows, the Pi 5 has plenty of power. Budget $120-140 total with a case, power supply, and SD card or NVMe HAT.
Keep It Running: UPS Battery Backups
A server that shuts down every time the power flickers isn’t much of a server. A UPS (Uninterruptible Power Supply) gives you battery backup so your automations keep running through brief outages, and your server shuts down gracefully during longer ones.
CyberPower CP1500AVRLCD3 ($160-$190)
This is what most home server folks recommend, and for good reason. 1500VA/900W capacity, AVR (automatic voltage regulation) to smooth out dirty power, and a USB port for connecting to your server so it can trigger a clean shutdown when the battery gets low. For a mini PC drawing 15-20W, this thing will keep you running for over an hour on battery alone.
APC Back-UPS Pro 1500S ($200-$240)
The APC alternative. Slightly more expensive, but APC has been making UPS units since the ’80s and their build quality is excellent. The 1500S includes a color LCD, 10 outlets (5 battery + 5 surge-only), and APC’s PowerChute software for automated graceful shutdown.
Either one is overkill for a single mini PC, which is exactly what you want. They’ll also protect your router, switch, and any other networking gear.
Networking Gear
If your server connects over Wi-Fi, fix that first. A wired connection is non-negotiable for a device that needs to be reliable 24/7.
TP-Link TL-SG108 8-Port Gigabit Switch ($16-$20)
Cheapest reliable gigabit switch you can buy. Unmanaged, plug-and-play, metal housing. Run an ethernet cable from your router to this switch, then from the switch to your server. Done.
Further Reading
Automate the Boring Stuff with Python by Al Sweigart ($25-$35)
Not n8n-specific, but if the automation bug bites you and you want to go beyond visual workflows, this book is the gold standard for practical Python automation. It’s also available free on the author’s website, but the physical copy is worth owning.
Self-Hosted Podcast (free)
Jupiter Broadcasting’s podcast covering everything self-hosted. Great companion listening if you’re getting into this world.
Tips From the Community
I haven’t used n8n in production myself (full transparency), but I’ve spent a lot of time in the n8n community forums and r/selfhosted reading about how people are running it. Here are the most common pieces of advice that kept coming up:
Start with one workflow. Don’t try to automate everything at once. Pick the one task that annoys you most, automate it, make sure it’s solid, and then move on. You’ll learn the interface faster by actually using it than by watching tutorial videos.
Use the credential store. n8n has a built-in encrypted credential store. Use it instead of hardcoding API keys into your workflow nodes. It’s more secure and makes it easier to update a key in one place rather than hunting through every workflow.
Set up error notifications. Every workflow should have an Error Trigger node that sends you a notification when something fails. Automations that fail silently are worse than no automation at all because you think they’re working when they’re not.
Back up your data. The Docker volume that stores your n8n data should be backed up regularly. A simple cron job that copies the volume to another drive or syncs it to cloud storage will save you if something goes wrong. Here’s a basic backup script:
docker run --rm -v n8n_n8n_data:/data -v ~/backups:/backup alpine \
tar czf /backup/n8n-backup-$(date +%Y%m%d).tar.gz -C /data .
Check the community workflows. Before building something from scratch, search n8n.io/workflows. Chances are someone has already built something close to what you need, and importing their workflow gives you a head start.
Where to Go From Here
Once you’ve got n8n running and your first couple of workflows are humming along, here are some natural next steps:
Add a reverse proxy. If you want to access n8n from outside your home network, put it behind Nginx Proxy Manager or Caddy with HTTPS. Don’t expose port 5678 directly to the internet.
Connect it to Home Assistant. If you’re running a smart home setup (and if you followed the Home Assistant dashboard guide, you are), n8n can trigger automations based on HA events and vice versa. The two tools complement each other well.
Explore webhook triggers. Webhooks let external services trigger n8n workflows. Your WordPress site can ping n8n when a new post publishes. A GitHub repo can trigger a workflow on new commits. Payment processors can kick off workflows on new transactions. This is where n8n starts feeling like a central nervous system for your digital life.
Learn the Code node. For 90% of automations, the visual nodes are enough. But when you need custom logic, string manipulation, or data transformation that doesn’t fit neatly into a pre-built node, n8n lets you write JavaScript or Python directly in a Code node. It’s the escape hatch that keeps n8n from ever feeling limiting.
The Bigger Picture
Here’s what I find genuinely exciting about tools like n8n. We’re in the middle of a shift where self-hosting isn’t just for hardcore Linux nerds anymore. The tools have gotten good enough, and the hardware has gotten cheap enough, that regular people can run professional-grade infrastructure at home.
Between the home server for file storage and media, local AI with Ollama, Home Assistant for smart home control, and now n8n for automation, you can build a stack that replaces hundreds of dollars per month in SaaS subscriptions. And you actually own all of it. 🏠
That appeals to me. Not just the cost savings (though those are real), but the principle. Your data, your rules, your hardware. No terms of service changes, no sudden price hikes, no “we’re shutting down this feature you depend on” emails.
If that sounds like your kind of thing, fire up Docker and give n8n a shot. You might be surprised how fast you go from “this is cool” to “how did I live without this?”
Sources
- n8n Official Documentation
- n8n AI Agents product page
- n8n Self-Hosted AI Starter Kit
- n8n Community Workflows Library
- n8n GitHub Repository
- n8n Docker Installation Guide
- Hatchworks n8n AI Agents Guide (2026)
- Zapier Pricing Page
- Keepa API Documentation
- ServeTheHome Project TinyMiniMicro
- r/selfhosted Community
- n8n Community Forum
- Automate the Boring Stuff with Python (free online)
- Self-Hosted Podcast
Try It Out and Let Me Know
If you set up n8n after reading this, I want to hear about it. What was your first workflow? What surprised you? What broke? Drop a comment below or hit me up on social media. The self-hosting community is one of the most helpful groups on the internet, and sharing what you’ve built is half the fun.
And if you’re already running n8n, tell me what I missed. What workflows do you rely on daily? I’m always looking for ideas to steal.