Blog / How to Install n8n on a Hostinger VPS: A Step-by-Step Guide (2025)
How to Install n8n on a Hostinger VPS: A Step-by-Step Guide (2025)
Self-hosting n8n on a small VPS gives you unlimited workflow executions with your data on your own server — no per-execution pricing. This guide covers the one-click template, the manual Docker install, free HTTPS, and the security settings most tutorials skip.
n8n is the workflow automation tool that has quietly become the backbone of serious AI automation work. Unlike Zapier or Make, you can self-host it — which means no per-execution pricing, no task limits, and your data never leaves a server you control. The cheapest reliable way to do that is a small VPS.
This guide walks through installing n8n on a Hostinger VPS from scratch: the one-click template route (5 minutes), the manual Docker route (full control), then HTTPS and the security settings most tutorials leave out.
Why self-host n8n instead of using n8n Cloud?
| n8n Cloud | Self-hosted on a VPS | |
|---|---|---|
| Cost model | Monthly fee, capped executions | Flat VPS cost, unlimited executions |
| Data residency | n8n's servers | Your server, your jurisdiction |
| Credentials & API keys | Stored by the vendor | Stored in your own database |
| Community nodes | Restricted | Install anything |
| Setup effort | None | ~15 minutes (this guide) |
For anyone handling client data, internal company records, or anything covered by PDPA, the data-residency column is usually the deciding one. That is why most corporate automation teams we train end up self-hosting.
What you need before you start
- A VPS. Minimum 1 vCPU / 1 GB RAM (KVM 1). We recommend 2 vCPU / 2 GB RAM (KVM 2) — n8n gets sluggish on 1 GB once you run AI nodes or a few concurrent workflows. Grab one here: Hostinger VPS (20% off with our link)
- Ubuntu as the operating system
- A domain or subdomain (e.g.
n8n.yourdomain.com) if you want HTTPS — and you do, because webhooks from most services require it - SSH access, or just the hPanel browser terminal
Method 1: The one-click n8n template (fastest)
Hostinger ships a prebuilt n8n VPS template. If you just want n8n running, use this.
- Log in to hPanel and open the VPS section
- Click Manage on your VPS
- Open the OS & Panel dropdown and choose Operating System
- Search for and select the n8n template
- Confirm the OS-overwrite warning — this wipes the server, so only do it on a fresh VPS
- Set your root password and wait for the build to finish
- Click Panel access → Login URL
- Create your owner account (email + strong password) and the n8n dashboard loads
That is a working n8n. Skip to securing it — do not leave it on the default settings.
Method 2: Manual install with Docker (recommended for production)
Docker is the route we use in our own workshops: it upgrades cleanly, isolates n8n from the host, and keeps your workflows in a mounted volume that survives container rebuilds.
Step 1 — Update the server
sudo apt-get update && sudo apt-get upgrade -y Step 2 — Install Docker
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
docker --version Step 3 — Pull and run n8n
docker pull n8nio/n8n
docker run -d --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n The -v ~/.n8n:/home/node/.n8n volume mount is the important part — that is where your workflows and credentials live. Without it, rebuilding the container wipes everything.
Visit http://your-server-ip:5678 and create your owner account.
Step 4 — Fix permissions (if the container will not start)
The single most common failure. If docker logs n8n shows permission errors:
sudo chown -R 1000:1000 ~/.n8n
sudo chmod -R 755 ~/.n8n
docker start n8n Step 5 — Secure your instance
An n8n instance on a public IP with no auth is an open door to your connected accounts. Stop the container and relaunch it with authentication and your domain configured:
docker stop n8n && docker rm n8n
docker run -d --name n8n \
-p 5678:5678 \
-e N8N_BASIC_AUTH_ACTIVE=true \
-e N8N_BASIC_AUTH_USER=your_username \
-e N8N_BASIC_AUTH_PASSWORD=your_strong_password \
-e N8N_HOST=n8n.yourdomain.com \
-e N8N_PORT=5678 \
-e WEBHOOK_URL=https://n8n.yourdomain.com/ \
-e GENERIC_TIMEZONE=Asia/Singapore \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n Set GENERIC_TIMEZONE to Asia/Singapore if you are scheduling workflows for Singapore business hours — leaving it on UTC is why so many "my cron fired at the wrong time" questions get posted.
Step 6 — Add HTTPS with a free Let's Encrypt certificate
Point your subdomain's DNS A record at your VPS IP first, then:
sudo apt update && sudo apt install nginx certbot python3-certbot-nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
sudo nano /etc/nginx/sites-available/n8n Paste this reverse-proxy configuration:
server {
server_name n8n.yourdomain.com;
location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
listen 80;
} Enable the site and issue the certificate:
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo systemctl restart nginx
sudo certbot --nginx -d n8n.yourdomain.com Your instance is now live at https://n8n.yourdomain.com.
Auto-renew the certificate
Let's Encrypt certificates expire every 90 days. Automate the renewal:
sudo crontab -e Add this line:
0 2 * * * certbot renew --quiet --post-hook "systemctl restart nginx" Common problems and fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| Container exits immediately | Volume permissions | sudo chown -R 1000:1000 ~/.n8n |
| Webhooks never fire | No HTTPS, or WEBHOOK_URL not set | Complete Step 6 and set WEBHOOK_URL |
| Workflows vanish after restart | Missing volume mount | Always run with -v ~/.n8n:/home/node/.n8n |
| Scheduled runs at odd hours | Timezone left as UTC | Set GENERIC_TIMEZONE=Asia/Singapore |
| Sluggish with AI nodes | 1 GB RAM plan | Upgrade to 2 GB (KVM 2) or higher |
You have n8n running. Now what?
Installing n8n is the easy part — the value is in what you build with it. The teams getting real returns are the ones building agentic workflows: automations that call an LLM, make decisions, use tools, and handle exceptions without a human in the loop.
That is exactly what we teach, hands-on, in Singapore:
- WSQ - Agentic AI Automation with n8n — our flagship n8n course, WSQ-funded up to 70% for eligible Singaporeans and PRs, and claimable with SkillsFuture Credit
- Agentic AI with n8n — build AI agents that reason and act across your tools
- Build a RAG Chatbot with n8n — connect your own documents to a chatbot that answers from them
- WSQ - Automate Video and Voice AI Agents with n8n — voice and video agents, also WSQ-funded
Browse every WSQ agentic AI course to check funding and upcoming dates.
Frequently asked questions
How much does it cost to self-host n8n?
Just the VPS. A 2 vCPU / 2 GB plan is a few dollars a month and runs unlimited workflow executions — which is why self-hosting pays for itself quickly compared with per-task pricing. You can start with 20% off a Hostinger VPS here.
Is self-hosted n8n free?
n8n's Community Edition is source-available and free to self-host for internal business use. Some enterprise features (SSO, advanced permissions) require a paid licence. For most teams the community edition is more than enough.
Do I need to know Linux?
For Method 1 (the one-click template), no — it is all point-and-click in hPanel. For Method 2 you only need to paste the commands above. Nothing here requires prior Linux experience.
Can I move my workflows from n8n Cloud to my own server?
Yes. Export your workflows as JSON from the cloud instance and import them into the self-hosted one. You will need to re-enter credentials, since those are deliberately not included in exports.
Will my automations keep running if I close my browser?
Yes — with the Docker method the container runs as a background service and survives reboots. (If you used the npm install method with screen, that is far less reliable for production; use Docker.)
Which n8n course should I start with in Singapore?
If you are new to n8n, start with WSQ - Agentic AI Automation with n8n — it covers the fundamentals and moves into agentic workflows, and it is WSQ-funded so most learners pay a fraction of the listed fee.
Next steps
- Spin up a Hostinger VPS at 20% off (2 GB plan recommended)
- Follow Method 1 or Method 2 above — you will be running in about 15 minutes
- Secure it with basic auth and HTTPS (Steps 5 and 6)
- Join our next WSQ n8n class and build agentic automations you can put straight into production
Disclosure: the Hostinger links in this article are referral links — using them costs you nothing extra and gets you 20% off, while supporting our free tutorials. Commands and steps were correct at time of writing; check Hostinger's and n8n's official documentation for the latest.