Skip to content

Configuration model

Dispatch keeps almost all settings in the SQL config table, managed through the dashboard and seeded with sensible defaults on first run. Only a few bootstrap items live in appsettings.json, because they’re needed before the database is available.

  • ConnectionStrings:DispatchLog - the SQL connection string (required).
  • The first-run admin password (seeded once, then stored only as a bcrypt hash in SQL).
  • The dashboard TLS certificate path/password (optional; otherwise a self-signed cert is generated).
  • The log directory.

Everything else - ports, allow-lists, provider credentials, retry policy, retention - is in the SQL config table. Secrets there (provider API keys, SMTP passwords, TLS cert password) are encrypted at rest.

  • Connections - the SMTP listener, the HTTP API, and the dashboard (ports, allow-lists, toggles).
  • Relay provider - upstream provider credentials.
  • TLS certificate - the shared cert for SMTP STARTTLS + HTTPS API.
  • Retention & purge - how long history and spool files are kept.
  • SMTP authentication - username/password pairs for SMTP AUTH.
  • Spool - directory and worker count.

See the config key reference for every key, its default, and whether changing it needs a restart.