Production Checklist
Security
Section titled “Security”- TLS everywhere — Autentico is behind a reverse proxy with a valid TLS certificate.
AUTENTICO_APP_URLstarts withhttps://. - Strong secrets —
AUTENTICO_COOKIE_SECRETis at least 32 random characters.AUTENTICO_ADMIN_TOKENis a strong, unique token not used anywhere else. - Persistent RSA key —
AUTENTICO_PRIVATE_KEYis set to a stable base64-encoded PEM value (generated byautentico init). If it’s not set, an ephemeral key is used and all tokens are invalidated on restart. - Private key backup — The value of
AUTENTICO_PRIVATE_KEYis backed up securely (e.g., in a secrets manager). Losing it invalidates all issued tokens. - Admin token in secrets manager — The
AUTENTICO_ADMIN_TOKENis not committed to source control or exposed in logs. - Database backup — The SQLite database is backed up regularly. Consider a cron job using
sqlite3 /data/autentico.db ".backup /backups/autentico-$(date +%Y%m%d).db".
Configuration
Section titled “Configuration”-
AUTENTICO_APP_URLis correct — This value appears in the OIDC discovery document, tokenissclaim, and redirect validation. It must exactly match the URL clients use. - MFA enabled (recommended) —
mfa_enabled = truein settings, withmfa_method = totporemail. TOTP is preferred. - Account lockout configured —
lockout_max_attemptsandlockout_durationare set to reasonable values. - Session lifetimes reviewed —
sso_session_max_ageandsso_session_idle_timeoutmatch your security policy. - Token lifetimes reviewed —
access_token_expirationis short (15m default).refresh_token_expirationreflects your session policy. - Self-signup decision made —
allow_self_signupisfalseunless you intend to allow open registration. - SMTP configured (if using email OTP or email-verified registration) — SMTP settings tested via a login attempt.
Operations
Section titled “Operations”- Cleanup job running — Background cleanup is active (it starts automatically). Check logs to confirm
[cleanup]entries appear. - Log aggregation — Autentico logs to stdout. Forward logs to your SIEM or log management system.
- Alerting — Alert on repeated failed login attempts, admin API errors, and server startup failures.
- Health check — Monitor
GET /.well-known/openid-configuration— it returns 200 when the server is healthy. - Upgrade tested — You have tested the upgrade path (pull new image, restart) in a non-production environment.
Clients
Section titled “Clients”- Only necessary grant types enabled — Each registered client has only the grant types it actually uses.
- Redirect URIs are exact — No wildcards. Each redirect URI is the precise URL the client will use.
- Confidential clients have secrets — Server-side apps are registered as
confidentialwithclient_secret_basicorclient_secret_post. - Public clients use PKCE — Browser and mobile apps are registered as
publicwithnoneauth method and must use PKCE.