Toute la configuration passe par des variables d’environnement : fichier .env à la racine (serveur VPS avec Docker Compose) ou variables de la plateforme (PaaS). Après une modification, redémarrez l’application : docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d.
Les caractères spéciaux de l’identifiant et du mot de passe doivent être encodés : @ devient %40, / devient %2F, : devient %3A, etc. Pour encoder une valeur :
Avec votre propre domaine, ajoutez dans sa zone DNS les enregistrements SPF, DKIM et DMARC indiqués par le fournisseur. Sans eux, une grande partie des emails arrive en spam.
Sur un PaaS, lancez la même commande depuis le shell de la plateforme. Une fois l’envoi validé, imposez la vérification des adresses si l’inscription est ouverte au public :
Branding : nom de l’application, email d’assistance, logo facultatif, domaine autorisé (example.org) ;
Audience : type Externe, puis Publier l’application pour l’ouvrir à tous les comptes Google. Les seules données demandées (adresse email et profil) ne nécessitent pas de validation par Google.
Dans Clients, créez un client de type Application Web :
URI de redirection autorisés : https://example.org/compte/google/login/callback/. Ajoutez http://localhost:8000/compte/google/login/callback/ pour le développement.
Copiez l’identifiant et le secret dès la création : Google n’affiche plus le secret ensuite.
Redémarrez l’application et testez depuis la page de connexion.
Une erreur redirect_uri_mismatch signifie que l’URI déclarée ne correspond pas exactement au domaine (protocole, sous-domaine et barre oblique finale compris).
Domaines servis, séparés par des virgules. Défini automatiquement à partir de DOMAIN avec docker-compose.prod.yml.
CSRF_TRUSTED_ORIGINS
Origines HTTPS de confiance (https://example.org). Automatique avec docker-compose.prod.yml.
SECRET_KEY
Clé unique et secrète : python3 -c "import secrets; print(secrets.token_urlsafe(50))". La changer déconnecte tous les utilisateurs.
ADMIN_URL
Chemin de l’administration, à personnaliser (gestion-8f3k/).
SECURE_SSL_REDIRECT, SECURE_COOKIES
Redirection HTTPS et cookies sécurisés, actifs par défaut hors DEBUG. Ne les désactivez que derrière un proxy qui ne transmet pas X-Forwarded-Proto.
SECURE_HSTS_SECONDS, SECURE_HSTS_PRELOAD
HSTS d’un an par défaut. N’activez le préchargement qu’une fois tous les sous-domaines en HTTPS.
MFA_REQUIRED_FOR_STAFF
Double authentification obligatoire pour l’administration (true par défaut).
SIGNUP_LIMIT_PER_IP
Comptes créés au plus par adresse IP et par jour (5 par défaut, 0 pour désactiver).
BLOCKED_EMAIL_DOMAINS
Domaines refusés à l’inscription, en plus de la liste des adresses jetables (séparés par des virgules).
Créez le premier administrateur avec python manage.py createsuperuser. À sa première visite de l’administration, il active la double authentification (application ou clé d’accès) : gardez ses codes de secours en lieu sûr.
L’assistant fonctionne avec un ou plusieurs fournisseurs, configurés dans l’administration (section Assistant IA). Les clés restent dans l’environnement. Sans clé, l’application fonctionne normalement et l’assistant utilise ses replis sans IA. Voir Assistant IA.
Variable
Rôle
ANTHROPIC_API_KEY
Clé de l’API Anthropic (console.anthropic.com). Fixez aussi une limite de dépenses dans la console.
GITHUB_MODELS_TOKEN
Facultatif : jeton GitHub avec la permission models:read, pour GitHub Models.
MISTRAL_API_KEY
Facultatif : clé Mistral, modèle de secours hébergé dans l’Union européenne.
AI_MONTHLY_BUDGET_USD
Plafond de dépenses mensuel de l’application, en dollars (20 par défaut).
AI_ENABLED
false coupe l’assistant (true par défaut).
AI_TIMEOUT
Délai maximal d’un appel, en secondes (60 par défaut).
Après le premier déploiement, vérifiez dans l’administration que les fournisseurs voulus sont actifs et que la colonne clé présente est cochée.
Formules, coordonnées de virement et Wero se règlent dans l’administration (section Abonnements). Stripe reste désactivé tant que ses clés manquent. Voir Abonnements et paiements.
Variable
Rôle
STRIPE_SECRET_KEY
Facultatif : clé secrète Stripe (sk_live_… ou sk_test_…).
STRIPE_WEBHOOK_SECRET
Facultatif : secret de signature du webhook (whsec_…).
BILLING_USD_TO_EUR
Taux de conversion du coût de l’IA sur la page « Où va votre argent » (0,86 par défaut).