Overview
Thebench start command starts all the services required for Frappe development including the web server, socketio, redis queue workers, and scheduler. This is the primary command used during local development.
Syntax
Options
Disable development mode. By default,
bench start runs in development mode with auto-reload enabled.Hide process names from the bench start log output. Makes logs cleaner but harder to identify which process generated which log.
Set the number of workers for specific processes. Alias:
-cSpecify a custom Procfile location. Alias:
-pSpecify a custom process manager (e.g., honcho, foreman). Alias:
-mUsage Examples
Basic Start
Start all development processes:- web: Frappe web server
- socketio: Real-time communication server
- watch: Asset watcher for automatic rebuilds
- schedule: Background job scheduler
- worker_short: Short background jobs
- worker_long: Long background jobs
- worker_default: Default background jobs
Production Mode
Start without development features:Clean Logs
Start without process name prefixes:Custom Concurrency
Increase worker processes for better performance:Custom Procfile
Use a custom process configuration:What Processes Start
When you runbench start, the following processes are typically started (based on your Procfile):
web
The main web server (Werkzeug in dev mode):socketio
Real-time communication server:watch
Automatically rebuilds assets when files change:schedule
Runs scheduled tasks:workers
Background job processors:Common Patterns
Development Workflow
Typical development session:Background Execution
Run bench start in the background:Multiple Benches
Run multiple benches on different ports by editing the Procfile:Development Mode Features
When running in development mode (default):- Auto-reload: Python code changes trigger automatic reloads
- Asset watching: JS/CSS changes are automatically rebuilt
- Verbose logging: Detailed logs for debugging
- Debug mode: Enhanced error pages with stack traces
Stopping Bench
To stop all processes:Troubleshooting
Port Already in Use
If you see an error about ports being in use:Redis Connection Errors
Ensure Redis is running:Worker Not Processing Jobs
Check if workers are running:Asset Build Issues
If assets aren’t building, rebuild manually:Production Deployment
Set up production:Performance Optimization
Increase Workers
For better background job processing:Disable Unused Services
Edit Procfile to comment out services you don’t need:Related Commands
bench restart- Restart production processesbench setup supervisor- Set up Supervisor for productionbench serve- Start only the web serverbench watch- Watch and build assets only