VPS 14 min read ·
n8n Pricing in India (INR): n8n Cloud vs Self-Hosting on a VPS
n8n pricing in rupees: n8n Cloud plans vs self-hosting on a VPS in India, with RAM needs, a Docker and HTTPS setup, WhatsApp, backups and the licence rules.
n8n pricing in India starts at €24 a month (about ₹2,560) for n8n Cloud Starter with 2,500 workflow executions, and Pro costs €60 a month (about ₹6,390) for 10,000. If you self-host n8n in India instead, the Community edition is free: you pay only for the server, and executions are limited only by what that server can handle. In return, setup, updates and backups become your job.
n8n Cloud vs self-hosted: what you get and what you give up
n8n Cloud is hosted by n8n: you build in your browser while n8n runs the servers, applies updates and stores your data in Frankfurt. Plans are priced by monthly executions: one execution is one full workflow run, however many steps it has.
Self-hosted means you install n8n on your own server. The free Community edition has "almost the complete feature set", according to n8n's documentation. n8n's Docker Compose guide recommends self-hosting for expert users, warning that mistakes can lead to data loss, security issues and downtime.
| n8n Cloud | Self-hosted Community edition | |
|---|---|---|
| Cost | From €24 a month (about ₹2,560) | Free licence; you pay for the server |
| Executions | 2,500 to 50,000 a month, depending on plan | No n8n limit; your server's CPU and RAM are the limit |
| Longest single run | 5 minutes on Starter, 40 on Pro | You set it |
| Updates and backups | Handled by n8n | Your job |
| Where data lives | Frankfurt, Germany | Wherever your server is, for example Mumbai |
| Team sharing | Shared projects (1 on Starter, 3 on Pro) | None: only the owner and a workflow's creator can open it |
The Community edition also leaves out SSO, environments, Git version control and external secrets. Registering your instance with an email address (still free) adds folders and debugging in the editor.
n8n pricing in India: Cloud plans vs a VPS in rupees
These are the plans on n8n's pricing page as of October 2026; Pro's price depends on its execution tier. Paying yearly costs the same as 10 months.
| Plan | Paid monthly | Paid yearly | Executions a month | Runs at once |
|---|---|---|---|---|
| Starter (Cloud) | €24 (about ₹2,560) | €240 (about ₹25,570) | 2,500 | 5 |
| Pro 10k (Cloud) | €60 (about ₹6,390) | €600 (about ₹63,920) | 10,000 | 20 |
| Pro 50k (Cloud) | €145 (about ₹15,450) | €1,450 (about ₹1.54 lakh) | 50,000 | 50 |
| Business (self-hosted licence) | €800 (about ₹85,220) | €8,000 (about ₹8.52 lakh) | 40,000 | – |
| Enterprise | Price on request | Custom | 200+ | |
| Community (self-hosted) | Free | No n8n limit | Set by you | |
Business is a licence key for your own server, needed only for features like SSO and projects. You pay in euros, so your bank may add a foreign-currency markup, and tax may be added at checkout.
How quickly executions add up
- A schedule. A workflow that checks something every 5 minutes runs 288 times a day, about 8,640 times a month. That alone is more than Starter's 2,500.
- A WhatsApp bot. Meta sends incoming messages and up to three status updates per reply (sent, delivered, read) to the same webhook. If those also start your workflow, 100 customer messages a day, each answered once, can mean up to 400 runs a day: about 12,000 a month, beyond Pro 10k.
Self-hosted, none of this counts against a quota; it just uses CPU and memory.
What self-hosting costs
HostEthical Cloud VPS plans start at ₹860 a month, or about ₹774.17 a month when billed yearly. The smallest plan, VPS Starter, has 4 vCPUs, 8 GB RAM and 100 GB SSD. Germany is included in the plan price, while India (Mumbai) adds a monthly location fee, so VPS Starter in Mumbai comes to about ₹1,240 a month at the time of writing. That is roughly half of n8n Cloud Starter and a fifth of Pro, with no execution cap and the same price at renewal. Daily backups are an optional add-on.
Cheaper options exist, and our smallest plan is more server than one light n8n instance needs. On 15 October 2026, Hostinger's self-hosted n8n page listed a 1 vCPU, 4 GB VPS with n8n preinstalled at ₹599 a month on a two-year plan paid upfront (introductory, renewing at ₹999 a month). Oracle Cloud's Always Free tier costs nothing, but capacity is limited and Oracle may reclaim instances that sit idle for 7 days. HostEthical suits you if you want rupee billing and room for AI agents, many client workflows or other apps on one server. Our guide to cheap VPS hosting in India covers what to compare.
What a VPS for n8n needs (CPU, RAM, disk), and why shared hosting won't do
n8n doesn't publish one minimum. Its memory guide says usage depends on how much data each run handles, heavy nodes like the Code node, and how many workflows run at once. n8n's Hetzner guide says that provider's entry-level server is enough for most usage levels, and n8n asks for at least 4 GB RAM and 2 vCPUs if you add the code sandbox behind n8n Assistant.
A rough guide (our suggestion, not an n8n rule):
| What you run | Suggested server |
|---|---|
| Learning n8n, a few personal workflows | 1–2 vCPU, 2 GB RAM |
| A small business in production (forms, CRM sync, WhatsApp replies) with PostgreSQL | 2 vCPU, 4 GB RAM |
| AI agents, n8n Assistant, many client workflows, or n8n plus other apps | 4 vCPU, 8 GB RAM or more |
Disk is rarely the problem: by default, self-hosted n8n deletes execution data after 14 days or 10,000 stored runs, whichever comes first.
Why not shared hosting?
n8n is a long-running Node.js application that n8n recommends running in Docker, and its docs mark npm-based installs as deprecated from n8n 3.0. Shared hosting gives you neither root access nor Docker. HostEthical's shared hosting runs Node.js 20, which is end-of-life upstream, and its memory caps don't suit n8n. Run n8n on a VPS and keep your website on web hosting if you like (see VPS vs shared hosting).
Why a Mumbai server helps Indian webhooks and WhatsApp APIs
Location matters in four cases.
- Building workflows. The editor talks to the server on every click, so a Mumbai server feels quicker from India (our Mumbai VPS guide explains why).
- Indian services. Payment gateway webhooks and APIs hosted in India have a much shorter path to Mumbai than to Frankfurt.
- Data in India. Your workflows, saved credentials and execution logs stay on an Indian server, which some clients ask for. Services you call still keep their own copies.
- A fixed IP. Each VPS has a dedicated IPv4 address for APIs that whitelist IPs, as Indian brokers now require for API trading.
Mumbai won't speed up every step: Meta's servers call your webhook, and your AI model may be hosted abroad. For background jobs calling global APIs, choose Germany and save the fee.
Step by step: install n8n with Docker Compose and PostgreSQL
This setup follows n8n's Docker Compose guides with three containers: PostgreSQL, n8n and Caddy for HTTPS. n8n's default SQLite database suits testing, but n8n recommends PostgreSQL for workflows running around the clock.
Start with a VPS running Ubuntu 24.04 LTS (see the best Linux OS for a VPS) and a sudo user with SSH keys, set up as in our VPS setup guide.
1. Install Docker
Install Docker Engine and the Compose plugin from Docker's apt repository, following Docker's Ubuntu guide. Then check:
docker --version
docker compose version
To run the commands below without sudo, add your user to the docker group, then log out and back in (Docker's post-install guide notes that this group gives root-level access):
sudo usermod -aG docker $USER
2. Create the project folder and secrets
mkdir -p ~/n8n && cd ~/n8n
openssl rand -hex 32 # copy this for N8N_ENCRYPTION_KEY
nano .env
Put this in .env with your own subdomain and a long random password, then run chmod 600 .env:
N8N_VERSION=2.43.6
N8N_HOST=n8n.example.in
POSTGRES_USER=n8n
POSTGRES_PASSWORD=replace-with-a-long-random-password
POSTGRES_DB=n8n
N8N_ENCRYPTION_KEY=paste-the-openssl-output-here
2.43.6 was n8n's stable release on 15 October 2026; new versions arrive most weeks. The encryption key protects every stored credential, so keep a copy in your password manager: without it, a restored database is useless.
3. Create compose.yaml
services:
postgres:
image: postgres:18
restart: always
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
PGDATA: /var/lib/postgresql/data
volumes:
- db_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 10
n8n:
image: docker.n8n.io/n8nio/n8n:${N8N_VERSION}
restart: always
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_PORT: "5432"
DB_POSTGRESDB_DATABASE: ${POSTGRES_DB}
DB_POSTGRESDB_USER: ${POSTGRES_USER}
DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD}
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
N8N_HOST: ${N8N_HOST}
N8N_PROTOCOL: https
N8N_WEBHOOK_URL: https://${N8N_HOST}/
N8N_PROXY_HOPS: "1"
GENERIC_TIMEZONE: Asia/Kolkata
TZ: Asia/Kolkata
NODE_ENV: production
volumes:
- n8n_data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
caddy:
image: caddy:2
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
depends_on:
- n8n
volumes:
db_data:
n8n_data:
caddy_data:
caddy_config:
Three details matter most:
- Only Caddy publishes ports. n8n (5678) and PostgreSQL (5432) stay on Docker's private network, because Docker's documentation warns that published container ports bypass ufw rules.
- The timezone. Without
GENERIC_TIMEZONE, n8n uses New York time and a "9 am" schedule fires at night in India. - Webhook URL and proxy hops. Behind a reverse proxy, n8n needs
N8N_WEBHOOK_URLandN8N_PROXY_HOPS=1so the webhook URLs it hands to WhatsApp and other services are your public HTTPS address.
Put n8n on your own subdomain with free HTTPS
1. Point a subdomain at the server
Add an A record named n8n pointing to your VPS's IPv4 address (see DNS records explained). No domain yet? Search for one. Check it with dig +short n8n.example.in.
2. Open ports 80 and 443
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw enable
If SSH runs on a different port, allow that port before enabling the firewall.
3. Create the Caddyfile
Create Caddyfile in the same folder, based on n8n's Caddy example:
n8n.example.in {
reverse_proxy n8n:5678 {
flush_interval -1
}
}
4. Start everything
docker compose up -d
docker compose ps
docker compose logs -f caddy
Once DNS points at the server and ports 80 and 443 are open, Caddy gets a free certificate automatically from Let's Encrypt (or ZeroSSL) and renews it. Open https://n8n.example.in and create the owner account. Already running Nginx? Publish n8n on 127.0.0.1:5678 only and proxy to it with a Certbot certificate and WebSocket upgrade headers.
Connect the WhatsApp Cloud API and build your first workflow
n8n's WhatsApp credential docs list what you need: a Meta developer account, a Meta business portfolio, and a Meta app with WhatsApp added, privacy policy and terms URLs set, and its mode switched to Live. n8n then uses two credentials:
- Sending (WhatsApp Business Cloud node): an access token and your WhatsApp Business Account ID, from WhatsApp → API Setup in Meta's app dashboard.
- Receiving (WhatsApp Trigger node): an OAuth2 credential made from your Meta app's ID and secret.
Meta's webhook docs require HTTPS with a valid certificate and don't support self-signed ones, which is why the Caddy step matters. Meta's WhatsApp webhook guide says failed deliveries are retried for up to 7 days, and those retries can deliver the same event twice.
A simple first workflow that answers leads:
- WhatsApp Trigger, Messages event.
- If node: continue only when the item holds a message, not a status update.
- Google Sheets or your CRM: save the sender's number and message.
- WhatsApp Business Cloud, Send message: reply to the customer.
WhatsApp allows one webhook per app, so n8n's test and production URLs overwrite each other: unpublish the workflow while you test.
Meta's own charges are separate. Since 1 July 2025, Meta charges per template message, by template category and recipient country. Ordinary replies within 24 hours of a customer's message are free, as are utility templates in that window. Since 1 January 2026, Meta bills directly integrated businesses whose Sold-To country is India in rupees; their WhatsApp Business Accounts must move to INR billing by 31 December 2026, or Meta stops delivering their messages from 1 January 2027. Swap the trigger for a Webhook node and the same pattern sends new-order alerts from an SMM panel or website form into WhatsApp or your CRM.
Backups, updates and security for a self-hosted n8n
n8n's backup guide says a complete backup has two parts: the .n8n folder (here the n8n_data volume), which holds the encryption key and any files n8n stores on disk, and the PostgreSQL database. Here the key is also in .env, so keep a copy of that file too:
mkdir -p ~/n8n-backups
cd ~/n8n
docker compose exec -T postgres pg_dump -U n8n n8n | gzip > ~/n8n-backups/n8n-$(date +%F).sql.gz
cp .env ~/n8n-backups/env-backup
docker run --rm -v n8n_n8n_data:/data:ro -v ~/n8n-backups:/backup alpine tar czf /backup/n8n-data-$(date +%F).tar.gz -C /data .
To dump the database every night at 2:30, add this with crontab -e (inside a crontab, % must be written as \%):
30 2 * * * cd ~/n8n && docker compose exec -T postgres pg_dump -U n8n n8n | gzip > ~/n8n-backups/n8n-$(date +\%F).sql.gz
Copy backups off the server regularly. The VPS daily backup add-on is a useful second layer, not a replacement.
Updates. n8n suggests updating at least once a month and checking the release notes for breaking changes. Back up, change N8N_VERSION in .env, then run docker compose pull and docker compose up -d. Updates can migrate the database, so rolling back means restoring that backup. Keep PostgreSQL on its current major version: n8n warns that bumping the image to a newer major fails on an existing database.
Security.
- Use SSH keys only, with password logins off.
- Keep only SSH, 80 and 443 open; never publish 5678 or 5432.
- Install security updates automatically with
sudo apt install unattended-upgrades. - Turn on two-factor authentication for every n8n user.
- Install community nodes only from sources you trust, because they run code on your server.
If looking after a server worries you, read managed vs unmanaged VPS, or choose n8n Cloud.
The licence: what the Sustainable Use License allows
Self-hosted n8n comes under the Sustainable Use License, which n8n calls "fair-code" rather than open source. n8n's licence page lists three limits: use or modify n8n only for internal business, non-commercial or personal purposes; distribute it only free of charge for non-commercial purposes; and keep its licensing notices. The licence FAQ (October 2026) gives examples.
Allowed:
- Running your own business on n8n
- Building automations for clients on your instance, as long as clients can't create or edit them
- Charging for workflow building, setup, maintenance, training and consultancy
- Using n8n behind the scenes in your product, where users trigger automations you built
- Installing and maintaining n8n on a client's own server, if you don't also host it for them
Not allowed:
- Hosting n8n as a service where clients build their own workflows
- Letting end users configure workflow logic through your UI, the API, MCP or an AI agent
- White-labelling n8n, or forking it to launch your own automation product
- Using enterprise features without an enterprise licence
For agencies, the test is client access, not client count or revenue: one instance can serve many clients as long as they get results and never open the editor. This summarises n8n's guidance and isn't legal advice; if your model is close to the line, email license@n8n.io first.
Frequently asked questions
Is n8n free to self-host?
Yes. The self-hosted Community edition is free under n8n's Sustainable Use License for your own internal business, personal or non-commercial use, and n8n puts no limit on executions. You pay only for the server, and you handle setup, updates and backups yourself.
How much RAM does n8n need on a VPS?
n8n doesn't publish a single minimum, because memory use depends on how much data your workflows handle and how many run at once. As a rough guide, 2 GB is enough for learning and 4 GB suits a small business running PostgreSQL. n8n asks for at least 4 GB RAM and 2 vCPUs if you add the code sandbox that runs n8n Assistant.
Can I run n8n on shared hosting?
No. n8n is a long-running Node.js application that n8n recommends running in Docker, and shared hosting gives you neither root access nor Docker. HostEthical's shared hosting also runs Node.js 20, which is end-of-life, so run n8n on a VPS instead.
Can I build n8n workflows for clients if I self-host?
Yes. n8n's licence FAQ lets you build and run automations for clients on your own instance and charge for that work, as long as clients can't create or edit the workflows themselves. Hosting n8n so clients can build their own workflows, or white-labelling it, isn't allowed under the Community licence and needs a separate agreement with n8n.