{"id":81960,"date":"2026-06-18T08:00:00","date_gmt":"2026-06-18T15:00:00","guid":{"rendered":"https:\/\/dhblog.dream.press\/blog\/?p=81960"},"modified":"2026-06-18T08:00:14","modified_gmt":"2026-06-18T15:00:14","slug":"n8n-self-hosted","status":"publish","type":"post","link":"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/","title":{"rendered":"How To Run n8n on Your Own Server"},"content":{"rendered":"<div class=\"tldr-block\" style=\"display: none;\">\n\t<div class=\"svg\">\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 119.25 37.8\">\n\t<g>\n\t\t<g>\n\t\t\t<path fill=\"#ffffff\" d=\"M23.4,6.93h-8.1v24.57h-7.2V6.93H0V0h23.4v6.93Z\" \/>\n\t\t\t<path fill=\"#ffffff\" d=\"M45,24.57v6.93h-18.45V0h7.2v24.57h11.25Z\" \/>\n\t\t\t<path fill=\"#ffffff\"\n\t\t\t\td=\"M90.9,15.75c0,8.91-6.61,15.75-15.3,15.75h-12.6V0h12.6c8.68,0,15.3,6.84,15.3,15.75ZM83.97,15.75c0-5.4-3.42-8.82-8.37-8.82h-5.4v17.64h5.4c4.95,0,8.37-3.42,8.37-8.82Z\" \/>\n\t\t\t<path fill=\"#ffffff\"\n\t\t\t\td=\"M105.57,21.15h-3.42v10.35h-7.2V0h12.6c5.98,0,10.8,4.81,10.8,10.8,0,3.87-2.34,7.38-5.81,9.13l6.71,11.56h-7.74l-5.94-10.35ZM102.15,14.85h5.4c1.98,0,3.6-1.75,3.6-4.05s-1.62-4.05-3.6-4.05h-5.4v8.1Z\" \/>\n\t\t<\/g>\n\t\t<path\n\t\t\tfill=\"#0173ec\"\n\t\t\td=\"M53.97,37.8h-5.4l1.8-13.27h7.2l-3.6,13.27ZM49.02,12.55c0-2.34,1.93-4.27,4.27-4.27s4.27,1.94,4.27,4.27-1.93,4.27-4.27,4.27-4.27-1.94-4.27-4.27Z\"\n\t\t \/>\n\t<\/g>\n<\/svg>\n\t<\/div>\n\t<div class=\"tldr-wrap\">\n\t\t\n\n<p class=\"wp-block-paragraph\">Self-hosting n8n costs $4\u201310\/month for a VPS and delivers unlimited workflow executions \u2014 compared to $20\u201350\/month for the equivalent tiers on n8n Cloud, which cap executions by plan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You&#8217;ll need a VPS with at least 2 GB of RAM (4 GB recommended for production), Docker Compose, PostgreSQL, and about an hour for initial setup plus 1\u20132 hours per month for maintenance. DreamHost&#8217;s Self-Managed VPS plans provide NVMe SSD storage and full root access for running open-source tools like n8n.<\/p>\n\n\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">You&#8217;ve been watching your Zapier bill climb for six months.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Every new workflow adds another line item, and every step counts as a task. The monthly invoice now costs more than your project management tool.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You start Googling alternatives and land on <strong>n8n<\/strong>, an automation platform you can self-host on your own virtual private server (VPS), for between $4 and $10 per month.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unlimited workflow executions. No per-task pricing. No surprise bills when your automations take off.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The setup takes about an hour. And yep, we walk you through the whole thing.<\/p>\n\n\n\n<h2 id=\"h-what-is-n8n-and-why-are-people-self-hosting-it\" class=\"wp-block-heading\">What Is n8n and Why Are People Self-Hosting It?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">n8n is a workflow automation platform that lets you connect apps, move data between services, and build complex automations through a visual editor. Think of it as the engine behind &#8220;when X happens, do Y and Z,&#8221; except you&#8217;re dragging nodes and drawing connections instead of writing code.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1310\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01_an_n8n_workflow.webp\" alt=\"Workflow diagram showing user form submission triggering AI agent to check manager status, then routing to Slack channel or profile update.Workflow diagram showing user form submission triggering AI agent to check manager status, then routing to Slack channel or profile update.\" class=\"wp-image-81963 lazyload\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01_an_n8n_workflow.webp 1600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01_an_n8n_workflow-300x246.webp 300w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01_an_n8n_workflow-1024x838.webp 1024w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01_an_n8n_workflow-768x629.webp 768w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01_an_n8n_workflow-1536x1258.webp 1536w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01_an_n8n_workflow-600x491.webp 600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01_an_n8n_workflow-1200x983.webp 1200w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01_an_n8n_workflow-730x598.webp 730w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01_an_n8n_workflow-1460x1195.webp 1460w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01_an_n8n_workflow-784x642.webp 784w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01_an_n8n_workflow-1568x1284.webp 1568w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01_an_n8n_workflow-877x718.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1310;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">With <a target=\"_blank\" href=\"https:\/\/github.com\/n8n-io\/n8n\">180,000+ GitHub stars<\/a> and over <a target=\"_blank\" href=\"https:\/\/hub.docker.com\/r\/n8nio\/n8n\">100 million Docker pulls<\/a>, it\u2019s become one of the most popular self-hosted automation tools out there.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The platform runs under a <a target=\"_blank\" href=\"https:\/\/docs.n8n.io\/sustainable-use-license\/\">Sustainable Use License<\/a>, which is worth understanding before you commit. It&#8217;s not traditional open source (not OSI-certified), but it&#8217;s not locked down either. You can run it freely for your own business. You just can&#8217;t resell it as a hosted service.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">&#8220;&#8230;Everybody can use [n8n&#8217;s source] totally for free\u2026 What is, however, different in our license is that people cannot commercialize our code.\u201d &#8211; Jan Oberhauser, n8n CEO, as <a target=\"_blank\" href=\"https:\/\/sequoiacap.com\/podcast\/training-data-jan-oberhauser\/\">told to Sequoia<\/a><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">People <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/self-hosting\/\">self-host<\/a> n8n because the economics flip once you move past basic usage. <a target=\"_blank\" href=\"https:\/\/n8n.io\/pricing\/\">n8n Cloud<\/a> starts at $20\/month for 2,500 executions on the Starter plan, and if you&#8217;re running any real volume, those limits show up fast.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On your own VPS? Unlimited executions, full data ownership, fixed costs. Your server runs the same whether you fire off 100 workflows or 10,000.<\/p>\n\n\n\n<h3 id=\"h-what-can-you-automate-with-n8n\" class=\"wp-block-heading\">What Can You Automate With n8n?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The 400+ built-in integrations cover a wide range, and community-built nodes push the total into the thousands. n8n is part of a growing ecosystem of <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/open-source-alternatives\/\">open-source alternatives<\/a> to SaaS tools, covering everything from CRM to project management.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some common setups:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CRM and lead routing.<\/strong> Sync contacts between your CRM, email platform, and Slack when new leads come in.<\/li>\n\n\n\n<li><strong>Webhook-triggered workflows.<\/strong> Respond to events from payment processors, form submissions, or GitHub commits in real time.<\/li>\n\n\n\n<li><strong>Data pipeline automation.<\/strong> Pull data from APIs, transform it, and push it into databases or spreadsheets on a schedule.<\/li>\n\n\n\n<li><strong>AI agent chains.<\/strong> Connect LLMs with your internal tools to build custom AI assistants that can search, summarize, and act on your data.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">(That last one is where your server resources start to matter \u2014 more on that in the specs section.)<\/p>\n\n\n\n<div class=\"article-newsletter article-newsletter--gradient\">\n\n\n<h2>Get Content Delivered Straight to Your Inbox<\/h2><p>Subscribe now to receive all the latest updates, delivered directly to your inbox.<\/p><form class=\"nwsl-form\" id=\"newsletter_block_\" novalidate><div class=\"messages\"><\/div><div class=\"form-group\"><label for=\"input_newsletter_block_\"><input type=\"email\"name=\"email\"id=\"input_newsletter_block_\"placeholder=\"Enter your email address\"novalidatedisabled=\"disabled\"\/><\/label><button type=\"submit\"class=\"btn btn--brand\"disabled=\"disabled\"><span>Sign Me Up!<\/span><svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M13.8523 0.42524L12.9323 1.34521C12.7095 1.56801 12.7132 1.9304 12.9404 2.14865L16.7241 5.7823H0.5625C0.251859 5.7823 0 6.03416 0 6.3448V7.6573C0 7.96794 0.251859 8.2198 0.5625 8.2198H16.7241L12.9405 11.8535C12.7132 12.0717 12.7095 12.4341 12.9323 12.6569L13.8523 13.5769C14.072 13.7965 14.4281 13.7965 14.6478 13.5769L20.8259 7.39879C21.0456 7.17913 21.0456 6.82298 20.8259 6.60327L14.6477 0.42524C14.4281 0.205584 14.0719 0.205584 13.8523 0.42524Z\" fill=\"white\"\/>\n<\/svg>\n<\/button><\/div><\/form><\/div>\n\n\n<h2 id=\"h-how-much-does-self-hosting-n8n-cost\" class=\"wp-block-heading\">How Much Does Self-Hosting n8n Cost?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Self-hosting n8n on a VPS <a target=\"_blank\" href=\"https:\/\/expresstech.io\/the-real-cost-of-self-hosting-n8n-in-2026\/\">costs between <strong>$4 and $10 per month<\/strong><\/a>, depending on your provider and plan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s the full infrastructure cost: server, storage, and bandwidth. The n8n software itself is free.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compare that to running n8n from their own cloud:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Plan<\/strong><\/td><td><strong>Monthly Cost<\/strong><\/td><td><strong>Execution Limit<\/strong><\/td><\/tr><tr><td>n8n Cloud Starter<\/td><td>$20\/month<\/td><td>2,500 executions<\/td><\/tr><tr><td>n8n Cloud Pro<\/td><td>$50\/month<\/td><td>Custom execution count<\/td><\/tr><tr><td>n8n Cloud Business<\/td><td>$800\/month<\/td><td>40,000 executions<\/td><\/tr><tr><td>Self-hosted VPS<\/td><td>$4\u201310\/month<\/td><td>Unlimited<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The gap widens when you factor in how n8n counts usage. n8n charges one execution per workflow trigger, regardless of how many steps that workflow contains. Other popular automation platforms count each step as a separate task.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So, a five-step workflow running 100 times per day is 3,000 n8n executions per month, but 15,000 tasks elsewhere.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Real users back this up. An analysis by <a target=\"_blank\" href=\"https:\/\/expresstech.io\/the-real-cost-of-self-hosting-n8n-in-2026\/\">ExpressTech<\/a> found <strong>annual savings of $636\u2013684<\/strong> for a setup running approximately 7,000 executions per month across four workflows. The payoff period was two to three months.<\/p>\n\n\n\n<h3 id=\"h-the-hidden-costs-of-self-hosting\" class=\"wp-block-heading\">The Hidden Costs of Self-Hosting<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The dollar savings are real. But self-hosting isn\u2019t free in every sense.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s what it costs you:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Your time. <\/strong>Plan on 1\u20132 hours a month for routine updates, backups, and log checking. Heavier setups with AI-powered automations will demand more.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>OAuth setup friction.<\/strong> Connecting services like Google Workspace or Microsoft 365 requires configuring OAuth credentials, roughly 10\u201320 minutes per provider. Google&#8217;s OAuth consent screen is particularly annoying; production use requires app verification that can take days. (If you&#8217;ve ever watched a loading spinner while Google reviews your &#8220;internal testing&#8221; app, you know the feeling.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SSL renewal failures.<\/strong> Let&#8217;s Encrypt certificates are free and automate renewal nicely \u2014 until they don\u2019t. DNS changes or process interruptions can cause silent failures. This is the kind of thing that works perfectly for 89 days and then breaks at 2 AM on day 90.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Initial setup time.<\/strong> Budget one to two hours for the first deployment if you&#8217;re comfortable in a terminal. Never SSH&#8217;d into a server before? Add some ramp-up time on top of that.<\/p>\n\n\n\n<h2 id=\"h-what-server-specs-does-n8n-need\" class=\"wp-block-heading\">What Server Specs Does n8n Need?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The minimum spec for getting n8n running is <a target=\"_blank\" href=\"https:\/\/docs.n8n.io\/hosting\/oem-deployment\/prerequisites\/\">2GB RAM, 2 CPU cores, and 20 GB of storage<\/a>. That&#8217;s enough for testing and light development. For production, 4 GB to 8 GB of RAM is the sweet spot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also, remember that n8n is <strong>memory-bound, not CPU-bound<\/strong>. RAM matters more than processing power. It uses <a target=\"_blank\" href=\"https:\/\/latenode.com\/blog\/low-code-no-code-platforms\/n8n-setup-workflows-self-hosting-templates\/n8n-system-requirements-2025-complete-hardware-specs-real-world-resource-analysis\">roughly 100MB<\/a> of memory at idle, but active workflows spike depending on data volume and how complex your nodes get.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s some quick napkin math:&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Count your active workflows, multiply by 50MB, and then add a gigabyte for the n8n application itself plus PostgreSQL overhead. That&#8217;s your RAM baseline.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"922\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/02_how_much_ram_to_self_host_n8n_.webp\" alt=\"Formula showing RAM calculation for self-hosting n8n: number of active workflows times 50MB, plus 1GB base requirement.\" class=\"wp-image-81964 lazyload\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/02_how_much_ram_to_self_host_n8n_.webp 1600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/02_how_much_ram_to_self_host_n8n_-300x173.webp 300w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/02_how_much_ram_to_self_host_n8n_-1024x590.webp 1024w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/02_how_much_ram_to_self_host_n8n_-768x443.webp 768w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/02_how_much_ram_to_self_host_n8n_-1536x885.webp 1536w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/02_how_much_ram_to_self_host_n8n_-600x346.webp 600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/02_how_much_ram_to_self_host_n8n_-1200x692.webp 1200w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/02_how_much_ram_to_self_host_n8n_-730x421.webp 730w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/02_how_much_ram_to_self_host_n8n_-1460x841.webp 1460w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/02_how_much_ram_to_self_host_n8n_-784x452.webp 784w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/02_how_much_ram_to_self_host_n8n_-1568x904.webp 1568w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/02_how_much_ram_to_self_host_n8n_-877x505.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/922;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">New to VPS hosting? Start with DreamHost\u2019s <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/beginners-guide-vps\/\">beginner&#8217;s guide to VPS<\/a> to understand the basics before sizing your server.<\/p>\n\n\n\n<h2 id=\"h-which-vps-should-you-choose-for-self-hosted-n8n\" class=\"wp-block-heading\">Which VPS Should You Choose for Self-Hosted n8n?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">4GB RAM covers most n8n self-hosters running up to 100 workflows with webhook triggers. Step up to 8GB for heavy usage, AI nodes, or browser automation.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So, here are your options:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Use Case<\/strong><\/td><td><strong>RAM<\/strong><\/td><td><strong>Recommended Plan<\/strong><\/td><td><strong>Notes<\/strong><\/td><\/tr><tr><td>Personal automations, &lt;20 workflows<\/td><td>2GB<\/td><td>DreamHost Self-Managed VPS Stack 2<\/td><td>Minimum viable. Gets tight with AI nodes or browser automation.<\/td><\/tr><tr><td>Small team, 20\u2013100 workflows, webhooks<\/td><td>4GB<\/td><td>DreamHost Self-Managed VPS Stack 4<\/td><td>Sweet spot for most self-hosters. Recommended starting point.<\/td><\/tr><tr><td>Heavy usage, AI nodes, queue mode<\/td><td>8GB+<\/td><td>DreamHost Self-Managed VPS Stack 8<\/td><td>For production workloads with browser automation or local AI models.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A few specs worth paying attention to beyond RAM: NVMe storage makes a real difference for PostgreSQL performance. That\u2019s because Database I\/O is typically the bottleneck, not the CPU. Unmetered bandwidth matters if you\u2019re running webhook-heavy workloads with a constant stream of incoming HTTP requests.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And full root access isn&#8217;t optional. If your <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/glossary\/hosting\/vps-hosting\/\">VPS hosting<\/a> plan doesn&#8217;t offer it, n8n can&#8217;t run Docker, manage its database, or configure its own services. <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/shared-vs-vps-hosting\/\">Shared hosting won&#8217;t work<\/a> here.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DreamHost is a web hosting provider that\u2019s been running open-source infrastructure for over 25 years. Our <a href=\"https:\/\/www.dreamhost.com\/hosting\/self-managed-vps\/\" target=\"_blank\" rel=\"noreferrer noopener\">Self-Managed VPS<\/a> Hosting plans check all the essential boxes \u2014 NVMe SSD storage, unmetered bandwidth, and full root access \u2014 making it a natural fit for running n8n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oh, and one thing to file away in the back of your mind for later: <strong>as your usage grows, n8n supports queue mode<\/strong>, a scaling architecture that separates the UI from workflow execution using Redis as a message broker. <a target=\"_blank\" href=\"https:\/\/docs.n8n.io\/hosting\/scaling\/queue-mode\/\">Benchmarks from n8n&#8217;s documentation<\/a> show a 7x performance jump when you make the switch.&nbsp;<\/p>\n\n\n\n<h2 id=\"h-how-do-you-set-up-n8n-on-a-vps\" class=\"wp-block-heading\">How Do You Set Up n8n on a VPS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Deploying a self-hosted n8n instance takes five steps and about an hour. At DreamHost, we recommend using <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/what-is-docker\/\">Docker<\/a> Compose. It bundles n8n, PostgreSQL, and a reverse proxy (a server that sits between the internet and your application, handling SSL and routing) into a single configuration file.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1200\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03_how_do_you_set_up_n8n_on_a_vps_.webp\" alt=\"Architecture diagram showing n8n self-hosting setup with database, n8n app, and reverse proxy layers routing internet traffic.Architecture diagram showing n8n self-hosting setup with database, n8n app, and reverse proxy layers routing internet traffic.\" class=\"wp-image-81965 lazyload\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03_how_do_you_set_up_n8n_on_a_vps_.webp 1600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03_how_do_you_set_up_n8n_on_a_vps_-300x225.webp 300w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03_how_do_you_set_up_n8n_on_a_vps_-1024x768.webp 1024w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03_how_do_you_set_up_n8n_on_a_vps_-768x576.webp 768w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03_how_do_you_set_up_n8n_on_a_vps_-1536x1152.webp 1536w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03_how_do_you_set_up_n8n_on_a_vps_-600x450.webp 600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03_how_do_you_set_up_n8n_on_a_vps_-1200x900.webp 1200w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03_how_do_you_set_up_n8n_on_a_vps_-730x548.webp 730w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03_how_do_you_set_up_n8n_on_a_vps_-1460x1095.webp 1460w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03_how_do_you_set_up_n8n_on_a_vps_-784x588.webp 784w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03_how_do_you_set_up_n8n_on_a_vps_-1568x1176.webp 1568w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03_how_do_you_set_up_n8n_on_a_vps_-877x658.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1200;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s the high-level process:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Provision a VPS with Ubuntu 22.04 or newer and SSH access<\/li>\n\n\n\n<li>Install Docker and Docker Compose on the server<\/li>\n\n\n\n<li>Create a <strong>docker-compose.yml<\/strong> file<strong> <\/strong>that defines three services: n8n, PostgreSQL, and a reverse proxy like Nginx, Traefik, or Caddy<\/li>\n\n\n\n<li>Configure <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/environment-variables\/\">environment variables<\/a>, which control everything from your n8n admin credentials to the database connection string and your encryption key<\/li>\n\n\n\n<li>Run the command <code>docker compose up -d<\/code> and you&#8217;re live!<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">One configuration file, one command. The <a target=\"_blank\" href=\"https:\/\/docs.n8n.io\/hosting\/installation\/docker\/\">n8n Docker Compose documentation<\/a> walks through every line of the compose file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s roughly what the compose file looks like, stripped to essentials:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:                                                                                                                                                                                    \n    n8n:                                                          \n      image: n8nio\/n8n:1.72.1                                                                                                                                                                  \n      restart: unless-stopped\n      ports:                                                                                                                                                                                   \n        - \"5678:5678\"                                             \n      environment:\n        - DB_TYPE=postgresdb\n        - DB_POSTGRESDB_HOST=postgres                                                                                                                                                          \n        - DB_POSTGRESDB_USER=n8n\n        - DB_POSTGRESDB_PASSWORD=your_db_password                                                                                                                                              \n        - N8N_ENCRYPTION_KEY=your_encryption_key                                                                                                                                               \n        - EXECUTIONS_DATA_MAX_AGE=168\n      depends_on:                                                                                                                                                                              \n        - postgres                                                \n      volumes:                                                                                                                                                                                 \n        - n8n_data:\/home\/node\/.n8n                                \n\n    postgres:\n      image: postgres:15\n      restart: unless-stopped\n      environment:                                                                                                                                                                             \n        - POSTGRES_USER=n8n\n        - POSTGRES_PASSWORD=your_db_password                                                                                                                                                   \n        - POSTGRES_DB=n8n                                         \n      volumes:                                                                                                                                                                                 \n        - postgres_data:\/var\/lib\/postgresql\/data\n                                                                                                                                                                                               \n  volumes:                                                        \n    n8n_data:\n    postgres_data:<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s n8n and PostgreSQL running together with persistent storage. For production, you&#8217;d add Nginx, Traefik, or Caddy as a third service in front of n8n to handle SSL.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(Start with PostgreSQL from day one. SQLite works for testing, but migrating from SQLite to PostgreSQL later is painful in the &#8220;I wish I&#8217;d done this right from the start&#8221; way. Save yourself that particular headache.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <a target=\"_blank\" href=\"https:\/\/docs.n8n.io\/hosting\/installation\/docker\/\">n8n Docker Compose documentation<\/a> covers that reverse proxy layer in full.<\/p>\n\n\n\n<h3 id=\"h-what-you-will-need-before-you-start\" class=\"wp-block-heading\">What You Will Need Before You Start<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before you begin, you\u2019ll need:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A VPS with root access<\/strong> running Ubuntu 22.04 or newer, with at least 2GB RAM (4GB recommended)<\/li>\n\n\n\n<li><strong>A domain name<\/strong> pointed to your server&#8217;s IP address (for SSL and accessing the n8n editor)<\/li>\n\n\n\n<li><strong>Docker and Docker Compose<\/strong> installed on the server<\/li>\n\n\n\n<li><strong>Basic terminal comfort <\/strong>\u2014 you should know how to SSH into a server, edit a file, and run commands<\/li>\n\n\n\n<li><strong>About 1\u20132 hours<\/strong> for the initial setup<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">One more prerequisite that isn&#8217;t on any official list: <strong>back up your N8N_ENCRYPTION_KEY the moment it&#8217;s generated.<\/strong> This key encrypts all your stored credentials, including every API key, OAuth token, and database password you&#8217;ve connected. Lose the key, and you&#8217;re rebuilding every single integration from scratch (and regretting your life choices).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Copy it somewhere safe, separate from your database backups.<\/p>\n\n\n\n<h2 id=\"h-how-do-you-keep-a-self-hosted-n8n-instance-secure\" class=\"wp-block-heading\">How Do You Keep a Self-Hosted n8n Instance Secure?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A self-hosted n8n instance is as secure as the server it runs on, and you&#8217;re the one who controls that server.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Security comes down to six things. None of them is complicated individually, but skipping any one of them leaves a real gap.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>HTTPS through a reverse proxy.<\/strong> Never access the n8n editor over plain HTTP. Use Nginx, Traefik, or Caddy with a Let&#8217;s Encrypt certificate. Caddy handles SSL automatically, which is one less thing to configure.<\/li>\n\n\n\n<li><strong>Firewall lockdown.<\/strong> Configure UFW (Uncomplicated Firewall) to allow only three ports: SSH (22), HTTP (80), and HTTPS (443). <em>Never<\/em> expose n8n&#8217;s default port 5678 directly to the internet.<\/li>\n\n\n\n<li><strong>Docker network isolation.<\/strong> Keep PostgreSQL and n8n on an internal Docker network. Your database port should never be reachable from the outside.<\/li>\n\n\n\n<li><strong>Strong authentication.<\/strong> Use a strong admin password. For internet-facing instances, reduce the default session duration to force re-authentication every few hours.<\/li>\n\n\n\n<li><strong>Regular updates.<\/strong> Pull the latest n8n Docker image and restart. Read the changelog first, because n8n updates can include breaking changes.<\/li>\n\n\n\n<li><strong>Automated backups.<\/strong> Back up your PostgreSQL database and your encryption key on a schedule. Test your restores occasionally. A backup you&#8217;ve never tested is a <em>hope<\/em>, not a plan.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">One more thing to watch out for that\u2019s not necessarily security-related but will make a big difference. n8n stores the input and output of every node in every execution, indefinitely, by default. That&#8217;s useful for debugging, but it&#8217;ll quietly bloat your database until you notice things getting sluggish.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Set `EXECUTIONS_DATA_MAX_AGE=168` in your environment variables to automatically prune execution data older than seven days.<\/p>\n\n\n\n<h2 id=\"h-what-are-the-trade-offs-of-self-hosting-vs-n8n-cloud\" class=\"wp-block-heading\">What Are the Trade-Offs of Self-Hosting vs. n8n Cloud?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Self-hosting n8n gives you unlimited executions and full data control for $4\u201310\/month. n8n Cloud gives you zero maintenance and manages SSL\/OAuth for $20\u2013800\/month. The choice comes down to whether you want to own your automation infrastructure or pay someone else to run it.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <a target=\"_blank\" href=\"https:\/\/docs.n8n.io\/choose-n8n\/\">n8n documentation puts it<\/a> this way: &#8220;n8n recommends self-hosting for expert users. Mistakes can lead to data loss, security issues, and downtime. If you aren&#8217;t experienced at managing servers, n8n recommends n8n Cloud.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s how the two options compare:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Factor<\/strong><\/td><td><strong>Self-Hosted<\/strong><\/td><td><strong>n8n Cloud<\/strong><\/td><\/tr><tr><td>Monthly cost<\/td><td>$4\u201310 (VPS)<\/td><td>$20\u2013800<\/td><\/tr><tr><td>Executions<\/td><td>Unlimited<\/td><td>2,500\u201340,000 (by tier)<\/td><\/tr><tr><td>Setup time<\/td><td>1\u20132 hours<\/td><td>Minutes<\/td><\/tr><tr><td>Maintenance<\/td><td>1\u20132 hours\/month<\/td><td>Zero<\/td><\/tr><tr><td>Data location<\/td><td>Your server<\/td><td>n8n&#8217;s infrastructure<\/td><\/tr><tr><td>Updates<\/td><td>Manual (Docker pull)<\/td><td>Automatic<\/td><\/tr><tr><td>SSL\/OAuth<\/td><td>You configure it<\/td><td>Built-in<\/td><\/tr><tr><td>Scaling<\/td><td>Add RAM, or use queue mode with Redis workers<\/td><td>Upgrade plan tier<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>There&#8217;s also a middle ground worth knowing about. <\/strong>Managed hosting platforms like PikaPods (starting around $3\/month) and Elestio (~$17\/month) let you run self-hosted n8n without managing the server yourself. You get most of the cost and control benefits and none of the sysadmin responsibility.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But here\u2019s the bigger picture. With n8n Cloud, a platform can change pricing, pause your workflows when you hit a limit, or sunset features you depend on.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With self-hosted, your automation infrastructure belongs to <em>you<\/em>. Full control, full responsibility.<\/p>\n\n\n\n<h2 id=\"h-making-the-final-call\" class=\"wp-block-heading\">Making the Final Call<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Self-hosting makes sense when three things line up:&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>You&#8217;re running enough automations that cloud execution caps would pinch<\/li>\n\n\n\n<li>You want your workflow data on infrastructure you control<\/li>\n\n\n\n<li>You (or someone on your team) is comfortable spending an hour or two a month on server work<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Otherwise, n8n Cloud is a reasonable call. Paying $20 a month to avoid ever thinking about Docker logs is a fair trade, especially for a small team that just wants their automations to run.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But once you\u2019re ready to cross the self-hosting threshold, the math gets decisive fast. A modest VPS with 4GB of RAM will run a production n8n instance for years with minimal care. Start small, upgrade as your workflows grow, and keep full control of your stack.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That last part matters more than it might seem. You can always move up to a bigger server. It\u2019s a lot harder to untangle yourself from a SaaS platform after it changes its pricing around the workflows you\u2019ve already built.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n\n<div class=\"article-cta-shared article-cta-small article-cta--product\">\n\t<div class=\"tr-img-wrap-outer jsLoading\"><img decoding=\"async\" class=\"js-img-lazy \" src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/themes\/blog2018\/assets\/img\/lazy-loading-transparent.webp\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/cta_image_a-877x522.webp 1x, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/cta_image_a.webp 2x\"  \/><\/div>\n\n\t<a href='https:\/\/www.dreamhost.com\/hosting\/self-managed-vps\/' class='link-top' target='_blank' rel='noopener noreferrer'>\n\t\t<span>Self-Managed VPS<\/span>\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\" width=\"15\"><path d=\"M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\/><\/svg>\n\t<\/a>\n\n\t<div class=\"content-btm\">\n\t\t<h2 class=\"h2--md\">\n\t\t\tOwn Your Entire Stack. Apps, AI, Databases, and More.\n\t\t<\/h2>\n\t\t<p class=\"p--md\">\n\t\t\tKeep every credential and conversation on a server you control, with NVMe speed and unmetered bandwidth built in.\n\t\t<\/p>\n\n\t\t        <a\n            href=\"https:\/\/www.dreamhost.com\/hosting\/self-managed-vps\/\"\n                        class=\"btn btn--white-outline btn--sm btn--round\"\n                                    target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            >\n                            Explore Self-Managed VPS Plans                    <\/a>\n\n\t<\/div>\n<\/div>\n\n\n<h2 id=\"h-frequently-asked-questions-about-self-hosting-n8n\" class=\"wp-block-heading\">Frequently Asked Questions About Self-Hosting n8n<\/h2>\n\n\n\n<h3 id=\"h-is-n8n-really-free-to-self-host\" class=\"wp-block-heading\">Is n8n really free to self-host?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The n8n software is free to use on your own server under the Sustainable Use License. You can run it for any internal business purpose without paying n8n a licensing fee. The &#8220;free&#8221; part is the software; you&#8217;ll still pay for your server, which runs $4\u201310\/month on a basic VPS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The license does restrict one thing: you can&#8217;t take n8n and resell it as your own hosted automation service. For running your own workflows, though, it&#8217;s free.<\/p>\n\n\n\n<h3 id=\"h-what-are-the-minimum-system-requirements-for-n8n\" class=\"wp-block-heading\">What are the minimum system requirements for n8n?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You need at least <strong>2GB of RAM, 2 CPU cores, and 20GB of storage<\/strong> to run n8n. That&#8217;s enough for testing and light use. For production workloads with 10\u201320 active workflows, opt for 4GB of RAM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DreamHost&#8217;s Self-Managed VPS Stack 4 plan provides 4GB RAM with NVMe SSD storage and full root access for running self-hosted applications like n8n. See Self-Managed <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/hosting\/vps\/\">VPS hosting<\/a> plans for details.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use PostgreSQL instead of SQLite for production, and SSD storage isn\u2019t optional for decent database performance.<\/p>\n\n\n\n<h3 id=\"h-can-i-migrate-from-zapier-to-n8n\" class=\"wp-block-heading\">Can I migrate from Zapier to n8n?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Don&#8217;t expect a one-click import. There&#8217;s no direct migration tool between the two platforms, so you&#8217;ll be rebuilding your workflows in n8n&#8217;s visual editor from scratch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The good news: n8n covers most of the same services through its 400+ built-in integrations, so your existing automations can almost certainly be recreated. Community members report this takes a few hours for typical setups, less if your workflows are simple, more if you&#8217;ve built complex multi-step sequences.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-how-do-i-update-a-self-hosted-n8n-instance\" class=\"wp-block-heading\">How do I update a self-hosted n8n instance?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pull the latest Docker image, and restart your containers. The whole process takes under five minutes. Back up your PostgreSQL database before major version updates using <code>`docker exec`<\/code> into the PostgreSQL container and <code>`pg_dump`<\/code>, or use your existing backup script.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pin your Docker image to a specific version tag (like `<code>n8nio\/n8n:1.72.1`<\/code> instead of <code>`n8nio\/n8n:latest`<\/code>) so updates only happen when you decide.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Careless updates break things. Common culprits: multiple docker-compose.yml files in different folders, and images that got silently overwritten and ended up tagged as none. Read the changelog before you pull.<\/p>\n\n\n\n<h3 id=\"h-is-self-hosted-n8n-secure-enough-for-business-data\" class=\"wp-block-heading\">Is self-hosted n8n secure enough for business data?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Self-hosted n8n can be <em>more<\/em> secure than cloud-hosted, because your data never leaves your server. No third party stores your API keys, workflow logic, or execution data. The trade-off is that security becomes your responsibility.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Follow the six-point checklist from the security section above: HTTPS, firewall, Docker isolation, strong auth, regular updates, and encrypted backups. The n8n team maintains a <a target=\"_blank\" href=\"https:\/\/docs.n8n.io\/hosting\/securing\/overview\">security hardening guide<\/a> covering additional production considerations.<\/p>\n\n\n<p><script type=\"application\/ld+json\"><br \/>\n{<br \/>\n  \"@context\": \"https:\/\/schema.org\",<br \/>\n  \"@graph\": [<br \/>\n    {<br \/>\n      \"@type\": \"Article\",<br \/>\n      \"headline\": \"How to Run n8n on Your Own Server\",<br \/>\n      \"description\": \"Self-hosting n8n costs $4-10\/month for unlimited workflow executions. Learn server specs, Docker setup, security, and when self-hosted beats n8n Cloud.\",<br \/>\n      \"datePublished\": \"2026-04-15\",<br \/>\n      \"dateModified\": \"2026-04-15\",<br \/>\n      \"author\": {<br \/>\n        \"@type\": \"Organization\",<br \/>\n        \"name\": \"DreamHost Blog\",<br \/>\n        \"url\": \"https:\/\/www.dreamhost.com\/blog\/\"<br \/>\n      },<br \/>\n      \"publisher\": {<br \/>\n        \"@type\": \"Organization\",<br \/>\n        \"name\": \"DreamHost\",<br \/>\n        \"url\": \"https:\/\/www.dreamhost.com\",<br \/>\n        \"logo\": {<br \/>\n          \"@type\": \"ImageObject\",<br \/>\n          \"url\": \"https:\/\/www.dreamhost.com\/assets\/images\/dh-logo.svg\"<br \/>\n        }<br \/>\n      },<br \/>\n      \"mainEntityOfPage\": {<br \/>\n        \"@type\": \"WebPage\",<br \/>\n        \"@id\": \"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/\"<br \/>\n      },<br \/>\n      \"keywords\": [\"n8n self hosted\", \"self host n8n\", \"n8n docker\", \"n8n VPS\", \"workflow automation\"]<br \/>\n    },<br \/>\n    {<br \/>\n      \"@type\": \"FAQPage\",<br \/>\n      \"mainEntity\": [<br \/>\n        {<br \/>\n          \"@type\": \"Question\",<br \/>\n          \"name\": \"Is n8n really free to self-host?\",<br \/>\n          \"acceptedAnswer\": {<br \/>\n            \"@type\": \"Answer\",<br \/>\n            \"text\": \"The n8n software is free to use on your own server under the Sustainable Use License. You can run it for any internal business purpose without paying n8n a licensing fee. The only cost is your server, which runs $4-10\/month on a basic VPS. The license restricts reselling n8n as a hosted automation service.\"<br \/>\n          }<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"Question\",<br \/>\n          \"name\": \"What are the minimum system requirements for n8n?\",<br \/>\n          \"acceptedAnswer\": {<br \/>\n            \"@type\": \"Answer\",<br \/>\n            \"text\": \"n8n requires at least 2 GB of RAM, 2 CPU cores, and 20 GB of storage. That's enough for testing and light use. For production workloads with 10-20 active workflows, 4 GB of RAM is the recommended starting point. Use PostgreSQL instead of SQLite for production, and SSD storage isn\u2019t optional.\"<br \/>\n          }<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"Question\",<br \/>\n          \"name\": \"Can I migrate from Zapier to n8n?\",<br \/>\n          \"acceptedAnswer\": {<br \/>\n            \"@type\": \"Answer\",<br \/>\n            \"text\": \"n8n covers most of the same services through its 400+ built-in integrations. There's no direct import button \u2014 you'll need to rebuild your workflows in n8n's visual editor. Community members report this takes a few hours for typical automation setups.\"<br \/>\n          }<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"Question\",<br \/>\n          \"name\": \"How do I update a self-hosted n8n instance?\",<br \/>\n          \"acceptedAnswer\": {<br \/>\n            \"@type\": \"Answer\",<br \/>\n            \"text\": \"Pull the latest Docker image and restart your containers. The whole process takes under five minutes. Back up your PostgreSQL database before major version updates. Pin your Docker image to a specific version tag so updates only happen when you decide.\"<br \/>\n          }<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"Question\",<br \/>\n          \"name\": \"Is self-hosted n8n secure enough for business data?\",<br \/>\n          \"acceptedAnswer\": {<br \/>\n            \"@type\": \"Answer\",<br \/>\n            \"text\": \"Self-hosted n8n can be more secure than cloud-hosted because your data never leaves your server. The trade-off is that security becomes your responsibility. Securing a self-hosted instance requires HTTPS via a reverse proxy, firewall configuration, Docker network isolation, strong authentication, regular updates, and encrypted backups.\"<br \/>\n          }<br \/>\n        }<br \/>\n      ]<br \/>\n    },<br \/>\n    {<br \/>\n      \"@type\": \"HowTo\",<br \/>\n      \"name\": \"How to Set Up n8n on a VPS\",<br \/>\n      \"description\": \"Deploy self-hosted n8n using Docker Compose on a VPS with PostgreSQL and a reverse proxy.\",<br \/>\n      \"totalTime\": \"PT1H\",<br \/>\n      \"estimatedCost\": {<br \/>\n        \"@type\": \"MonetaryAmount\",<br \/>\n        \"currency\": \"USD\",<br \/>\n        \"value\": \"4-10\"<br \/>\n      },<br \/>\n      \"tool\": [<br \/>\n        {\"@type\": \"HowToTool\", \"name\": \"VPS with Ubuntu 22.04 or newer\"},<br \/>\n        {\"@type\": \"HowToTool\", \"name\": \"Docker and Docker Compose\"},<br \/>\n        {\"@type\": \"HowToTool\", \"name\": \"Domain name pointed to server IP\"},<br \/>\n        {\"@type\": \"HowToTool\", \"name\": \"SSH terminal access\"}<br \/>\n      ],<br \/>\n      \"step\": [<br \/>\n        {<br \/>\n          \"@type\": \"HowToStep\",<br \/>\n          \"position\": 1,<br \/>\n          \"name\": \"Provision a VPS\",<br \/>\n          \"text\": \"Set up a VPS with Ubuntu 22.04 or newer and SSH access. Minimum 2 GB RAM, 4 GB recommended for production.\"<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"HowToStep\",<br \/>\n          \"position\": 2,<br \/>\n          \"name\": \"Install Docker and Docker Compose\",<br \/>\n          \"text\": \"Install Docker Engine and Docker Compose on your server.\"<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"HowToStep\",<br \/>\n          \"position\": 3,<br \/>\n          \"name\": \"Create a docker-compose.yml file\",<br \/>\n          \"text\": \"Create a Docker Compose configuration file that defines three services: n8n, PostgreSQL, and a reverse proxy like Nginx, Traefik, or Caddy.\"<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"HowToStep\",<br \/>\n          \"position\": 4,<br \/>\n          \"name\": \"Configure environment variables\",<br \/>\n          \"text\": \"Set environment variables for n8n admin credentials, database connection string, encryption key, and other configuration options.\"<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"HowToStep\",<br \/>\n          \"position\": 5,<br \/>\n          \"name\": \"Run docker compose up\",<br \/>\n          \"text\": \"Run 'docker compose up -d' to start all services. Your n8n instance is now live and accessible via your domain.\"<br \/>\n        }<br \/>\n      ]<br \/>\n    },<br \/>\n    {<br \/>\n      \"@type\": \"SoftwareApplication\",<br \/>\n      \"name\": \"n8n\",<br \/>\n      \"applicationCategory\": \"BusinessApplication\",<br \/>\n      \"operatingSystem\": \"Linux\",<br \/>\n      \"description\": \"A fair-code workflow automation platform with 400+ built-in integrations for connecting apps, moving data, and building complex automations through a visual editor.\",<br \/>\n      \"url\": \"https:\/\/github.com\/n8n-io\/n8n\",<br \/>\n      \"offers\": {<br \/>\n        \"@type\": \"Offer\",<br \/>\n        \"price\": \"0\",<br \/>\n        \"priceCurrency\": \"USD\",<br \/>\n        \"description\": \"Free to self-host under the Sustainable Use License. VPS infrastructure costs $4-10\/month separately.\"<br \/>\n      },<br \/>\n      \"softwareVersion\": \"1.72+\",<br \/>\n      \"author\": {<br \/>\n        \"@type\": \"Organization\",<br \/>\n        \"name\": \"n8n GmbH\",<br \/>\n        \"url\": \"https:\/\/n8n.io\"<br \/>\n      }<br \/>\n    }<br \/>\n  ]<br \/>\n}<br \/>\n<\/script><\/p>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Self-hosting n8n costs $4\u201310\/month for unlimited workflow executions. Learn server specs, Docker Compose setup, security, and when self-hosted beats n8n Cloud.<\/p>\n","protected":false},"author":2,"featured_media":81962,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"toc_headlines":"[[\"h-what-is-n8n-and-why-are-people-self-hosting-it\",\"What Is n8n and Why Are People Self-Hosting It?\"],[\"h-how-much-does-self-hosting-n8n-cost\",\"How Much Does Self-Hosting n8n Cost?\"],[\"h-what-server-specs-does-n8n-need\",\"What Server Specs Does n8n Need?\"],[\"h-which-vps-should-you-choose-for-self-hosted-n8n\",\"Which VPS Should You Choose for Self-Hosted n8n?\"],[\"h-how-do-you-set-up-n8n-on-a-vps\",\"How Do You Set Up n8n on a VPS?\"],[\"h-how-do-you-keep-a-self-hosted-n8n-instance-secure\",\"How Do You Keep a Self-Hosted n8n Instance Secure?\"],[\"h-what-are-the-trade-offs-of-self-hosting-vs-n8n-cloud\",\"What Are the Trade-Offs of Self-Hosting vs. n8n Cloud?\"],[\"h-making-the-final-call\",\"Making the Final Call\"],[\"h-frequently-asked-questions-about-self-hosting-n8n\",\"Frequently Asked Questions About Self-Hosting n8n\"]]","hide_toc":false,"footnotes":""},"categories":[14839],"tags":[],"class_list":["post-81960","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.3 (Yoast SEO v27.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Run n8n on Your Own Server - DreamHost<\/title>\n<meta name=\"description\" content=\"Self-hosting n8n costs $4\u201310\/month for unlimited workflow executions. Learn server specs, Docker Compose setup, security, and when self-hosted beats n8n Cloud.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Run n8n on Your Own Server (Self-Hosting Guide)\" \/>\n<meta property=\"og:description\" content=\"Stop paying per task. Learn how to self-host n8n on a VPS for just $4-$10\/month and get unlimited workflow executions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/\" \/>\n<meta property=\"og:site_name\" content=\"DreamHost Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DreamHost\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-18T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-18T15:00:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1220_x_628_ogimage_self_host_n8n.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Dallas Kashuba\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"How to Run n8n on Your Own Server (Self-Hosting Guide)\" \/>\n<meta name=\"twitter:description\" content=\"Stop paying per task. Learn how to self-host n8n on a VPS for just $4-$10\/month and get unlimited workflow executions.\" \/>\n<meta name=\"twitter:creator\" content=\"@http:\/\/twitter.com\/dallas\" \/>\n<meta name=\"twitter:site\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dallas Kashuba\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Run n8n on Your Own Server - DreamHost","description":"Self-hosting n8n costs $4\u201310\/month for unlimited workflow executions. Learn server specs, Docker Compose setup, security, and when self-hosted beats n8n Cloud.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/","og_locale":"en_US","og_type":"article","og_title":"How to Run n8n on Your Own Server (Self-Hosting Guide)","og_description":"Stop paying per task. Learn how to self-host n8n on a VPS for just $4-$10\/month and get unlimited workflow executions.","og_url":"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/","og_site_name":"DreamHost Blog","article_publisher":"https:\/\/www.facebook.com\/DreamHost\/","article_published_time":"2026-06-18T15:00:00+00:00","article_modified_time":"2026-06-18T15:00:14+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1220_x_628_ogimage_self_host_n8n.webp","type":"image\/webp"}],"author":"Dallas Kashuba","twitter_card":"summary_large_image","twitter_title":"How to Run n8n on Your Own Server (Self-Hosting Guide)","twitter_description":"Stop paying per task. Learn how to self-host n8n on a VPS for just $4-$10\/month and get unlimited workflow executions.","twitter_creator":"@http:\/\/twitter.com\/dallas","twitter_site":"@dreamhost","twitter_misc":{"Written by":"Dallas Kashuba","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/#article","isPartOf":{"@id":"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/"},"author":{"name":"Dallas Kashuba","@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/person\/f6a12ad459538e8e418cf31b8b603814"},"headline":"How To Run n8n on Your Own Server","datePublished":"2026-06-18T15:00:00+00:00","dateModified":"2026-06-18T15:00:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/"},"wordCount":2880,"publisher":{"@id":"https:\/\/www.dreamhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460_x_1095_blog_hero_self_host_n8n.webp","articleSection":["AI"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/","url":"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/","name":"How to Run n8n on Your Own Server - DreamHost","isPartOf":{"@id":"https:\/\/www.dreamhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/#primaryimage"},"image":{"@id":"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460_x_1095_blog_hero_self_host_n8n.webp","datePublished":"2026-06-18T15:00:00+00:00","dateModified":"2026-06-18T15:00:14+00:00","description":"Self-hosting n8n costs $4\u201310\/month for unlimited workflow executions. Learn server specs, Docker Compose setup, security, and when self-hosted beats n8n Cloud.","breadcrumb":{"@id":"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/#primaryimage","url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460_x_1095_blog_hero_self_host_n8n.webp","contentUrl":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460_x_1095_blog_hero_self_host_n8n.webp","width":1460,"height":1095,"caption":"How To Run n8n on Your Own Server"},{"@type":"BreadcrumbList","@id":"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dreamhost.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How To Run n8n on Your Own Server"}]},{"@type":"WebSite","@id":"https:\/\/www.dreamhost.com\/blog\/#website","url":"https:\/\/www.dreamhost.com\/blog\/","name":"DreamHost Blog","description":"","publisher":{"@id":"https:\/\/www.dreamhost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dreamhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dreamhost.com\/blog\/#organization","name":"DreamHost","url":"https:\/\/www.dreamhost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","contentUrl":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","width":1200,"height":168,"caption":"DreamHost"},"image":{"@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DreamHost\/","https:\/\/x.com\/dreamhost","https:\/\/www.instagram.com\/dreamhost\/","https:\/\/www.linkedin.com\/company\/dreamhost\/","https:\/\/www.youtube.com\/user\/dreamhostusa"]},{"@type":"Person","@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/person\/f6a12ad459538e8e418cf31b8b603814","name":"Dallas Kashuba","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/05ab6fb1606be97d16c74efb0fba01b3c11e91501dc5f9661bdfbb5c5b0cd113?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/05ab6fb1606be97d16c74efb0fba01b3c11e91501dc5f9661bdfbb5c5b0cd113?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/05ab6fb1606be97d16c74efb0fba01b3c11e91501dc5f9661bdfbb5c5b0cd113?s=96&d=mm&r=g","caption":"Dallas Kashuba"},"sameAs":["http:\/\/www.idallas.com\/","https:\/\/x.com\/http:\/\/twitter.com\/dallas"],"url":"https:\/\/www.dreamhost.com\/blog\/author\/dallas\/"}]}},"lang":"en","translations":{"en":81960},"pll_sync_post":{},"_links":{"self":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/81960","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/comments?post=81960"}],"version-history":[{"count":5,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/81960\/revisions"}],"predecessor-version":[{"id":81974,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/81960\/revisions\/81974"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/media\/81962"}],"wp:attachment":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/media?parent=81960"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/categories?post=81960"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/tags?post=81960"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}