Auth & Security
Auth credentials in monitors
Monitor auth settings (Basic Auth username/password, custom headers, cookies) and notification channel config (webhook URLs, email addresses) are stored in the database.
Encryption at rest (optional)
Set ENCRYPTION_KEY in .env to encrypt these values using Fernet. Without the key, they are stored as plain text for backward compatibility. Existing plain-text data continues to work; new and updated values are encrypted when the key is set.
Generate a key:
python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" Best practices
- Do not commit
.envor your database to version control. - Use a strong
SECRET_KEYin production. - Run the app as a non-root user with minimal permissions.
- Use HTTPS in production (e.g. nginx reverse proxy).
- Restrict filesystem and database access so only the app can read/write.
See the main repository’s SECURITY.md for details and how to report security issues.