> For the complete documentation index, see [llms.txt](https://doc.duaer.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.duaer.com/hosting/configuration.md).

# Configure self-hosted Duaer

Encryption keys, environment variables, databases, and task runners. Prefer Postgres in production and pin DUAER_ENCRYPTION_KEY.
## Configuration entry points

- [Encryption keys](/hosting/configuration/encryption-keys.md): credentials are encrypted at rest; every queue-mode worker needs the same key.
- [Environment variables](/hosting/configuration/environment-variables.md): process env, `.env`, or container injection.
- [Supported databases](/hosting/configuration/supported-databases-settings.md): SQLite or Postgres.
- [Task runners](/hosting/configuration/task-runners.md): internal or external runners.
- [Configuration examples](/hosting/configuration/configuration-examples.md): copy-ready setups.
## Questions

### What should I configure first on self-hosted Duaer?

The encryption key, the database (Postgres in production), and the environment variables you will change. In queue mode every worker must share the same encryption key.

