bench
Bench is an open-source command-line utility for setting up, managing, and deploying Frappe and ERPNext sites on Linux servers.
Overview
Bench is a Python-based command-line interface developed by Frappe Technologies for managing Frappe Framework installations. It automates common administrative tasks such as creating new Frappe sites, installing and updating apps, managing background workers, and handling database migrations. Developers use bench to scaffold local development environments as well as production deployments on Linux servers. The project is hosted on GitHub under the frappe organization and is licensed under GPL-3.0. With over 1,700 GitHub stars, it is the standard toolchain used alongside the Frappe Framework and applications such as ERPNext. Bench handles service orchestration by integrating with supervisord and nginx, making it easier to run multiple Frappe sites on a single server.
Highlights
- Command-line interface for creating and managing Frappe sites
- App installation and update management for Frappe ecosystem apps
- Integration with supervisord for background worker management
- Nginx configuration generation for multi-site production setups
- Database migration and backup commands built in
- Supports local development and production deployment workflows
Common use cases
- Setting up a local Frappe or ERPNext development environment
- Deploying and maintaining Frappe applications on a Linux server
- Managing multiple Frappe sites on a single host
- Automating app updates and database migrations