A complete developer-friendly guide to install Frappe Framework v16 on Ubuntu 24.04 using uv, Python 3.14, Node.js 22+, MariaDB, Redis, Yarn, wkhtmltopdf, and optional PostgreSQL support.
This guide is useful for developers building ERP systems, SaaS platforms, internal admin tools, business dashboards, and full-stack applications with Frappe Framework or ERPNext.
- Frappe Framework v16 setup on Ubuntu 24.04
- Python 3.14 installation using uv
- Node.js 22+ and Yarn setup
- MariaDB setup for stable Frappe development
- PostgreSQL setup option for experimental usage
- Bench CLI installation and project initialization
- New site creation, active site switching, and local server startup
- Common troubleshooting fixes for Redis, MariaDB, Node.js, and site creation
Use the helper script to install Ubuntu packages, Node.js 22, Yarn, uv, Python 3.14, and Bench CLI:
bash install.shThen initialize your Frappe 16 bench:
UV_PYTHON=3.14 bench init frappe-bench-16 --frappe-branch version-16
cd frappe-bench-16
bench new-site platform.local
bench use platform.local
bench startOpen your Frappe site:
http://localhost:8000
- PostgreSQL support is experimental in Frappe v16.
- MariaDB is recommended for stable production deployments.
- Use a non-root Linux user when setting up and running Bench.
- Keep your Ubuntu packages, Node.js, Python, and Bench CLI versions aligned with your project requirements.
- Requirements
- Important Notes
- Architecture Overview
- Installer Script
- System Update
- Install Required Dependencies
- Install Node.js 22
- Install uv
- Install Python 3.14
- Install Bench CLI
- Initialize Frappe Bench 16
- Create a New Site
- Switch Active Site
- Start Frappe Server
- Default Login
- Common Issues
- Commands Summary
- PostgreSQL Note
- Tech Stack
- SEO Keywords
- Recommended GitHub Topics
- Ubuntu 24.04 LTS
- sudo user access
- Stable internet connection
- Basic Linux terminal knowledge
This repository documents a clean Frappe development stack for Ubuntu 24.04:
Ubuntu 24.04
-> system packages, Redis, MariaDB, wkhtmltopdf
-> Node.js 22 and Yarn for frontend assets
-> uv and Python 3.14 for Python runtime management
-> Bench CLI for Frappe project management
-> Frappe Framework v16 site
Run the included installer to prepare your machine:
bash install.shThe script installs dependencies and developer tooling only. Site creation is still kept manual because Bench asks for database and Administrator passwords.
sudo apt update && sudo apt upgrade -ysudo apt install -y git curl python3-dev python3-pip python3-venv \
redis-server mariadb-server mariadb-client \
pkg-config libffi-dev libssl-dev build-essential \
xvfb libfontconfig wkhtmltopdfFrappe requires Node.js for frontend asset building.
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
sudo npm install -g yarnCheck versions:
node -v
npm -v
yarn -vuv is a modern Python package and version manager.
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrcCheck uv:
uv --versionuv python install 3.14
uv python listpip install frappe-benchCheck Bench:
bench --versionUV_PYTHON=3.14 bench init frappe-bench-16 --frappe-branch version-16
cd frappe-bench-16MariaDB is the recommended database for stable Frappe development and production use.
bench new-site platform.localDuring site creation, Bench may ask:
Enter mysql super user [root]:
Press Enter to use the default root user.
Then enter your MariaDB root password:
MySQL root password:
Finally, set your Frappe Administrator password:
Set Administrator password:
PostgreSQL support exists in Frappe v16, but it is still evolving. Use MariaDB for production unless your project specifically requires PostgreSQL testing.
bench new-site platform.local --db-type postgresbench use platform.localThis sets platform.local as the default site for Bench commands.
bench startOpen the app in your browser:
http://localhost:8000
- Username:
Administrator - Password: the Administrator password you set during site creation
Run MariaDB secure installation:
sudo mysql_secure_installationIf needed, reset the root authentication method:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;sudo systemctl start redis-server
sudo systemctl enable redis-servernode -vNode.js should be version 22 or higher.
If a failed site exists, remove it and retry:
bench drop-site platform.local --force
bench new-site platform.localsudo apt update && sudo apt upgrade -y
bash install.sh
UV_PYTHON=3.14 bench init frappe-bench-16 --frappe-branch version-16
cd frappe-bench-16
bench new-site platform.local
bench use platform.local
bench start- PostgreSQL support in Frappe v16 is experimental.
- Some Frappe or ERPNext features may not behave the same as MariaDB.
- MariaDB remains the safer database choice for production deployments.
- Frappe Framework v16
- Ubuntu 24.04 LTS
- Python 3.14 via uv
- Node.js 22+
- Yarn
- MariaDB
- PostgreSQL experimental
- Redis
- Bench CLI
- wkhtmltopdf
Frappe 16 installation Ubuntu 24.04, ERPNext v16 setup guide, Frappe Framework install, Python 3.14 uv setup, Node.js 22 Frappe, MariaDB Frappe setup, PostgreSQL Frappe experimental, Bench CLI tutorial, full-stack ERP system, Linux server Frappe install, Ubuntu Frappe development environment, Frappe production setup.
Add these topics in the GitHub repository settings:
frappe
frappe-16
frappe-framework
erpnext
ubuntu-24
ubuntu-installation
python-3-14
uv-python
nodejs-22
mariadb
postgresql
bench-cli
backend
fullstack
devops
linux-server
Muhammad Faheem Iqbal
GitHub: @faheem506pk
Frontend Developer | React | Next.js | Frappe Enthusiast
If this guide helped you:
- Star the repository
- Share it with Frappe and ERPNext developers
- Contribute improvements through issues or pull requests