ajout du modele pour les variables env

EBO <eric@ebii.fr> committé le 2026-10-02 22:04

0b922e07a6501b01985abc459f59c6b628f5bed8

1 parent(s)

1 fichiers modifiés +142 -0
A env.sample
+142 -0
@@ -0,0 +1,142 @@
1 +# =============================================================================
2 +# Rustwarden — Variables d'environnement
3 +# =============================================================================
4 +
5 +# Base de données
6 +DATABASE_URL=postgres://rustwarden_user:password@localhost:5432/rustwarden
7 +
8 +# Serveur
9 +SERVER_HOST=0.0.0.0
10 +SERVER_PORT=3000
11 +
12 +# Logging
13 +RUST_LOG=debug
14 +
15 +# JWT
16 +JWT_SECRET=your-super-secret-jwt-key-change-this-in-production-minimum-32-characters
17 +JWT_EXPIRATION_MINUTES=15
18 +JWT_ISSUER=rustwarden
19 +
20 +# Comportement du middleware d'auth sur préfixe protégé sans credentials valides
21 +# (RFC 0042). `redirect` : 303 vers LOGIN_PATH (UI). `json401` : 401 JSON (API).
22 +# Précédence : setter `.auth_failure_mode(..)` du builder > cette variable >
23 +# bascule `.headless()` (json401) > redirect.
24 +# AUTH_FAILURE_MODE=redirect
25 +# Chemin de la page de login pour la redirection (défaut /login).
26 +# LOGIN_PATH=/login
27 +
28 +# Refresh tokens
29 +REFRESH_TOKEN_EXPIRATION_DAYS=7
30 +# Durée du refresh token avec "Se souvenir de moi" (doit être >= REFRESH_TOKEN_EXPIRATION_DAYS, max 90)
31 +# REMEMBER_ME_EXPIRATION_DAYS=30
32 +
33 +# Sessions
34 +SESSION_SECRET=your-super-secret-session-key-change-this-in-production-minimum-64-characters
35 +SESSION_TIMEOUT_MINUTES=30
36 +SESSION_BACKEND=memory
37 +
38 +# Redis (si SESSION_BACKEND=redis)
39 +REDIS_URL=redis://localhost:6379
40 +
41 +# Rate Limiting
42 +RATE_LIMIT_LOGIN_PER_MINUTE=5
43 +RATE_LIMIT_REFRESH_PER_MINUTE=10
44 +RATE_LIMIT_GENERAL_PER_MINUTE=100
45 +
46 +# Cookies
47 +COOKIE_SECURE=false
48 +COOKIE_SAME_SITE=Lax
49 +
50 +# Admin initial
51 +ADMIN_USERNAME=admin
52 +ADMIN_EMAIL=admin@localhost
53 +ADMIN_PASSWORD=ChangeMe123!
54 +
55 +# Email SMTP
56 +SMTP_HOST=localhost
57 +SMTP_PORT=143 # 587 pour TLS,
58 +SMTP_USER=noreply@rustwarden.local
59 +SMTP_PASSWORD=
60 +SMTP_FROM=noreply@rustwarden.local
61 +SMTP_FROM_NAME=My App
62 +SMTP_USE_TLS=false # true pour TLS, false pour SSL
63 +SMTP_USE_STARTTLS=true
64 +SMTP_ACCEPT_INVALID_CERTS=false
65 +# SMTP_CA_CERT_PATH=
66 +
67 +# Email base URL (used in email links)
68 +EMAIL_BASE_URL=http://localhost:3000
69 +
70 +# Email queue
71 +EMAIL_QUEUE_BATCH_SIZE=10
72 +EMAIL_QUEUE_RETRY_ATTEMPTS=5
73 +EMAIL_QUEUE_RETRY_DELAY_SECONDS=300
74 +
75 +# Email features control
76 +EMAIL_VALIDATION_REQUIRED=true
77 +ALLOW_REGISTRATION=false
78 +
79 +# Application
80 +APP_NAME=My App
81 +# APP_THEME=light
82 +# APP_DEBUG=true in development (disables forced COOKIE_SECURE, enables relaxed cookie names)
83 +APP_DEBUG=false
84 +DEFAULT_LOCALE=fr
85 +
86 +# IMAP (bounce processing — optional, leave IMAP_HOST empty to disable)
87 +# IMAP_HOST=
88 +# IMAP_PORT=993
89 +# IMAP_USER=
90 +# IMAP_PASSWORD=
91 +# IMAP_USE_TLS=true
92 +# IMAP_USE_STARTTLS=false
93 +# IMAP_ACCEPT_INVALID_CERTS=false
94 +# IMAP_MAILBOX=INBOX
95 +# IMAP_POLL_INTERVAL_SECONDS=300
96 +
97 +# =============================================================================
98 +# CORS — origines front autorisées (séparées par des virgules)
99 +# =============================================================================
100 +# Vide = aucun CorsLayer monté. Exemple :
101 +# CORS_ALLOWED_ORIGINS=https://app.example.org,https://admin.example.org
102 +# CORS_ALLOWED_ORIGINS=
103 +
104 +# =============================================================================
105 +# Fédération ActivityPub (feature Cargo : `experimental-fediverse`)
106 +# =============================================================================
107 +# Active uniquement si l'app est compilée avec `--features experimental-fediverse`
108 +# et appelle `RustwardenBuilder::with_fediverse(...)` au démarrage.
109 +# Cf. crates/rustwarden-core/src/config/fediverse.rs et
110 +# docs/rfcs/0001-fediverse-config-and-builder.md
111 +#
112 +# Domaine fédéré (OBLIGATOIRE si la feature est active).
113 +# - Forme bare ("example.org") → toujours promu en HTTPS.
114 +# - Forme URL ("https://example.org" ou "http://localhost:3000") acceptée :
115 +# le schéma http n'est autorisé qu'avec FEDIVERSE_DEBUG_LOCAL_FEDERATION=true.
116 +# - Les placeholders connus (example.com, your.tld, change-me.tld, …) sont
117 +# refusés au démarrage.
118 +# FEDIVERSE_DOMAIN=fediverse.example.org
119 +
120 +# Authorized Fetch (mode "secure" Mastodon) : impose une signature HTTP sur
121 +# tous les GET d'acteurs/objets entrants. Recommandé en production.
122 +# Défaut : false.
123 +# FEDIVERSE_AUTHORIZED_FETCH=false
124 +
125 +# File de livraison sortante ActivityPub.
126 +# Nombre de workers concurrents (défaut 4).
127 +# FEDIVERSE_OUTBOUND_WORKERS=4
128 +# Tentatives max avant qu'un job soit marqué `dead` (défaut 8).
129 +# FEDIVERSE_OUTBOUND_MAX_ATTEMPTS=8
130 +# Timeout HTTP par requête sortante, en secondes (défaut 30).
131 +# FEDIVERSE_OUTBOUND_REQUEST_TIMEOUT_SECS=30
132 +
133 +# TTL du cache des documents acteurs distants, en secondes (défaut 86400 = 24h).
134 +# FEDIVERSE_FETCH_ACTOR_CACHE_TTL_SECS=86400
135 +
136 +# TTL des challenges d'authentification fédérée AP-native (RFC 0006),
137 +# en secondes (défaut 300 = 5 min).
138 +# FEDIVERSE_AUTH_CHALLENGE_TTL_SECS=300
139 +
140 +# Mode debug local : autorise les base URLs HTTP (tests 2-instances en local).
141 +# DOIT rester `false` en production. Défaut : false.
142 +# FEDIVERSE_DEBUG_LOCAL_FEDERATION=false