Skip to content

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

  1. In the Site Configuration section, click + Add Key.
  2. Enter a key and value (e.g. mail_serversmtp.example.com).
  3. 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.