Implementation / Practical guide
Self-hosting ERPNext: costs, security, and backups
Budget for the server, backups, updates, and an owner for recovery. Restore a full backup into a test site before going live.
Published by ERP Nepal · · Editorial approach
On this page
Cost the work, not just the server
Monthly cost = server + backup storage + monitoring + admin time + support. Frappe recommends Docker for new production setups.
References: Frappe Framework: Setup ProductionNepal Compliance: Docker installation guide
Limit access
Use individual accounts, restrict payroll and admin roles, and keep credentials out of repositories and tickets.
- HTTPS on.
- Two-factor login for staff (it does not cover API logins).
- Accounts removed when staff leave.
References: ERPNext: Setup Two Factor AuthenticationERPNext: Role and Role Profile
Back up everything, then restore it
Run bench --site your-site.example backup --with-files and keep the encryption key safe and off the server. Then restore into an isolated test site.
- Open a recent invoice and attachment.
- Check payroll permissions.
- Record how long the restore took.
References: Frappe Framework: bench backupFrappe Framework: site configuration and encryption keysFrappe Framework: bench restoreFrappe Framework: public files, private files, and backups
Questions and answers
Is a server snapshot enough?
No. Prove you can restore the database, files, and keys.
How often should we test a restore?
On a schedule, and after any hosting or app change.
Sources and further reading
Checked 28 September 2026.
- Frappe Framework: Setup Production
- Nepal Compliance: Docker installation guide
- ERPNext: Setup Two Factor Authentication
- ERPNext: Role and Role Profile
- Frappe Framework: bench backup
- Frappe Framework: site configuration and encryption keys
- Frappe Framework: bench restore
- Frappe Framework: public files, private files, and backups