Documentation Index
Fetch the complete documentation index at: https://mintlify.com/frappe/frappe/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Frappe uses JSON configuration files to manage site-specific and global settings. Understanding these configuration options is essential for customizing your deployment.Configuration files
site_config.json
Stored in each site directory (sites/mysite/site_config.json), this file contains site-specific settings:
common_site_config.json
Stored in the sites directory (sites/common_site_config.json), this file contains settings shared across all sites:
Settings in
site_config.json override those in common_site_config.json.Database configuration
Database type
Specify the database backend:mariadb(default)postgressqlite
Connection settings
Configure database connection parameters:| Setting | Description | Default |
|---|---|---|
db_host | Database server hostname | 127.0.0.1 |
db_port | Database server port | 3306 (MariaDB), 5432 (PostgreSQL) |
db_name | Database name | Site name |
db_user | Database username | Same as db_name |
db_password | Database password | Required |
db_socket | Unix socket path (optional) | - |
Redis configuration
Frappe uses Redis for caching and job queuing:| Setting | Description | Default |
|---|---|---|
redis_cache | Redis URL for caching | redis://127.0.0.1:13311 |
redis_queue | Redis URL for job queue | redis://127.0.0.1:11311 |
Redis URL formats
Development settings
Developer mode
Enable developer mode for enhanced debugging:- Detailed error pages with stack traces
- Auto-reload on Python file changes
- Enhanced logging
- Better error messages for missing sites
Debug logging
Control logging verbosity:0: Minimal logging1: Standard logging2: Verbose logging (debug)
Security settings
Encryption key
Used for encrypting sensitive data:Backup encryption
Encrypt backups with a separate key:Session settings
Configure user session behavior:Application settings
Installed apps
List of installed applications:Host name
Set the site’s hostname:Site name
Display name for the site:Email configuration
Outgoing email
Configure SMTP for sending emails:Incoming email
Configure email pulling:Background worker configuration
Customize background worker behavior:| Queue | Purpose | Default timeout |
|---|---|---|
short | Quick background jobs | 300s |
default | Standard background jobs | 300s |
long | Long-running operations | 1500s |
Scheduler configuration
Control the scheduler tick interval:Scheduler tick interval is specified in seconds. Default is 60 seconds.
Performance settings
Auto-restart supervisor
Automatically restart processes after code updates:Enable server scripts
Allow server-side scripting:Maintenance mode
Put site in maintenance mode:- Users cannot access the site (except System Managers)
- Optional read-only access during maintenance
- Useful during migrations or upgrades
PDF generation
Chromium configuration
Configure Chromium for PDF generation:Environment variable overrides
Frappe automatically reads configuration from environment variables, which take precedence over config files:| Environment Variable | Config Key | Description |
|---|---|---|
FRAPPE_DB_HOST | db_host | Database host |
FRAPPE_DB_PORT | db_port | Database port |
FRAPPE_DB_NAME | db_name | Database name |
FRAPPE_DB_USER | db_user | Database user |
FRAPPE_DB_PASSWORD | db_password | Database password |
FRAPPE_DB_SOCKET | db_socket | Database socket path |
FRAPPE_DB_TYPE | db_type | Database type |
FRAPPE_REDIS_CACHE | redis_cache | Redis cache URL |
FRAPPE_REDIS_QUEUE | redis_queue | Redis queue URL |
Custom configuration hooks
Extend configuration programmatically:Managing configuration
Update configuration via CLI
Use bench to update configuration:Programmatic updates
Update configuration from Python:Read configuration
Access configuration in your code:Configuration cache
Frappe caches configuration for performance:Next steps
Production deployment
Deploy Frappe to production environments
Bench tool
Learn more about bench commands