# Configuration keys

<!-- Generated by scripts/generate_reference.py from noust.core.config.DEFAULT_CONFIG. Do not edit by hand: change the code, then run the script. -->

Every configuration key and the value it has until you change it. Set one with `noust config set KEY VALUE`, read it with `noust config get KEY`; the file is `/etc/noust/config.yaml`. What each setting does, and the ones that are obsolete, is in [the configuration guide](/docs/reference/configuration/). A key that holds a secret is shown as empty here and masked everywhere Noust prints it.

| Key | Default |
|---|---|
| `approval.enabled` | `false` |
| `apps_directory` | `"/var/www/apps"` |
| `audit.checkpoint_minutes` | `5` |
| `audit.enterprise_id` | `32473` |
| `audit.flood_burst` | `10` |
| `audit.flood_window_seconds` | `60` |
| `audit.host_activity` | `"mutations"` |
| `audit.journald` | `"auto"` |
| `audit.max_total_mb` | `2048` |
| `audit.on_failure` | `"warn"` |
| `audit.retention_days` | `365` |
| `audit.rotate_mb` | `64` |
| `audit.sink_lag_minutes` | `15` |
| `audit.stdout` | `"auto"` |
| `audit.syslog` | `[]` |
| `auth.local_login.enabled` | `true` |
| `auth.local_login.exempt` | `[]` |
| `auth.lockout.minutes` | `15` |
| `auth.lockout.threshold` | `5` |
| `auth.login_label` | `""` |
| `auth.notice.text` | `""` |
| `auth.password.min_length` | `12` |
| `auth.session.absolute_hours` | `12` |
| `auth.session.idle_minutes` | `30` |
| `auth.sudo.idle_minutes` | `15` |
| `auth.sudo.max_minutes` | `120` |
| `auth.sudo.require_password` | `false` |
| `auth.tokens.enforce_max_days` | `false` |
| `auth.tokens.max_days` | `90` |
| `central.role` | `"server"` |
| `databases.credentials.mongodb.password` | `""` |
| `databases.credentials.mongodb.user` | `""` |
| `databases.credentials.mysql.password` | `""` |
| `databases.credentials.mysql.user` | `"root"` |
| `databases.credentials.postgresql.password` | `""` |
| `databases.credentials.postgresql.user` | `"postgres"` |
| `databases.credentials.redis.password` | `""` |
| `databases.import_directories` | `[]` |
| `databases.import_max_bytes` | `10737418240` |
| `databases.safety_copies_kept` | `5` |
| `deploy.build_timeout` | `2700` |
| `deploy.drain_seconds` | `10` |
| `deploy.hardening` | `"default"` |
| `deploy.history_keep` | `20` |
| `deploy.install_timeout` | `1800` |
| `deploy.layout` | `"releases"` |
| `deploy.max_concurrent_builds` | `2` |
| `deploy.max_minutes` | `60` |
| `deploy.queue_limit` | `25` |
| `deploy.zero_downtime` | `true` |
| `dns.check_previews` | `true` |
| `dns.public_addresses` | `[]` |
| `dns.resolvers` | `["1.1.1.1", "8.8.8.8"]` |
| `github.host` | `""` |
| `integrations.forge_hosts` | `[]` |
| `mcp.enabled` | `false` |
| `mcp.groups` | `["inspect", "deploy", "control"]` |
| `metrics.retention_days` | `400` |
| `monitor.backup_check_hours` | `6` |
| `monitor.backup_missing_days` | `2` |
| `monitor.backup_missing_renotify_hours` | `24` |
| `monitor.cert_warning_days` | `14` |
| `monitor.container_check_seconds` | `60` |
| `monitor.container_restart_limit` | `5` |
| `monitor.cpu_threshold` | `80.0` |
| `monitor.disk_check_seconds` | `0` |
| `monitor.disk_renotify_hours` | `0` |
| `monitor.disk_threshold` | `90.0` |
| `monitor.email_api.access_key_id` | `""` |
| `monitor.email_api.api_key` | `""` |
| `monitor.email_api.from_address` | `""` |
| `monitor.email_api.provider` | `""` |
| `monitor.email_api.region` | `""` |
| `monitor.email_api.secret_access_key` | `""` |
| `monitor.email_recipients` | `[]` |
| `monitor.enabled` | `false` |
| `monitor.log_file` | `"/var/log/noust/monitor.log"` |
| `monitor.memory_threshold` | `80.0` |
| `monitor.os_patches_check_hours` | `24` |
| `monitor.recipe_check_hours` | `24` |
| `monitor.recipe_renotify_days` | `7` |
| `monitor.restart_webserver` | `true` |
| `monitor.scan_interval` | `60` |
| `monitor.security_check_hours` | `6` |
| `monitor.security_renotify_hours` | `72` |
| `monitor.smtp.from_address` | `""` |
| `monitor.smtp.host` | `""` |
| `monitor.smtp.password` | `""` |
| `monitor.smtp.port` | `465` |
| `monitor.smtp.use_ssl` | `true` |
| `monitor.smtp.use_tls` | `false` |
| `monitor.smtp.username` | `""` |
| `monitor.token_warning_days` | `7` |
| `monitor.webserver_check_seconds` | `60` |
| `monitor.webserver_restart_limit` | `3` |
| `notifications.central_silent_minutes` | `15` |
| `notifications.channels.discord.mention_role_id` | `""` |
| `notifications.channels.discord.mention_user_id` | `""` |
| `notifications.channels.discord.webhook_url` | `""` |
| `notifications.channels.email.enabled` | `false` |
| `notifications.channels.gotify.token` | `""` |
| `notifications.channels.gotify.webhook_url` | `""` |
| `notifications.channels.lark.secret` | `""` |
| `notifications.channels.lark.webhook_url` | `""` |
| `notifications.channels.matrix.access_token` | `""` |
| `notifications.channels.matrix.homeserver` | `""` |
| `notifications.channels.matrix.room_id` | `""` |
| `notifications.channels.mattermost.webhook_url` | `""` |
| `notifications.channels.ntfy.token` | `""` |
| `notifications.channels.ntfy.webhook_url` | `""` |
| `notifications.channels.pagerduty.region` | `"us"` |
| `notifications.channels.pagerduty.routing_key` | `""` |
| `notifications.channels.pushover.app_token` | `""` |
| `notifications.channels.pushover.device` | `""` |
| `notifications.channels.pushover.user_key` | `""` |
| `notifications.channels.slack.webhook_url` | `""` |
| `notifications.channels.teams.webhook_url` | `""` |
| `notifications.channels.telegram.bot_token` | `""` |
| `notifications.channels.telegram.chat_id` | `""` |
| `notifications.channels.webhook.secret` | `""` |
| `notifications.channels.webhook.webhook_headers` | `""` |
| `notifications.channels.webhook.webhook_url` | `""` |
| `notifications.console_url` | `""` |
| `notifications.enabled` | `false` |
| `notifications.events.alert_acknowledged` | `true` |
| `notifications.events.alert_firing` | `true` |
| `notifications.events.alert_resolved` | `true` |
| `notifications.events.app_recovered` | `true` |
| `notifications.events.app_unreachable` | `true` |
| `notifications.events.approval_decided` | `true` |
| `notifications.events.approval_requested` | `true` |
| `notifications.events.backup_failed` | `true` |
| `notifications.events.backup_missing` | `true` |
| `notifications.events.backup_success` | `false` |
| `notifications.events.central_silent` | `true` |
| `notifications.events.cert_expiring` | `true` |
| `notifications.events.cleanup_failed` | `true` |
| `notifications.events.cleanup_success` | `false` |
| `notifications.events.container_restart_loop` | `true` |
| `notifications.events.cron_failed` | `true` |
| `notifications.events.cron_missed` | `true` |
| `notifications.events.cron_success` | `false` |
| `notifications.events.deploy_failed` | `true` |
| `notifications.events.deploy_hook_failed` | `true` |
| `notifications.events.deploy_rolled_back` | `true` |
| `notifications.events.deploy_started` | `false` |
| `notifications.events.deploy_success` | `true` |
| `notifications.events.destination_unreachable` | `true` |
| `notifications.events.disk_threshold` | `true` |
| `notifications.events.node_host_key_changed` | `true` |
| `notifications.events.node_recovered` | `true` |
| `notifications.events.node_unreachable` | `true` |
| `notifications.events.os_patches` | `true` |
| `notifications.events.probe_failed` | `true` |
| `notifications.events.probe_recovered` | `true` |
| `notifications.events.recipe_outdated` | `true` |
| `notifications.events.restore_failed` | `true` |
| `notifications.events.restore_success` | `true` |
| `notifications.events.security_release` | `true` |
| `notifications.events.server_back` | `true` |
| `notifications.events.server_rebooted` | `true` |
| `notifications.events.token_expiring` | `true` |
| `notifications.events.unit_failed` | `true` |
| `notifications.language` | `"en"` |
| `releases.bundle_max_bytes` | `8589934592` |
| `retention.deployments_days` | `365` |
| `retention.jobs_days` | `90` |
| `retention.sessions_days` | `30` |
| `retention.terminal_days` | `90` |
| `security.allow_private_hosts` | `[]` |
| `security.backup_offsite` | `false` |
| `security.change_reasons` | `false` |
| `security.console_exposure` | `"allowed"` |
| `security.database_remote_listen` | `"allowed"` |
| `security.db_write_root_equivalent` | `false` |
| `security.exception_reasons` | `false` |
| `security.explicit_allowlist` | `false` |
| `security.external_audit_sink` | `false` |
| `security.frameworks` | `[]` |
| `security.log_shipping_tls` | `false` |
| `security.master_token` | `"break_glass"` |
| `security.mounts_read_only` | `false` |
| `security.profile` | `"standard"` |
| `security.restricted_tokens` | `false` |
| `security.roles_split` | `false` |
| `security.second_factor` | `false` |
| `security.separation_of_duties` | `false` |
| `security.server_terminal` | `"allowed"` |
| `security.single_role_per_account` | `false` |
| `security.sso_no_admin` | `false` |
| `security.tls_certificate` | `"any"` |
| `server.name` | `""` |
| `service_group` | `"www-data"` |
| `service_user` | `"www-data"` |
| `ssl.acme_server` | `""` |
| `ssl.ca` | `"letsencrypt"` |
| `ssl.eab_kid` | `""` |
| `ssl.email` | `""` |
| `ssl.enabled` | `true` |
| `ssl.hsts` | `false` |
| `ssl.provider` | `"certbot"` |
| `ssl.reuse_wildcard` | `true` |
| `status_page.directory` | `""` |
| `status_page.enabled` | `false` |
| `status_page.title` | `""` |
| `terminal.enabled` | `true` |
| `terminal.exec.max_seconds` | `1800` |
| `terminal.idle_minutes` | `10` |
| `terminal.max_minutes` | `120` |
| `terminal.max_sessions` | `8` |
| `terminal.max_sessions_per_user` | `3` |
| `terminal.recording.max_mb` | `8` |
| `terminal.server.enabled` | `false` |
| `terminal.server.force_ens` | `false` |
| `updates.auto.channel` | `"patch"` |
| `updates.auto.days` | `"daily"` |
| `updates.auto.enabled` | `false` |
| `updates.auto.window` | `"03:00-05:00"` |
| `updates.check` | `true` |
| `uploads.source_max_bytes` | `536870912` |
| `web.allowed_hosts` | `[]` |
| `web.api_enabled` | `true` |
| `web.enabled` | `false` |
| `web.hooks_url` | `""` |
| `web.host` | `"127.0.0.1"` |
| `web.ip_whitelist` | `[]` |
| `web.lockout_duration` | `900` |
| `web.max_failed_attempts` | `5` |
| `web.port` | `8080` |
| `web.public_url` | `""` |
| `web.rate_limit_authenticated_requests` | `1200` |
| `web.rate_limit_enabled` | `true` |
| `web.rate_limit_requests` | `120` |
| `web.rate_limit_window` | `60` |
| `web.token_expiration_hours` | `12` |
| `webserver` | `"nginx"` |
