A reliable Frappe installation starts with version compatibility. Before touching Bench, check the operating system and the versions of MariaDB, Python, Node.js, Redis and Yarn. For Frappe 15, the current prerequisites list MariaDB 10.6.6+, Python 3.10+, Node.js 18+, Redis 6+ and Yarn 1.12+. PDF generation also needs a compatible wkhtmltopdf build.
Prepare Ubuntu
Update the server and install the packages required by your chosen Ubuntu release, including Git, MariaDB, Redis, Python development tools and Node.js. Secure MariaDB and keep the database password available for site creation. Use the Frappe installation guide for the current package list; package names and supported Ubuntu releases can change.
Create a version 15 Bench
Install the Bench CLI, then initialize a new Bench against the version-15 branch. The init step fetches the Frappe framework and builds its environment, so there is no need to fetch the core Frappe app a second time.
bench init frappe-bench --frappe-branch version-15
cd frappe-bench
bench new-site site1.example.comThe site command asks for database credentials and an Administrator password. Use a real hostname if DNS is already configured, or a temporary site name while you prepare the domain. If you intend to add ERPNext or another app, fetch and install that app separately after the site exists.
Move to production
Bench production setup configures Nginx and Supervisor for the Bench. Run it with the Linux account that owns the Bench, then verify that the services are running and that the domain resolves to your server. Configure HTTPS before accepting real traffic.
sudo bench setup production YOUR_LINUX_USERFor long-term maintenance, plan database and file backups, updates and a staging environment. The Frappe 15 production guide also notes that Docker is the recommended deployment route for production; a manual setup is useful when you need to manage the host yourself.
Based on: Abdo Host’s original guide on Medium.

