Appearance
Site Configuration
Set custom site_config.json values for your Frappe site right from the Create Site / Edit Site form. No SSH needed — the keys you set are applied to your site on its next deploy.
site_config.json holds the per-site settings that change how Frappe and your apps behave — things like upload limits (max_file_size), mail settings, and other feature flags. Values are read by Frappe at runtime as frappe.conf.
Simple mode — add keys one at a time
- In the Site Configuration section, click + Add Key.
- Enter a key and value (e.g.
mail_server→smtp.example.com). - Add more rows as needed, then Save.
How values are stored: plain text is saved as a string. To pass a JSON object as the value, wrap it in braces — e.g. {"port": 587}.
Numbers, booleans, and nested values
Simple mode saves scalar values as strings, so typing 1 stores "1". For keys that need a real number or boolean — like max_file_size (a number) or mute_emails (a boolean) — use Advanced mode so the value keeps the correct type.
Advanced mode — edit the full JSON
Toggle to Advanced to edit the entire config as a single JSON object. This is the best option for numbers, booleans, and nested values:
json
{ "max_file_size": 10485760, "mute_emails": true }The content must be valid JSON, or it can't be saved.
Reserved keys
Espresso manages some keys for you automatically.
Don't set these
db_name, db_user, db_password, encryption_key, host_name, and any redis_* key are managed by the platform — overriding them can break your site.
Any other key is yours to set.
Good to know
- Removing keys: any key you delete from the form is removed from the site on the next deploy.
- Keys must be unique, and every key needs a value.
- When changes take effect: edits are applied to your site on its next deploy.
- Skip
developer_mode: enabling it writes changes (like DocType edits) to the site's filesystem, which isn't preserved across deployments. Keep lasting customizations in a versioned app instead.

