env.sample
142 lignes · 4875 octets
# ============================================================================= # Rustwarden — Variables d'environnement # ============================================================================= # Base de données DATABASE_URL=postgres://rustwarden_user:password@localhost:5432/rustwarden # Serveur SERVER_HOST=0.0.0.0 SERVER_PORT=3000 # Logging RUST_LOG=debug # JWT JWT_SECRET=your-super-secret-jwt-key-change-this-in-production-minimum-32-characters JWT_EXPIRATION_MINUTES=15 JWT_ISSUER=rustwarden # Comportement du middleware d'auth sur préfixe protégé sans credentials valides # (RFC 0042). `redirect` : 303 vers LOGIN_PATH (UI). `json401` : 401 JSON (API). # Précédence : setter `.auth_failure_mode(..)` du builder > cette variable > # bascule `.headless()` (json401) > redirect. # AUTH_FAILURE_MODE=redirect # Chemin de la page de login pour la redirection (défaut /login). # LOGIN_PATH=/login # Refresh tokens REFRESH_TOKEN_EXPIRATION_DAYS=7 # Durée du refresh token avec "Se souvenir de moi" (doit être >= REFRESH_TOKEN_EXPIRATION_DAYS, max 90) # REMEMBER_ME_EXPIRATION_DAYS=30 # Sessions SESSION_SECRET=your-super-secret-session-key-change-this-in-production-minimum-64-characters SESSION_TIMEOUT_MINUTES=30 SESSION_BACKEND=memory # Redis (si SESSION_BACKEND=redis) REDIS_URL=redis://localhost:6379 # Rate Limiting RATE_LIMIT_LOGIN_PER_MINUTE=5 RATE_LIMIT_REFRESH_PER_MINUTE=10 RATE_LIMIT_GENERAL_PER_MINUTE=100 # Cookies COOKIE_SECURE=false COOKIE_SAME_SITE=Lax # Admin initial ADMIN_USERNAME=admin ADMIN_EMAIL=admin@localhost ADMIN_PASSWORD=ChangeMe123! # Email SMTP SMTP_HOST=localhost SMTP_PORT=143 # 587 pour TLS, SMTP_USER=noreply@rustwarden.local SMTP_PASSWORD= SMTP_FROM=noreply@rustwarden.local SMTP_FROM_NAME=My App SMTP_USE_TLS=false # true pour TLS, false pour SSL SMTP_USE_STARTTLS=true SMTP_ACCEPT_INVALID_CERTS=false # SMTP_CA_CERT_PATH= # Email base URL (used in email links) EMAIL_BASE_URL=http://localhost:3000 # Email queue EMAIL_QUEUE_BATCH_SIZE=10 EMAIL_QUEUE_RETRY_ATTEMPTS=5 EMAIL_QUEUE_RETRY_DELAY_SECONDS=300 # Email features control EMAIL_VALIDATION_REQUIRED=true ALLOW_REGISTRATION=false # Application APP_NAME=My App # APP_THEME=light # APP_DEBUG=true in development (disables forced COOKIE_SECURE, enables relaxed cookie names) APP_DEBUG=false DEFAULT_LOCALE=fr # IMAP (bounce processing — optional, leave IMAP_HOST empty to disable) # IMAP_HOST= # IMAP_PORT=993 # IMAP_USER= # IMAP_PASSWORD= # IMAP_USE_TLS=true # IMAP_USE_STARTTLS=false # IMAP_ACCEPT_INVALID_CERTS=false # IMAP_MAILBOX=INBOX # IMAP_POLL_INTERVAL_SECONDS=300 # ============================================================================= # CORS — origines front autorisées (séparées par des virgules) # ============================================================================= # Vide = aucun CorsLayer monté. Exemple : # CORS_ALLOWED_ORIGINS=https://app.example.org,https://admin.example.org # CORS_ALLOWED_ORIGINS= # ============================================================================= # Fédération ActivityPub (feature Cargo : `experimental-fediverse`) # ============================================================================= # Active uniquement si l'app est compilée avec `--features experimental-fediverse` # et appelle `RustwardenBuilder::with_fediverse(...)` au démarrage. # Cf. crates/rustwarden-core/src/config/fediverse.rs et # docs/rfcs/0001-fediverse-config-and-builder.md # # Domaine fédéré (OBLIGATOIRE si la feature est active). # - Forme bare ("example.org") → toujours promu en HTTPS. # - Forme URL ("https://example.org" ou "http://localhost:3000") acceptée : # le schéma http n'est autorisé qu'avec FEDIVERSE_DEBUG_LOCAL_FEDERATION=true. # - Les placeholders connus (example.com, your.tld, change-me.tld, …) sont # refusés au démarrage. # FEDIVERSE_DOMAIN=fediverse.example.org # Authorized Fetch (mode "secure" Mastodon) : impose une signature HTTP sur # tous les GET d'acteurs/objets entrants. Recommandé en production. # Défaut : false. # FEDIVERSE_AUTHORIZED_FETCH=false # File de livraison sortante ActivityPub. # Nombre de workers concurrents (défaut 4). # FEDIVERSE_OUTBOUND_WORKERS=4 # Tentatives max avant qu'un job soit marqué `dead` (défaut 8). # FEDIVERSE_OUTBOUND_MAX_ATTEMPTS=8 # Timeout HTTP par requête sortante, en secondes (défaut 30). # FEDIVERSE_OUTBOUND_REQUEST_TIMEOUT_SECS=30 # TTL du cache des documents acteurs distants, en secondes (défaut 86400 = 24h). # FEDIVERSE_FETCH_ACTOR_CACHE_TTL_SECS=86400 # TTL des challenges d'authentification fédérée AP-native (RFC 0006), # en secondes (défaut 300 = 5 min). # FEDIVERSE_AUTH_CHALLENGE_TTL_SECS=300 # Mode debug local : autorise les base URLs HTTP (tests 2-instances en local). # DOIT rester `false` en production. Défaut : false. # FEDIVERSE_DEBUG_LOCAL_FEDERATION=false
GitRust