This guide provides a full Ansible playbook to deploy ERPNext natively using Frappe Bench on Debian 10+, Ubuntu LTS, and RHEL 9+ compatible hosts without Docker.
- name: Deploy ERPNext (Native)
hosts: erpnext
become: true
vars:
bench_user: frappe
bench_root: /home/frappe
bench_name: erpnext-bench
site_name: erpnext.local
db_password: "{{ vault_erpnext_db_password | default('change-me') }}"
admin_password: "{{ vault_erpnext_admin_password | default('change-me') }}"
tasks:
- name: Install system dependencies on Debian/Ubuntu
apt:
name:
- git
- python3
- python3-dev
- python3-pip
- python3-setuptools
- python3-venv
- mariadb-server
- mariadb-client
- libmariadb-dev
- redis-server
- supervisor
- nginx
- nodejs
- npm
- libffi-dev
- libssl-dev
state: present
update_cache: true
when: ansible_os_family == "Debian"
- name: Enable and start services
service:
name: "{{ item }}"
state: started
enabled: true
loop:
- mariadb
- redis-server
when: ansible_os_family == "Debian"
- name: Create Frappe user
user:
name: "{{ bench_user }}"
shell: /bin/bash
create_home: true
- name: Install Frappe Bench
pip:
name: frappe-bench
executable: pip3
become_user: "{{ bench_user }}"
- name: Initialize Frappe Bench
command: bench init {{ bench_name }} --frappe-branch version-15
args:
chdir: "{{ bench_root }}"
become_user: "{{ bench_user }}"
- name: Create new site
command: bench new-site {{ site_name }} --mariadb-root-password {{ db_password }} --admin-password {{ admin_password }}
args:
chdir: "{{ bench_root }}/{{ bench_name }}"
become_user: "{{ bench_user }}"
- name: Get ERPNext app
command: bench get-app erpnext --branch version-15
args:
chdir: "{{ bench_root }}/{{ bench_name }}"
become_user: "{{ bench_user }}"
- name: Install ERPNext on site
command: bench install-app erpnext
args:
chdir: "{{ bench_root }}/{{ bench_name }}"
become_user: "{{ bench_user }}"
- name: Configure bench for production
command: bench setup production {{ bench_user }} --yes
args:
chdir: "{{ bench_root }}/{{ bench_name }}"
become: true
We develop tailored automation solutions for:
Let’s discuss your requirements: office@linux-server-admin.com | Contact