Deployment guide

How to host ERPNext on a VPS

Deploy on a VPS Cloud →

Self-hosting9 min read

How to host ERPNext on a VPS

ERPNext is a complete open-source ERP: accounting, sales, purchasing, inventory, manufacturing and HR in a single application. Self-hosted on your VPS, it gives you an integrated management system with no per-user subscription and without your financial data leaving your infrastructure. Here is how to deploy it with the official Frappe Docker stack, a reverse proxy and a TLS certificate.

Why self-host ERPNext on a VPS

An ERP centralises the company's most sensitive data: accounting entries, margins, customer and supplier records, payroll. SaaS offers often bill per user per month, which becomes costly as teams grow. On a dedicated VPS, you pay for the server once, you add as many users as needed, and the database stays under your control, backed up according to your own rules.

The concrete benefits of a self-hosted ERPNext

  • No per-user cost: add your teams without increasing the bill.
  • Sovereignty over accounting and HR data, which stays on your server.
  • All modules available (accounting, inventory, CRM, manufacturing, payroll) with no paid tier.
  • Free customisation through the Frappe framework and complementary apps.
  • Controlled backups and retention, tailored to your legal obligations.
  • Scalability: increase RAM/vCPU as the transaction volume grows.

Hardware and software requirements

ERPNext is more demanding than average. Plan for at least 2 vCPU and 4 GB of RAM for test use, and 4 vCPU / 8 GB of RAM for production with several concurrent users. Allow 20 GB of disk for the MariaDB database, Redis and files. On the software side: Docker and Docker Compose, a domain name (e.g. erp.your-domain.com) pointing to the VPS IP, and port 443 open.

Deploy ERPNext with Frappe Docker and HTTPS

01

Prepare the VPS and Docker

Over SSH, update the system and install Docker via curl -fsSL https://get.docker.com | sh. Check docker compose version.

02

Get frappe_docker

Clone the official repository: git clone https://github.com/frappe/frappe_docker && cd frappe_docker. It provides the reference compose files for a complete stack (backend, MariaDB, Redis, workers).

03

Configure the environment

Copy example.env to .env, set the site name, the administrator password and the database parameters. Adjust the exposed internal port to place it behind your proxy.

04

Launch the stack

Start with docker compose up -d, then create the site with the documented bench new-site command. Follow the logs to confirm that all services (db, redis, workers, scheduler) are healthy.

05

Configure the reverse proxy

Place Caddy or Nginx in front of ERPNext: erp.your-domain.com { reverse_proxy localhost:8080 }. Caddy handles the Let's Encrypt certificate automatically.

06

Secure and back up

Restrict the internal ports to loopback, enable regular database backups (bench backup) and store them off the VPS for disaster recovery.

ERPNext evolves through major versions with schema migrations: before each update, make a full bench backup and test the version upgrade on a copy before applying it in production.

The official documentation

For advanced configuration and tool-specific options, refer to the official ERPNext documentation. This guide covers going live on a VPS; the vendor documentation remains the reference for fine-tuning, major updates and specific use cases.

Deploy your instance on a ServOrbit Cloud VPS

A ServOrbit Cloud VPS with preconfigured Docker and scalable resources lets you install this tool without friction, and adjust RAM and vCPU as usage grows.

Need help?

Browse our help center and FAQ, or write to our team — support in French, English and Arabic.