ERPNext is one of the most powerful open-source ERP systems available today. Built on the Frappe Framework, it provides modules for Accounting, HR, CRM, Projects, Inventory, Sales, POS, Manufacturing, and much more. With the release of ERPNext 15, users get improved UI, faster performance, and more stable backend architecture.
In this tutorial, you’ll learn how to install ERPNext 15 on Debian 13 from scratch including all dependencies, system configuration, database tuning, production setup and install an SSL certificate.
Step 1: Update Operating System
First check the server’s current time zone with the following command:
# date
Then Set correct time zone as per your region with the following command:
# timedatectl set-timezone "America/Chicago"
This is a important step as it impacts the ERPNext usage.
Then update your Debian 13 operating system to the latest version with the following command:
# apt update && apt upgrade
This ensures all dependencies are up-to-date and prevents conflicts later.
Step 2: Install Required Dependencies
In this step we will install the required system-level packages for the system to work correctly.
# apt install -y git curl wget sudo certbot
Also, ERPNext needs several Python packages to build Python modules and run Frappe.
# apt install -y python3 python3-dev python3-setuptools python3-pip python3-venv libffi-dev libssl-dev libsasl2-dev
These libraries allow Frappe to compile PDF rendering, image processing, database drivers, and more.
Step 3: Add a new user
Now we will create a dedicated user for your ERP application. This user will be assigned admin permissions and will be used as the main Frappe Bench user:
# /sbin/adduser erpnext
To add the user to the sudo group, use the usermod command as follows:
# /sbin/usermod -aG sudo erpnext
Then log in as the new user:
# su - erpnext
Step 4: Install MariaDB
You can install the MariaDB server with the following command:
$ sudo apt install -y mariadb-server mariadb-client
Start the database server daemon, and also enable it to start automatically at the next boot with the following commands:
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb
Verify the status of the MariaDB service using systemctl status command:
$ sudo systemctl status mariadb
By default, MariaDB is not hardened. You can secure MariaDB using the mariadb-secure-installation script.
$ sudo mariadb-secure-installation
Configure it like this:
- Set root password? [Y/n] Y
- Remove anonymous users? [Y/n] Y
- Disallow root login remotely? [Y/n] Y
- Remove test database and access to it? [Y/n] Y
- Reload privilege tables now? [Y/n] Y
Step 5: Install Node.js
Run the following command to install Node.js:
$ sudo apt install nodejs npm
You can verify the installation by running the following command:
$ node --version
You should see the version number of Node.js installed on your system:
v20.19.2
Then verify the npm version with the following command:
$ npm --version
You should get the following output:
9.2.0
ERPNext uses Yarn for building frontend assets.
$ sudo npm install -g yarn
Step 6: Install Redis Server
Redis handles caching and web socket communication for real-time features.
$ sudo apt install -y redis-server
$ sudo systemctl enable --now redis-server
Step 7: Install Frappe Bench
Bench is the command-line tool used to manage ERPNext installations. Use the following commands to install the Bench CLI:
$ sudo apt remove python3-requests
$ sudo python3 -m pip config set global.break-system-packages true
$ sudo pip3 install frappe-bench
Confirm installation:
$ bench --version
You should get the following output:
5.27.0
Now initialize a new Bench directory:
$ bench init frappe-bench --frappe-branch version-15
$ cd frappe-bench
This creates a full environment with Python virtualenv and node tools.
Now change user directory permissions. This will allow execution permission to the home directory of the frappe user.
chmod -R o+rx /home/erpnext/
Create a new Frappe site with the following command:
$ bench new-site erp.yourdomain.com
You will be prompted for:
- MySQL root password
- ERPNext administrator password
Step 8: Install ERPNext and other Apps
Finally, we’re at the last stage of the installation process!
Download the payments apps . This app is required during ERPNext installation
$ bench get-app payments
Download the main ERPNext app with the following command:
$ bench get-app --branch version-15 erpnext
Download the HR & Payroll app (optional)
$ bench get-app hrms
Check if all the apps are correctly downloaded by running:
$ bench version --format table
Now install it on your site:
$ bench --site erp.yourdomain.com install-app erpnext
Install the HR & Payroll app (optional)
$ bench --site erp.yourdomain.com install-app hrms
Step 9: Test ERPNext in Development Mode (Optional)
You can launch a development server with the following command:
$ bench start
You can access ERPNext at:
http://YOUR_SERVER_IP:8000
Step 10: Setting ERPNext in Production Mode
For the production environment, we need to configure Nginx and Supervisor to keep application running in background.
You can install them with the following command:
$ sudo apt install nginx supervisor
Enable scheduler service
$ bench --site erp.yourdomain.com enable-scheduler
Disable maintenance mode
bench --site erp.yourdomain.com set-maintenance-mode off
Setup production config
$ sudo bench setup production erpnext
Restart Supervisor
$ sudo supervisorctl restart all
Step 11: Custom Domain & SSL Setup
For SSL configuration, you can run the following commands:
$ bench config dns_multitenant on
$ sudo bench setup lets-encrypt erp.yourdomain.com
Step 12: Access your ERPNext Application
Open your browser and type your domain e.g https://erp.yourdomain.com
Comments and Conclusion
Installing ERPNext 15 on Debian 13 is straightforward when following the official bench method.
This tutorial covered everything from installing dependencies and configuring MariaDB to setting up NGINX, Supervisor, and full production deployment.
ERPNext 15 provides excellent performance, modularity, and flexibility. With this setup, your business now has a powerful ERP ready to use.
For additional help or useful information, we recommend you to check the official ERPNext documentation.
If you have any questions please leave a comment below.
