Automation is changing how we work by connecting apps and services to save time and reduce repetitive tasks. One of the best tools to help with this is n8n—an open-source workflow automation platform that lets you build complex automations with minimal coding. Whether you want to automatically move data between apps, send notifications, or build advanced business workflows, n8n offers a flexible and powerful solution.
This guide will walk you through how to install n8n using different methods—from quick local setups to production-ready deployments. You’ll learn which method suits your needs best, how to configure n8n securely, and some tips for running it smoothly.
What is n8n and Why Should You Use It?
Before we jump into installation, it’s important to understand what n8n is and why it’s become popular.
- Open Source: Unlike many automation tools that charge monthly fees and restrict features, n8n is open source. This means you have full access to the source code, can customize it as you like, and run it on your own servers without ongoing licensing costs.
- No-Code/Low-Code: n8n uses a visual editor where you can drag and drop “nodes” representing apps or actions. This makes automation accessible even if you aren’t a developer.
- Highly Extensible: If you have coding skills, you can extend n8n’s functionality by writing custom JavaScript functions or nodes.
- Flexible Hosting: You can self-host n8n for full control or use the official n8n Cloud service if you prefer a managed solution.
- Wide Range of Integrations: With more than 200 supported apps—from Google Sheets to Slack, Twitter to AWS—n8n can automate almost anything.
Because of these advantages, n8n is used by freelancers, startups, and large companies alike to automate tasks, increase productivity, and reduce errors.
Prerequisites Before Installing n8n
System Requirements
n8n is fairly lightweight but you’ll want to meet these basic specs to run it comfortably:
- Processor: Modern CPU (Intel or AMD)
- RAM: At least 1GB; 2GB or more is recommended for production workloads
- Disk Space: About 500MB minimum; more depending on data stored
- Operating System: Linux, Windows, or macOS supported
If you’re installing on a cloud server (e.g., AWS, DigitalOcean), a small VPS with 2 CPUs and 2GB RAM is usually sufficient for many use cases.
Software Requirements
Depending on the installation method, your system might need:
- Node.js (v16 or later): Required if installing with npm.
- Docker & Docker Compose: Needed for containerized setups.
- Git: Useful if cloning from the source repository.
- Database (optional but recommended): SQLite is the default lightweight option, but PostgreSQL or MySQL is better for production.
General Recommendations
- For security, create a dedicated user account on your server to run n8n.
- Keep your system updated with the latest security patches.
- Back up your workflows and database regularly.
- Use environment variables to store sensitive data like passwords or API keys.
Overview of Installation Methods
You can install n8n in several ways:
- npm (Node Package Manager): Fast local setup, good for development and testing.
- Docker container: Portable, easy to run anywhere Docker is installed.
- Docker Compose: Recommended for production; handles multiple services and persistent storage.
- n8n Cloud: Fully managed hosted service.
- Desktop App: Native app for local testing and demos.
Each method has pros and cons depending on your needs, skill level, and where you want to run n8n.
Method 1: Install n8n Using npm (Node.js)
This is the fastest way to get n8n running locally if you want to try it out or develop workflows.
Step-by-Step Guide
- Install Node.js
Download and install Node.js (LTS version) from the official website: https://nodejs.org/.
Verify the installation by running in your terminal:
node -v
npm -v
Make sure Node.js version is 16 or higher.
- Install n8n Globally
Run:
npm install -g n8n
This installs n8n globally so you can run it from anywhere.
- Start n8n
Simply type:
n8n
The server will start, and you can open your browser to http://localhost:5678.
What Happens Behind the Scenes?
n8n runs a Node.js process that listens on port 5678 by default. The interface is a web app served locally. You can start creating workflows immediately.
Pros and Cons
- Pros:
- Quick and easy.
- Great for beginners and developers.
- No need to set up containers or databases initially.
- Cons:
- Not recommended for production; lacks process management.
- If your terminal closes, n8n stops unless you use a process manager.
- Data persistence is limited unless configured with an external database.
Tips for Stability
If you want to run n8n in the background, use a process manager like PM2:
npm install -g pm2
pm2 start n8n
PM2 keeps n8n running even if your terminal closes or your server restarts.
Method 2: Install Using Docker
Docker containers package all dependencies into a single image. This makes it easy to run n8n anywhere Docker is supported.
Step-by-Step Guide
- Install Docker
Follow official guides:
Verify installation:
docker --version
- Run n8n Docker Container
Run:
docker run -it --rm -p 5678:5678 n8nio/n8n
This will pull the official n8n image and start it.
- Access n8n
Open your browser to http://localhost:5678.
Adding Basic Authentication
By default, n8n runs without authentication, which is risky on public networks. To secure it, use environment variables:
docker run -it --rm -p 5678:5678 \
-e N8N_BASIC_AUTH_ACTIVE=true \
-e N8N_BASIC_AUTH_USER=myuser \
-e N8N_BASIC_AUTH_PASSWORD=mypassword \
n8nio/n8n
This requires you to enter credentials before accessing n8n.
Data Persistence with Volumes
Without volumes, data will be lost when the container stops. Mount a local folder to persist data:
docker run -it --rm -p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
Pros and Cons
- Pros:
- Containerization ensures a clean environment.
- Easy deployment and upgrades.
- Works on any OS with Docker.
- Cons:
- Needs basic Docker knowledge.
- Must configure volumes for persistent data.
- Environment variables need to be set explicitly.
Method 3: Install Using Docker Compose (Recommended for Production)
For production environments, running n8n with Docker Compose is ideal because it manages multiple services and persistent data.
What is Docker Compose?
Docker Compose is a tool for defining and running multi-container Docker applications using a YAML file.
Step-by-Step Guide
- Install Docker and Docker Compose
Confirm both are installed:
docker --version
docker-compose --version
- Create a
docker-compose.yml
File
Example:
version: "3.1"
services:
n8n:
image: n8nio/n8n
restart: always
ports:
- 5678:5678
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=myuser
- N8N_BASIC_AUTH_PASSWORD=mypassword
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8nuser
- DB_POSTGRESDB_PASSWORD=n8npassword
volumes:
- ./n8n-data:/home/node/.n8n
postgres:
image: postgres:13
restart: always
environment:
- POSTGRES_USER=n8nuser
- POSTGRES_PASSWORD=n8npassword
- POSTGRES_DB=n8n
volumes:
- ./postgres-data:/var/lib/postgresql/data
This sets up n8n with a PostgreSQL database and persistent storage.
- Start Services
Run:
docker-compose up -d
This starts both the database and n8n.
- Verify
Access n8n at http://localhost:5678 and log in with your credentials.
Why Use PostgreSQL?
SQLite is fine for testing but lacks scalability and concurrent usage support. PostgreSQL is more robust, reliable, and preferred for production.
Setting Up Reverse Proxy & SSL
To secure your server with HTTPS, set up Nginx or Traefik as a reverse proxy in front of n8n.
Example Nginx snippet:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Use Let’s Encrypt to add free SSL certificates for secure traffic.
Pros and Cons
- Pros:
- Highly stable and scalable.
- Data and configurations persist between restarts.
- Easy to add more services like Redis, databases, etc.
- Cons:
- Initial setup requires more technical knowledge.
- Managing multiple containers might be complex for beginners.
Method 4: Using n8n Cloud (Hosted Solution)
If you don’t want to manage servers, n8n Cloud is an official hosted service.
When to Choose n8n Cloud
- No need to install or maintain software.
- Automated backups and scaling.
- Quick setup and easy user interface.
How to Get Started
- Go to https://n8n.io/cloud.
- Sign up and create an account.
- Create a new workflow environment.
- Start building workflows immediately via the web interface.
Pricing
n8n Cloud offers various subscription tiers based on usage and features. Check their website for the latest pricing.
Pros and Cons
- Pros:
- No infrastructure headaches.
- Automatic updates and backups.
- Support and SLA available.
- Cons:
- Monthly fees apply.
- Less control over customization.
- Data hosted on third-party servers.
Method 5: Desktop Application (For Local Testing and Development)
For quick testing or demos, n8n offers a native desktop app.
Installation
Download from https://n8n.io/download for Windows, macOS, or Linux.
How It Works
- Runs n8n locally on your computer.
- No need to install Node.js or Docker.
- Good for learning and developing workflows before moving to production.
Pros and Cons
- Pros:
- Simple, no setup required.
- Portable and easy to use.
- Cons:
- Not suited for production.
- Limited scalability.
Post-Installation: What to Do Next?
Creating Your First Workflow
- Open n8n in your browser.
- Click “New Workflow”.
- Add a Trigger node (like Cron or Webhook).
- Add an Action node (e.g., send an email, create a Google Sheet row).
- Connect the nodes by dragging lines.
- Save and activate your workflow.
Security Best Practices
- Always enable Basic Authentication or OAuth where possible.
- Use HTTPS to encrypt traffic.
- Avoid exposing your n8n server directly to the internet without protection.
- Store sensitive credentials in environment variables or n8n’s credential manager.
Backups
Regularly back up your workflows and databases. For Docker Compose setups, back up your volume directories.
Troubleshooting Common Issues
- Port 5678 Already in Use: Change the port with environment variable
N8N_PORT
or stop conflicting service. - Docker Permission Denied: Run Docker commands with
sudo
or add your user to thedocker
group. - Database Connection Errors: Double-check database credentials and service health.
- Workflow Crashes or Errors: Review logs using
docker logs <container>
or in your terminal. - Lost Data: Ensure volumes are properly mapped for persistent storage.
Best Practices for Production Deployments
- Use Docker Compose or Kubernetes for container orchestration.
- Run behind a reverse proxy with HTTPS enabled.
- Use a dedicated and managed PostgreSQL or MySQL database.
- Monitor system health and logs.
- Automate backups and workflow exports.
- Restrict access using firewalls and authentication.
- Keep your software and dependencies up to date.
Conclusion
Installing n8n can be as simple or as advanced as you want. For quick experiments, the npm or desktop app methods are ideal. For reliable, secure, and scalable automation, Docker Compose with a managed database is the best choice. Alternatively, the hosted n8n Cloud lets you skip infrastructure management and start automating immediately.
No matter your skill level, n8n’s flexibility means you can build automation workflows that save time, reduce errors, and scale with your needs.