{"id":73488,"date":"2025-12-05T04:39:23","date_gmt":"2025-12-05T10:39:23","guid":{"rendered":"https:\/\/www.scalahosting.com\/blog\/?p=73488"},"modified":"2025-12-05T04:39:24","modified_gmt":"2025-12-05T10:39:24","slug":"how-to-install-n8n-a-complete-guide","status":"publish","type":"post","link":"https:\/\/www.scalahosting.com\/blog\/how-to-install-n8n-a-complete-guide\/","title":{"rendered":"How to Install n8n &#8211; A Complete Guide"},"content":{"rendered":"\n<p>Improving efficiency is one of the most significant challenges businesses face today. Every single task can involve numerous applications and platforms, and workers often need to communicate with customers and colleagues, transferring vital business and personal information between various departments and digital storage devices. They have to do that <strong>quickly <\/strong>and <strong>securely<\/strong>.<\/p>\n\n\n\n<p><strong>n8n <\/strong>can completely transform the way you, as a business owner, approach these challenges. It&#8217;s an automation tool that can seamlessly connect hundreds of different apps and services. It helps with <strong>repetitive tasks, notifications, data synchronization<\/strong>, and it can be critical in integrating <strong>artificial intelligence<\/strong> into your workflows.<\/p>\n\n\n\n<p>Thanks to all this, you can boost your business&#8217;s productivity, save a lot of time, and avoid costly mistakes. Furthermore, you can do that through a point-and-click interface that requires no technical or coding skills to master.<\/p>\n\n\n\n<p>You can use n8n under the <strong>Software-as-a-Service<\/strong> model. The service is called <strong>n8n Cloud<\/strong>, and it&#8217;s provided by the developers of the automation tool. In simple terms, they set up an n8n instance on their servers, which you can use in exchange for a monthly fee.<\/p>\n\n\n\n<p>However, n8n is <strong>a fully open-source platform<\/strong>. You&#8217;re free to download and use it without paying any licensing fees. You can also install n8n on a server of your choice.<\/p>\n\n\n\n<p>Our job today is to show you how.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites for Installing n8n<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full mpg-gallery\"><img decoding=\"async\" width=\"1140\" height=\"513\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/How-to-install-n8n-system-req-1140x513-1.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Prerequisites for Installing n8n\" class=\"wp-image-73491\" srcset=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/How-to-install-n8n-system-req-1140x513-1.webp 1140w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/How-to-install-n8n-system-req-1140x513-1-300x135.webp 300w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/How-to-install-n8n-system-req-1140x513-1-768x346.webp 768w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<p>n8n isn&#8217;t a particularly resource-intensive application out of the box. In fact, the minimum system requirements look pretty low:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CPU: <\/strong>n8n doesn&#8217;t use a lot of processing power. A small, self-hosted n8n instance should run smoothly on a server with <strong>2 CPU cores<\/strong>.<\/li>\n\n\n\n<li><strong>RAM<\/strong>: A simple n8n instance should work with as little as <strong>2GB of operating memory<\/strong>.<\/li>\n\n\n\n<li><strong>Storage<\/strong>: The storage requirements depend on the type of business you have and the volume of data n8n will need to process. However, for most projects, starting with around <strong>20GB of storage<\/strong> should be sufficient.<\/li>\n\n\n\n<li><strong>Operating system<\/strong>: n8n can run on any platform that supports Node.js, so the major operating systems (Windows, macOS, and Linux) are covered.<\/li>\n\n\n\n<li><strong>Database<\/strong>: Out of the box, n8n uses <strong>SQLite<\/strong>, but for a more robust setup, you&#8217;d probably prefer a system running <strong>PostgreSQL<\/strong>.<\/li>\n\n\n\n<li><a href=\"https:\/\/nodejs.org\/\"><strong>Node.js<\/strong><\/a>: To use n8n&#8217;s latest versions, you need to have Node.js version<strong> 20.19<\/strong> or higher.<\/li>\n<\/ul>\n\n\n\n<p>Because it&#8217;s open-source and the system requirements are so low, you can even install n8n on your personal device. It could be a laptop, a desktop computer, or even a Raspberry Pi. However, a local installation is only suitable for testing purposes or simple workflows with limited automation. If you plan to use n8n in a production environment, it is recommended to deploy it on a remote server.<\/p>\n\n\n\n<p>The ideal service of choice for n8n should be a <strong>cloud-based VPS<\/strong>. On the one hand, it enables you to begin working on your new workflows in a reliable and affordable hosting environment. On the other hand, it&#8217;s scalable enough to provide you with all the upgrade options you need once you start integrating apps and setting up more complex automations.<\/p>\n\n\n\n<p>ScalaHosting offers a <a href=\"https:\/\/www.scalahosting.com\/managed-cloud-hosting.html\">range of cloud VPS solutions<\/a> that can serve as the platform for your automation system, helping you streamline everyday business operations.&nbsp;<\/p>\n\n\n\n<p>But how do you get started?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Method 1: One-Click n8n Install via SPanel (Recommended)<\/strong><\/h2>\n\n\n\n<p>Often, installing new software on a VPS is done via the command line, which requires some basic technical skills. When it comes to setting up n8n on an SPanel server, however, this is not the case.<\/p>\n\n\n\n<p>At ScalaHosting, we&#8217;ve seen the impact of n8n on some of our clients&#8217; businesses, and we understand its value in optimizing everyday work. That&#8217;s why we&#8217;ve ensured SPanel provides <strong>the easiest possible way to set up n8n on your server<\/strong>.<\/p>\n\n\n\n<p>The entire process involves a few mouse clicks and will take no more than 10 minutes. Here are the steps:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Log in to the SPanel&#8217;s User Interface<\/h3>\n\n\n\n<p>By default, SPanel&#8217;s login page is located at <em>https:\/\/[your server&#8217;s IP]\/spanel<\/em>. You can use your user account&#8217;s login credentials to access the User Interface directly. Alternatively, you can open the Admin Interface first and then click <strong>Manage<\/strong> next to the account you want to use for your n8n installation.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1140\" height=\"49\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/spanel-ui-1140x49.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Step 1: Log in to the SPanel&#8217;s User Interface\" class=\"wp-image-73492\" srcset=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/spanel-ui-1140x49.webp 1140w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/spanel-ui-300x13.webp 300w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/spanel-ui-768x33.webp 768w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/spanel-ui.webp 1200w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Navigate to the NodeJS Manager<\/h3>\n\n\n\n<p>SPanel&#8217;s NodeJS Manager is a utility allowing you to deploy and manage as many Node.js applications as you want through a convenient graphical user interface. It&#8217;s available under the <strong>Software<\/strong> section in the User Interface.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full mpg-gallery\"><img decoding=\"async\" width=\"872\" height=\"270\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/nodejs-manager.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Step 2: Navigate to the NodeJS Manager\" class=\"wp-image-73493\" srcset=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/nodejs-manager.webp 872w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/nodejs-manager-300x93.webp 300w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/nodejs-manager-768x238.webp 768w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Click Deploy a New App and select n8n Automation<\/h3>\n\n\n\n<p>NodeJS Manager&#8217;s homepage features a <strong>Deploy a New App<\/strong> button. The interface is extremely straightforward, especially if you&#8217;re setting up n8n.<\/p>\n\n\n\n<p>At the top of the page, you can select between a custom application or n8n. In our case, the <strong>n8n Automation<\/strong> is the option you have to pick.<\/p>\n\n\n\n<p>The only thing you need to do is specify the URL you&#8217;ll use for accessing n8n. Your best option is to use a subdomain that you can create through the <strong>Subdomains<\/strong> section on the SPanel User Interface homepage. However, you can also deploy n8n in a subfolder.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1140\" height=\"458\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/n8n-deployment-1140x458.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Step 3: Click Deploy a New App and select n8n Automation\" class=\"wp-image-73494\" srcset=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/n8n-deployment-1140x458.webp 1140w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/n8n-deployment-300x121.webp 300w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/n8n-deployment-768x308.webp 768w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/n8n-deployment.webp 1200w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Click Deploy and wait for the installation to complete<\/h3>\n\n\n\n<p>After you&#8217;ve specified the URL, you can click the <strong>Deploy <\/strong>button. SPanel will start the installation automatically in the background.&nbsp;<\/p>\n\n\n\n<p>Depending on the server load and hardware configuration, the process can take <strong>up to ten minutes<\/strong>. When it&#8217;s done, you&#8217;ll see a notification at the top of the screen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full mpg-gallery\"><img decoding=\"async\" width=\"708\" height=\"129\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/installation-complete.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Step 4: Click Deploy and wait for the installation to complete\" class=\"wp-image-73495\" srcset=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/installation-complete.webp 708w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/installation-complete-300x55.webp 300w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<p>You can see the entire process in the handy instruction video below.<\/p>\n\n\n\n<p class=\"youtube-player\" id=\"thzUfWHT-mA\">How to Install and Self Host n8n with SPanel<\/p>\n\n\n\n<script type=\"application\/ld+json\">\n    {\n        \"@context\": \"https:\/\/schema.org\",\n        \"@type\": \"VideoObject\",\n        \"name\": \"How to Install and Self Host n8n with SPanel\",\n        \"description\": \"Learn more about n8n and how to integrate the automation tool with your hosting server via SPanel. No specific technical skills required!\",\n        \"thumbnailUrl\": [\n            \"https:\/\/i3.ytimg.com\/vi\/thzUfWHT-mA\/maxresdefault.jpg\"\n        ],\n        \"uploadDate\": \"2025-11-15\",\n        \"duration\": \"PT3M46S\",\n        \"embedUrl\": \"https:\/\/www.youtube.com\/watch?v=thzUfWHT-mA\"\n    }\n<\/script>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Access your new n8n application and create a new admin account<\/h3>\n\n\n\n<p>You can now visit the application URL and create a new admin account.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full mpg-gallery\"><img decoding=\"async\" width=\"1018\" height=\"789\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/n8n-admin-account-creation.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Step 5: Access your new n8n application and create a new admin account\" class=\"wp-image-73497\" srcset=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/n8n-admin-account-creation.webp 1018w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/n8n-admin-account-creation-300x233.webp 300w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/n8n-admin-account-creation-768x595.webp 768w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<p>The process is about as straightforward as it gets \u2013 you have to enter your email and personal information and then provide a few details about your business.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full mpg-gallery\"><img decoding=\"async\" width=\"469\" height=\"612\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/n8n-admin-account-creation-2.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Step 5: Access your new n8n application and create a new admin account 2\" class=\"wp-image-73498\" srcset=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/n8n-admin-account-creation-2.webp 469w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/n8n-admin-account-creation-2-230x300.webp 230w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<p>Completing the questionnaire will ensure your n8n instance is tailored to your specific requirements. Depending on your profile, n8n may offer some additional features for free, sending you an email with a unique licensing key and instructions on how to activate them.<\/p>\n\n\n\n<p>With the license key activated, you can start building your automations. Let&#8217;s return to the homepage and check out a basic example of how n8n workflows work.<\/p>\n\n\n\n<p>First, click the <strong>Create Workflow<\/strong> button in the top-right corner.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full mpg-gallery\"><img decoding=\"async\" width=\"169\" height=\"62\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/create-workflow-button.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Step 5: Access your new n8n application and create a new admin account 3\" class=\"wp-image-73499\"\/><\/figure>\n\n\n\n<p>With the <strong>+<\/strong> button at the center of your screen, you add the first step. We&#8217;ll now set up a simple automation that sends a sample email every five minutes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full mpg-gallery\"><img decoding=\"async\" width=\"188\" height=\"221\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/first-step.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Step 5: Access your new n8n application and create a new admin account 4\" class=\"wp-image-73500\"\/><\/figure>\n\n\n\n<p>After you click the <strong>+<\/strong> button, a menu appears on the right that helps you determine what triggers the first action in your workflow. In our case, we need to select the <strong>On a schedule<\/strong> option and configure the workflow to start every five minutes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full mpg-gallery\"><img decoding=\"async\" width=\"387\" height=\"863\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/trigger-workflow.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Step 5: Access your new n8n application and create a new admin account 5\" class=\"wp-image-73501\" srcset=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/trigger-workflow.webp 387w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/trigger-workflow-135x300.webp 135w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<p>When you&#8217;re ready, you&#8217;ll see the <strong>Schedule Trigger<\/strong> at the center of the screen. What we need to do now is create an action node to connect to it. When you click the <strong>+<\/strong> button, a similar menu appears on the right, allowing you to decide what type of action you want to integrate into the workflow.<\/p>\n\n\n\n<p>In our case, we need the <strong>Send Email<\/strong> option. From the first menu, you&#8217;ll need to create a new credential featuring your email&#8217;s login data and SMTP server. Below that, you need to specify the recipient&#8217;s email address, subject, and contents.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full mpg-gallery\"><img decoding=\"async\" width=\"403\" height=\"888\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/send-email.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Step 5: Access your new n8n application and create a new admin account 6\" class=\"wp-image-73502\" srcset=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/send-email.webp 403w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/send-email-136x300.webp 136w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<p>Clicking the <strong>Execute step<\/strong> button allows you to test whether everything is working correctly. Once you&#8217;re ready, you can click <strong>Back to Canvas<\/strong> in the top-left corner.<\/p>\n\n\n\n<p>Make sure the <strong>Active <\/strong>toggle switch in the top bar is enabled, and with that, you should have your first simple n8n workflow up and running.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1140\" height=\"545\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/activate-workflow-1140x545.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Step 5: Access your new n8n application and create a new admin account 7\" class=\"wp-image-73503\" srcset=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/activate-workflow-1140x545.webp 1140w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/activate-workflow-300x144.webp 300w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/activate-workflow-768x367.webp 768w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/activate-workflow.webp 1200w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How to Install n8n on Linux Manually<\/strong><\/h2>\n\n\n\n<p>If SPanel isn&#8217;t available on your server, the installation will inevitably be a bit trickier. Some command-line work is involved, and a bit of technical experience wouldn&#8217;t go amiss. However, as long as you follow the steps, you shouldn&#8217;t encounter any significant issues.<\/p>\n\n\n\n<p>Here is an n8n self-hosting tutorial to help you with the task:&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Method 1: Install n8n via Docker<\/h3>\n\n\n\n<p>n8n&#8217;s developers recommend using Docker for manual installation of the automation platform on a server. A container provides a<strong> clean and isolated environment<\/strong>, eliminating operating system dependencies and conflicts.<\/p>\n\n\n\n<p>The technology also allows you to transfer an n8n instance from one server to another much more easily.<\/p>\n\n\n\n<p>Let&#8217;s have a look at the steps:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 1: Ensure Docker is installed on your server<\/h4>\n\n\n\n<p>Some hosting services come with Docker pre-installed and ready to go. If it is, it&#8217;s probably mentioned in the features list, but you can check to be sure by connecting to your server via SSH and running the following command:<\/p>\n\n\n\n<p class=\"alert-orange\"><em>$ docker &#8212; version<\/em><\/p>\n\n\n\n<p>If Docker isn&#8217;t available, you&#8217;ll have to install it yourself. There are a few ways to configure the platform, but the easiest option is to use Docker&#8217;s installation script.<\/p>\n\n\n\n<p>You can download it with the following:<\/p>\n\n\n\n<p class=\"alert-orange\"><em>$ curl -fsSL https:\/\/get.docker.com -o get-docker.sh<\/em><\/p>\n\n\n\n<p>To run the script, use:<\/p>\n\n\n\n<p class=\"alert-orange\"><em>$ sudo sh get-docker<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full mpg-gallery\"><img decoding=\"async\" width=\"564\" height=\"80\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/install-docker-linux.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Step 1: Ensure Docker is installed on your server\" class=\"wp-image-73504\" srcset=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/install-docker-linux.webp 564w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/install-docker-linux-300x43.webp 300w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<p>With that done, it&#8217;s time to set up n8n.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 2: Create a new directory for n8n<\/h4>\n\n\n\n<p>You need to set up a directory where your n8n instance will run. The commands are:<\/p>\n\n\n\n<p class=\"alert-orange\"><em>$ mkdir ~\/n8n<\/em><br><em>$ cd ~\/n8n<\/em><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 3: Create a docker-compose.yml file<\/h4>\n\n\n\n<p>We&#8217;ll use the GNU nano text editor to create the main configuration file that shows Docker how to deploy our n8n container. In it, we specify the n8n image we&#8217;ll use. We also configure the networking port, domain name, and communication protocol, and we point Docker to the volume it will use for storing data.<\/p>\n\n\n\n<p>Create the new file with:&nbsp;<\/p>\n\n\n\n<p class=\"alert-orange\"><em>$ nano docker-compose.yml<\/em><\/p>\n\n\n\n<p>Inside the text editor, paste the following:<\/p>\n\n\n\n<div class=\"wp-block-group alert-orange\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p><em>version: &#8220;3.8&#8221;<\/em><\/p>\n\n\n\n<p><em>services:<\/em><\/p>\n\n\n\n<p><em>&nbsp;&nbsp;n8n:<\/em><\/p>\n\n\n\n<p><em>&nbsp;&nbsp;&nbsp;&nbsp;image: n8nio\/n8n:latest<\/em><\/p>\n\n\n\n<p><em>&nbsp;&nbsp;&nbsp;&nbsp;restart: always<\/em><\/p>\n\n\n\n<p><em>&nbsp;&nbsp;&nbsp;&nbsp;ports:<\/em><\/p>\n\n\n\n<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8211; &#8220;5678:5678&#8221;<\/em><\/p>\n\n\n\n<p><em>&nbsp;&nbsp;&nbsp;&nbsp;environment:<\/em><\/p>\n\n\n\n<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8211; N8N_HOST=[yourdomain.com]<\/em><\/p>\n\n\n\n<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8211; N8N_PORT=5678<\/em><\/p>\n\n\n\n<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8211; N8N_PROTOCOL=https<\/em><\/p>\n\n\n\n<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8211; NODE_ENV=production<\/em><\/p>\n\n\n\n<p><em>&nbsp;&nbsp;&nbsp;&nbsp;volumes:<\/em><\/p>\n\n\n\n<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8211; .\/n8n_data:\/home\/node\/.n8n<\/em><\/p>\n<\/div><\/div>\n\n\n\n<p>Don&#8217;t forget to replace <em>[yourdomain.com]<\/em> with n8n&#8217;s intended application URL. Instead of a domain name, you can set the N8N_HOST value to <em>localhost <\/em>and access n8n via your server&#8217;s IP. However, this isn&#8217;t recommended, as you&#8217;ll also have to change the protocol to HTTP rather than HTTPS.<\/p>\n\n\n\n<p>You can also use any port you want, as long as it&#8217;s allowed by your server&#8217;s firewall.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1140\" height=\"472\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/docker-compose-1140x472.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Step 3: Create a docker-compose.yml file\" class=\"wp-image-73505\" srcset=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/docker-compose-1140x472.webp 1140w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/docker-compose-300x124.webp 300w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/docker-compose-768x318.webp 768w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/docker-compose.webp 1200w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<p>Press <strong>Ctrl+x<\/strong> to exit GNU nano and press <strong>y<\/strong> to confirm that you&#8217;d like to save the changes.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step 4: Run the n8n container<\/h4>\n\n\n\n<p>Finally, Docker can create the n8n container using the settings we entered in the configuration file. The command is:<\/p>\n\n\n\n<p class=\"alert-orange\"><em>$ sudo docker compose up<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1140\" height=\"238\" src=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/container-up-1140x238.webp\" alt=\"How to Install n8n &#8211; A Complete Guide, Step 4: Run the n8n container\" class=\"wp-image-73506\" srcset=\"https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/container-up-1140x238.webp 1140w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/container-up-300x63.webp 300w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/container-up-768x160.webp 768w, https:\/\/www.scalahosting.com\/blog\/wp-content\/uploads\/2025\/12\/container-up.webp 1291w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<p>The containerization platform will automatically pull the n8n image and will install it in the new container. When it&#8217;s ready, you&#8217;ll see the line:<\/p>\n\n\n\n<p class=\"alert-orange\"><em>Editor is now accessible via:<\/em><br><em>yourdomain.com:5678<\/em><\/p>\n\n\n\n<p>You can visit the URL and start building your first workflow.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Method 2: Installing n8n via npm<\/h3>\n\n\n\n<p>If your server has Node.js, it&#8217;s bound to have npm \u2013 the default package manager for the runtime environment. It consists of a command-line client and an online database of free and paid packages. The client provides you with access to a wide range of Node.js applications, allowing you to install them with minimal hassle.<\/p>\n\n\n\n<p>n8n is also on that database, and setting it up with npm takes a single command:<\/p>\n\n\n\n<p class=\"alert-orange\"><em>$ npm install n8n -g<\/em><\/p>\n\n\n\n<p>The npm package manager automatically downloads the automation platform and sets everything up for you. When it&#8217;s done, n8n will be available at <em>http:\/\/[your server&#8217;s IP]:5678<\/em>.<\/p>\n\n\n\n<p>However, according to n8n&#8217;s developers, you should avoid using an npm installation of n8n in a production environment for a range of reasons. Here are a few:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>npm lacks built-in process management.<\/li>\n\n\n\n<li>Scaling is more difficult compared to Docker.<\/li>\n\n\n\n<li>Unlike Docker, you don&#8217;t get a stable, isolated environment.<\/li>\n\n\n\n<li>You have to manage Node.js versions manually.<\/li>\n\n\n\n<li>There&#8217;s a risk of conflicts after applying updates and installing other packages.<\/li>\n\n\n\n<li>Databases, backups, and SSL certificates are all set up and managed manually.<\/li>\n<\/ul>\n\n\n\n<p>In other words, npm gives you an easy method for deploying and testing n8n. Still, if you want to use the automation platform in a production environment, you&#8217;re better off picking another option.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Post-Installation Setup and Best Practices<\/h2>\n\n\n\n<p>Once n8n is installed and running, your main focus will be on building workflows that streamline your business operations. However, to take full advantage of n8n&#8217;s features, there are a few things to keep in mind. Let&#8217;s walk through them:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SSL certificate<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Any website or online application must be protected by an <strong>HTTPS connection<\/strong> these days. Your n8n instance is no exception. When communicating with n8n, users enter login credentials, API tokens, and other sensitive information. You want to ensure it passes through an encrypted connection.<\/p>\n\n\n\n<p>If you use SPanel, you won&#8217;t need to worry about it at all. Our server management system <strong>automatically installs a free Let&#8217;s Encrypt SSL certificate<\/strong> on all your domains and subdomains as soon as they&#8217;re pointed to the correct IP. Everything is configured on your behalf, and all you need to do is ensure that the lock sign is present in your browser&#8217;s address bar when you open your n8n instance.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Backups<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Backups are critical for ensuring your workflows are reliable. If they aren&#8217;t included in your hosting plan, you&#8217;ll need to implement a robust backup strategy that protects your data.<\/p>\n\n\n\n<p>With a ScalaHosting cloud VPS, you won&#8217;t need to worry about any of this, as all our managed solutions come with<strong> daily offsite backups included by default<\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Monitoring and inspecting logs<\/strong><\/li>\n<\/ul>\n\n\n\n<p>n8n&#8217;s logs are pretty extensive, especially when the automation tool is deployed in a Docker container. They&#8217;re located in the n8n_data folder inside the application directory, and if you think your automations are not working, your first port of call should be to look there.<\/p>\n\n\n\n<p>If you&#8217;re having trouble finding or understanding them, you can always ask your host&#8217;s support team for guidance.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scaling<\/strong><\/li>\n<\/ul>\n\n\n\n<p>You need to ensure n8n has enough hardware resources at all times to perform all automations and executions smoothly and flawlessly. On the one hand, this means choosing a hosting service with flexible upgrade options that allow you to adjust the hardware configuration as and when needed. On the other, it means taking advantage of these options before your automations start to suffer.<\/p>\n\n\n\n<p>If you use SPanel, you can see at any time how much processing power, memory, and storage you&#8217;re using through the Admin Interface&#8217;s homepage. This allows you to monitor the load and determine when an upgrade may be necessary.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Installing n8n on a server sounds like a bit of a challenge, especially if your technical experience is somewhat limited.<\/p>\n\n\n\n<p>The truth is, there&#8217;s nothing too complicated about the process. And if you use an SPanel-powered server, it&#8217;s actually a ten-minute job that requires little more than a few mouse clicks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<p><strong>Q: How can I install n8n locally using Docker?<\/strong><\/p>\n\n\n\n<p><strong>A:<\/strong> The best approach to installing n8n on a local desktop or laptop computer is to use Docker Desktop. It&#8217;s available for all major operating systems, and it offers a point-and-click interface with direct access to the n8n Docker image. Downloading and deploying the automation tool takes exactly two mouse clicks.<\/p>\n\n\n\n<p><strong>Q: Can I self-host n8n?<\/strong><\/p>\n\n\n\n<p><strong>A:<\/strong> Unlike many other automation platforms, n8n is fully open-source. This means you can download and deploy it on any device you want without paying licensing fees or signing up for specific services.<\/p>\n\n\n\n<p><strong>Q: Is n8n suitable for beginners?<\/strong><\/p>\n\n\n\n<p><strong>A:<\/strong> You don&#8217;t need any advanced technical skills to use n8n. Workflows are built around trigger and event nodes that follow specific logic. The nodes are represented in a graphical user interface and can be dragged and droppedped to perform their specific functions.<\/p>\n\n\n\n<script type=\"application\/ld+json\">\n    {\n      \"@context\": \"https:\/\/schema.org\",\n      \"@type\": \"FAQPage\",\n      \"mainEntity\": [{\n        \"@type\": \"Question\",\n        \"name\": \"How can I install n8n locally using Docker?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"The best approach to installing n8n on a local desktop or laptop computer is to use Docker Desktop. It's available for all major operating systems, and it offers a point-and-click interface with direct access to the n8n Docker image. Downloading and deploying the automation tool takes exactly two mouse clicks.\"\n        }\n      }, {\n        \"@type\": \"Question\",\n        \"name\": \"Can I self-host n8n?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"Unlike many other automation platforms, n8n is fully open-source. This means you can download and deploy it on any device you want without paying licensing fees or signing up for specific services.\"\n        }\n      },{\n        \"@type\": \"Question\",\n        \"name\": \"Is n8n suitable for beginners?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"You don't need any advanced technical skills to use n8n. Workflows are built around trigger and event nodes that follow specific logic. The nodes are represented in a graphical user interface and can be dragged and droppedped to perform their specific functions.\"\n        }\n      }]\n    }\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Improving efficiency is one of the most significant challenges businesses face today. Every single task can involve numerous applications and &#8230;<\/p>\n","protected":false},"author":113,"featured_media":73508,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_seopress_robots_primary_cat":"none","_seopress_titles_title":"How to Install n8n? %%sep%% %%sitetitle%%","_seopress_titles_desc":"Learn how to install n8n easily with our step-by-step guide. Discover one-click installation via SPanel, plus Docker and npm methods for workflow automation.","_seopress_robots_index":"","footnotes":""},"categories":[142],"tags":[],"class_list":["post-73488","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-n8n-hosting"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.scalahosting.com\/blog\/wp-json\/wp\/v2\/posts\/73488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.scalahosting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.scalahosting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.scalahosting.com\/blog\/wp-json\/wp\/v2\/users\/113"}],"replies":[{"embeddable":true,"href":"https:\/\/www.scalahosting.com\/blog\/wp-json\/wp\/v2\/comments?post=73488"}],"version-history":[{"count":4,"href":"https:\/\/www.scalahosting.com\/blog\/wp-json\/wp\/v2\/posts\/73488\/revisions"}],"predecessor-version":[{"id":73511,"href":"https:\/\/www.scalahosting.com\/blog\/wp-json\/wp\/v2\/posts\/73488\/revisions\/73511"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.scalahosting.com\/blog\/wp-json\/wp\/v2\/media\/73508"}],"wp:attachment":[{"href":"https:\/\/www.scalahosting.com\/blog\/wp-json\/wp\/v2\/media?parent=73488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.scalahosting.com\/blog\/wp-json\/wp\/v2\/categories?post=73488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.scalahosting.com\/blog\/wp-json\/wp\/v2\/tags?post=73488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}