What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
n8n is forgiving during development, but it’s unforgiving when you scale: slow disks, restrictive firewalls, missing TLS, and weak background job capacity quickly turn “automation” into outages. Picking the right VPS in 2025 is mostly about matching your n8n workload to CPU/RAM, database choices, and operational maturity.
This guide walks you through how to choose the best VPS server for n8n self-hosting, with concrete sizing ranges, provider-by-provider options, and step-by-step deployment patterns that hold up under real traffic.
As an Amazon Associate I earn from qualifying purchases.
Listed first: Antihost VPS
Antihost VPS offers Linux VPS instances with full root access, NVMe storage, and 1–16 vCPUs with 2–64 GB RAM. For n8n, install it yourself on the VPS rather than relying on a one-click n8n image, then configure Docker, PostgreSQL, and HTTPS for your workload.
Free tools Windows power users keep installed
One-click scans. No signup required.
Why VPS selection matters for n8n
n8n runs workflows that can spawn webhooks, schedule jobs, call external APIs, and move files around. Those activities stress different parts of your stack: CPU for execution, RAM for concurrent runs, storage for queued data, and network/ports for webhook reliability.
#1 Best Overall
A “good enough” VPS can work for small automations, but the wrong setup tends to fail in predictable ways: high latency webhooks, database contention, memory exhaustion from concurrent executions, and broken redirects when HTTPS isn’t configured correctly.
What to look for in a VPS (2025 checklist)
Use this checklist to filter VPS candidates quickly. You’ll still configure n8n properly, but you shouldn’t start from constraints that make the rest harder.
Core resources
- CPU: n8n is usually fine with 2–4 vCPUs for small-to-medium usage, but concurrent workflows can push CPU harder than you expect.
- RAM: Memory matters for concurrent executions and for in-memory buffering inside workflows.
- Disk: Prefer fast NVMe. Slower disks cause delays when workflows write logs, handle file operations, or your database is on the same volume.
Reliability and operations
- Backups: Ideally include automated snapshots, or run your own consistent backups.
- Uptime: Check provider SLA history and operational transparency.
- Datacenter locations: Pick a region close to your webhook clients and key API endpoints.
Networking and security defaults
- Inbound firewall control: You need to open only 80/443 (and optionally 22 for SSH).
- Static IP: Helpful for webhooks and DNS stability.
- IPv6: Nice-to-have; your reverse proxy should be ready for it.
Platform support
- Docker support: Most production n8n deployments use Docker Compose.
- Easy HTTPS: The ecosystem is best when you can run Let’s Encrypt tooling cleanly.
Recommended n8n server specs by workload
These are practical starting points for self-hosting n8n. Treat them as ranges because workflow behavior varies a lot (file size, number of nodes, API latency, polling frequency).
| Scenario | vCPU | RAM | Disk | Database guidance |
|---|---|---|---|---|
| Personal + light automation (webhooks, <50 runs/day) | 1–2 | 1–2 GB | 25–50 GB SSD/NVMe | Default SQLite for testing; switch to Postgres for reliability |
| Small team (webhooks + moderate schedules, ~50–300 runs/day) | 2–4 | 4–8 GB | 50–100 GB SSD/NVMe | PostgreSQL recommended |
| Business scale (higher concurrency, file handling, ~300–2k runs/day) | 4–8 | 8–16 GB | 100–250 GB NVMe | PostgreSQL on same VPS for smaller setups; consider managed DB later |
| High traffic + strict uptime (multi-user, heavy webhook volume) | 8+ | 16+ GB | Fast NVMe + separate backup storage | Postgres (ideally managed), plus monitoring and tested restore procedures |
Rule of thumb: if you expect concurrent executions to rise (not just total daily runs), bias toward more RAM and a fast disk. CPU-heavy workflows (image processing, heavy data transforms) also need more headroom than typical API-call workflows.
Best VPS providers for n8n self-hosting (2025)
“Best” depends on your priorities: cost per performance, region availability, operational experience, and how painful networking can be. Below are providers that commonly work well with n8n deployments.
DigitalOcean
DigitalOcean is popular for simple VPS provisioning, predictable performance, and straightforward networking. It’s a solid choice when you want a clean experience with minimal operational friction.
Rank #2
- Start with a 2 vCPU / 4 GB RAM droplet for small team use; move to 4 vCPU / 8 GB if you see memory pressure.
- Use a region close to your webhook clients to reduce latency.
- Deploy n8n via Docker Compose and keep PostgreSQL either on the same host (small scale) or a separate managed instance.
Hetzner
Hetzner is known for strong value pricing and capable hardware. It’s often a top pick when you want high performance per dollar and you don’t mind a slightly more DIY operational approach.
- Choose NVMe-backed storage if available in your plan.
- Place the VPS in the datacenter region that matches your users and API endpoints.
- For production, pair it with a Postgres setup and set up automated backups from day one.
Vultr
Vultr offers a range of VPS options and regions, which helps when you need proximity and flexibility. It’s frequently used for self-hosted applications that need a reliable public-facing endpoint.
- Pick a plan with enough RAM for your expected concurrency (4–8 GB is a common starting range).
- Use a static IP if your DNS and webhook setup requires stable addresses.
- Use Nginx or Caddy for TLS and keep inbound rules limited to 80/443 and SSH.
Linode (managed VM experience)
Linode (now branded under broader brand ecosystems) has historically been a strong option for developers who want good performance and a familiar workflow. It tends to be a smooth platform for Docker-based deployments.
- Start with a 2 vCPU / 4 GB instance for moderate n8n usage.
- Prefer NVMe where possible and keep the system updated.
- Run n8n behind HTTPS with a reverse proxy and enable log shipping to your monitoring stack.
AWS Lightsail
AWS Lightsail can be convenient if you’re already in AWS. It’s usually easier to start than full EC2, but your cost and architecture flexibility may differ from pure VPS providers.
- Use Lightsail with enough RAM to avoid swapping; 4 GB is a common practical baseline.
- If you need extra reliability, consider pairing with AWS managed services for the database and backups.
- Set up a strict security group: allow 80/443 and SSH from your IP only.
Google Cloud Compute (small instances)
Google Cloud is a good option if you want extensive control and integration. It’s especially useful if you plan to grow your stack beyond n8n.
- Use a small compute instance with SSD storage and a region close to users.
- For production, run PostgreSQL on a managed service or a separate VM to reduce coupling.
- Use managed DNS and HTTPS automation to keep webhook endpoints stable.
Azure Virtual Machines (small instances)
Azure is a strong choice if your environment already runs on Microsoft tooling. You get broad networking and identity options, which can help for enterprise setups.
Rank #3
- HP MicroServer Gen10 Plus Tower Server for Business with Microsoft Windows Server 2019 OS!
- Intel Xeon E-2224 Quad-Core 3.4GHz 8MB CPU, Up To 4.6GHz Turbo
- 32GB (2 x 16GB) DDR4 PC4-21300 2666MHz Unbuffered Memory
- 16TB (4 x 4TB) 7.2K 6Gb/s SATA 3.5" HDDs in RAID
- Hard drives and memory upgrades included separately NOT installed, installation required.
- Pick a VM size with at least 4 GB RAM for most non-trivial n8n use.
- Use Azure networking controls to restrict inbound traffic to required ports.
- Consider managed Postgres if you want separation of concerns and easier backups.
Choosing storage and database strategy
Most production-grade n8n setups should use PostgreSQL. SQLite can work for small, low-risk deployments, but it’s not the best fit for reliability and operational recovery as you scale.
PostgreSQL on the same VPS vs managed DB
- Same VPS: Faster to set up and simpler for small teams. Failure modes are more coupled, so backups become extra important.
- Managed DB: Better isolation, backups, and maintenance. You’ll pay more, but recovery is usually smoother.
What to pick in practice
- If you’re starting: run n8n in Docker with PostgreSQL and backups that you can restore.
- If you’re migrating from SQLite: schedule a cutover window and test restore to ensure your workflow history remains intact.
- If you store large files: keep an eye on disk throughput and storage growth. Consider object storage for files if your workflows handle heavy payloads.
Network and ports: make workflows reliable
n8n typically needs inbound access to receive webhooks and allow the UI. Network issues often show up as timeouts or intermittent webhook failures.
Minimum ports
- 80 and 443 for HTTP/HTTPS (public).
- 22 only for SSH (ideally limited to your IP).
- Optional: expose n8n directly only if you must; otherwise keep it internal and use a reverse proxy.
Webhook reliability checklist
- Confirm your DNS record points to the VPS public IP before enabling production webhooks.
- Use HTTPS end-to-end to avoid redirect loops in third-party services.
- Ensure your reverse proxy forwards required headers (Host, X-Forwarded-Proto).
Security hardening (do this before your first workflow)
Self-hosting shifts responsibility to you. The wins here are mostly about reducing exposure and making incidents recoverable.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Baseline OS and access controls
- Use Ubuntu 22.04 LTS or Ubuntu 24.04 LTS.
- Disable password SSH login and use SSH keys only.
- Enable uncomplicated firewall rules (allow 80/443; restrict 22).
- Keep the system updated with security patches.
n8n-level hardening
- Configure n8n to use a strong authentication method suitable for your environment.
- Set a webhook URL that matches your public HTTPS endpoint.
- Limit who can edit and run workflows, especially if you use credentials that can reach production systems.
Secrets and credentials
- Store secrets in environment variables or Docker secrets, not in Git.
- Use least-privilege credentials for external APIs.
- Rotate credentials if you suspect exposure.
Production deployment options
For most people, Docker Compose is the most maintainable path. It keeps upgrades and rollbacks consistent, and it makes it easier to separate app and database containers.
Docker on Ubuntu 22.04/24.04
Assuming you’ll use Docker Compose for n8n and PostgreSQL. Versions matter: aim for Docker Engine 26.x or newer if your distro repo supports it.
- Install Docker and Docker Compose plugin on Ubuntu.
- Create a project folder, e.g.
/opt/n8n. - Use a Compose file that includes at least: n8n container, PostgreSQL container, and a persistent volume for database data.
- Set n8n environment variables for database connection, timezone, and the external URL that matches your HTTPS domain.
- Start the stack with
docker compose up -d. - Verify the health: check container logs and confirm the UI loads through your reverse proxy.
Native installation (not recommended for most)
Native can work, but it increases drift when you upgrade. If you’re comfortable with Node.js version management and system-level dependencies, you can run n8n directly. In practice, Docker remains the safer default for repeatable operations.
Rank #4
Reverse proxy setup with HTTPS
You usually want n8n behind a reverse proxy so you can terminate TLS at the edge, simplify firewall rules, and keep internal services private.
Recommended Free Tools
Nginx with Let’s Encrypt
Nginx is the classic choice. Pair it with Certbot or an ACME client that fits your workflow.
- Install Nginx and configure a site for your domain, e.g.
n8n.example.com. - Proxy to the internal n8n port (commonly 5678 inside the Docker network).
- Enable HTTPS using Let’s Encrypt certificates.
- Ensure headers are forwarded:
Host,X-Forwarded-Proto, andX-Forwarded-For. - Restart Nginx and test with an external browser plus a curl request to confirm no redirect loops.
Caddy with automatic TLS
Caddy makes HTTPS simpler because it automatically provisions certificates for your domain. It can be a great fit when you want fewer moving parts.
- Install Caddy on the VPS.
- Write a Caddyfile that routes your
n8n.example.comtraffic to the n8n container. - Confirm that WebSocket support is working if your setup uses it.
- Reload Caddy and verify certificate issuance.
Autoscaling and high availability: when you need it
Most n8n deployments don’t need true autoscaling at first. But if you’re hitting consistent concurrency limits or strict uptime requirements, you should plan for how you’ll scale executions safely.
Scale up first
- Increase RAM and CPU before adding multiple n8n instances.
- Move to PostgreSQL if you haven’t already.
Scale out carefully
- If you run multiple n8n instances, make sure the database and queue behavior are configured correctly.
- Use a shared reverse proxy layer and confirm webhook idempotency where relevant.
Monitoring, logs, and backups
You need operational visibility. n8n workflows are business-critical automation, so you must be able to trace failures and recover quickly.
Monitoring targets
- System metrics: CPU, RAM, disk IO, and network throughput.
- Container health: restart counts, log errors, and latency.
- Application signals: webhook failures and queue backlog.
Backup strategy
- Back up PostgreSQL with a schedule you can actually restore.
- Back up n8n configuration and credentials strategy (at least export workflows, plus any custom settings).
- Test restores regularly. A backup you can’t restore is just storage.
Costing examples (realistic monthly ranges)
Costs vary by region and provider. The numbers below are meant to help you budget, not to quote exact pricing.
Best Value
| Tier | Suggested VPS | Typical add-ons | Common monthly range |
|---|---|---|---|
| Starter | 2 vCPU / 4 GB RAM | Reverse proxy + automated TLS | $10–$30 |
| Team-ready | 4 vCPU / 8 GB RAM | PostgreSQL + backups + monitoring | $30–$80 |
| Scaling | 8 vCPU / 16 GB RAM | Managed Postgres (optional) + stronger logging/monitoring | $80–$250+ |
If you add a managed database, that can become the dominant cost. If you keep database on the same VPS, your risk is higher but your spend is lower—so choose based on your recovery requirements.
Common problems and troubleshooting
These are the failures you’ll actually see when self-hosting n8n. Start with the quickest checks, then go deeper.
Webhooks time out
- Check DNS: confirm the domain points to the correct public IP.
- Check firewall: ensure 443 is open to the internet.
- Check reverse proxy logs: Nginx/Caddy errors often show misconfigured upstream or missing headers.
- Check n8n URL settings: mismatched external URL can cause redirect loops.
n8n UI loads, but workflows fail
- Inspect workflow execution logs: look for specific node errors (auth failures, rate limits, missing env vars).
- Validate credentials: ensure tokens are present in the environment and aren’t expired.
- Check outbound connectivity: some VPS providers restrict egress or require additional allowances.
Out of memory (OOM) kills
- Reduce concurrency: lower simultaneous workflow executions if possible.
- Increase RAM: if you consistently hit memory limits.
- Check memory-heavy nodes: file parsing, large JSON transforms, and buffering steps.
Database connection errors
- Verify network between containers: Docker networks can be miswired.
- Confirm database credentials: user, password, and database name.
- Check Postgres disk space: full disks often masquerade as auth/connection issues.
Slow executions and growing queue
- Look for bottlenecks: CPU saturation, disk IO, or external API latency.
- Scale up: increase vCPU/RAM before scaling out.
- Revisit workflow design: batch where possible, reduce unnecessary polling, and cache API calls.
FAQs
What’s the best VPS size for n8n to start?
If you’re building a small setup with webhooks and light scheduled workflows, start with 2 vCPU and 4 GB RAM on a fast SSD/NVMe-backed VPS. If multiple users run concurrent workflows, go to 4 vCPU and 8 GB.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Do I need PostgreSQL for n8n?
Not strictly at first—SQLite can work for development. For production reliability, PostgreSQL is the typical choice because it’s better suited for concurrency and recovery patterns.
Should I expose n8n directly to the internet?
No. Keep n8n behind a reverse proxy (Nginx or Caddy) with HTTPS. This reduces exposure and gives you a controlled place to handle TLS and headers.
Which region should I choose?
Pick the region closest to your webhook sources and the majority of external APIs you call. Lower latency improves webhook responsiveness and reduces timeout risk.
How do I know my VPS is under-provisioned?
Watch system metrics: rising memory usage, sustained CPU near saturation, disk IO spikes, and webhook timeouts. n8n-side signals include delayed execution starts and frequent failed nodes due to timeouts.
Bottom Line
Antihost VPS offers a Linux VPS foundation for n8n self-hosting with full root access, NVMe storage, and configurable resources from 1 to 16 vCPUs and 2 to 64 GB RAM. Install n8n yourself, then use PostgreSQL-backed production with a reverse proxy, monitoring, and tested backups.
If you build your deployment as repeatable infrastructure (Docker Compose + reverse proxy + monitoring + restore tests), you’ll spend far less time fighting avoidable failures and far more time improving workflows.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




