Staff Manager — configuration
Dépôt : staff-rilindra
Production : staff.rilindra.fr
Staging : dev-staff.rilindra.fr
Source de vérité
| Sujet | Source |
|---|---|
| Secrets | Infisical, chemin projet Staff |
| Déploiement | Coolify |
| Branches | dev staging, main production |
| Base | PostgreSQL VPS |
| Auth | NextAuth Discord |
| Images | MinIO via routes API |
Variables principales
Les valeurs ne doivent pas être copiées dans cette documentation.
| Variable | Rôle |
|---|---|
NEXTAUTH_URL | URL canonique de l'environnement |
NEXTAUTH_SECRET | Secret de session |
DATABASE_URL | Connexion PostgreSQL VPS |
DISCORD_CLIENT_ID | Application Discord OAuth |
DISCORD_CLIENT_SECRET | Secret OAuth Discord |
DISCORD_TOKEN | Token bot si une route serveur doit appeler Discord |
DISCORD_GUILD_ID | Serveur Discord cible |
NEXT_PUBLIC_DISCORD_GUILD_ID | ID public du serveur côté UI |
BOT_INTERNAL_API_KEY | Auth interne bot si utilisée |
INTERNAL_API_SECRET | Secret API interne |
COOLIFY_API_TOKEN | Pilotage runtime côté serveur |
S3_* / MINIO_* | Stockage images selon convention du dépôt |
Variables à éviter
Ces variables ne doivent plus être la cible runtime :
| Variable | Statut |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | legacy |
NEXT_PUBLIC_SUPABASE_ANON_KEY | legacy |
SUPABASE_SERVICE_ROLE_KEY | legacy |
SUPABASE_URL | legacy |
DISCORD_BOT_TOKEN | remplacé par DISCORD_TOKEN |
VANILLA_* | hors périmètre Rilindra actuel |
Auth Staff
Le staff se connecte via Discord.
Le serveur résout ensuite le compte actif dans staff_users via le Discord ID.
Pour les fonctions SQL staff, la session serveur définit :
app.discord_id
Les helpers SQL ne doivent plus dépendre de auth.jwt, auth.uid ou auth.users.
Migrations
Les migrations sont validées en staging puis appliquées en production après backup.
Ne jamais lancer une migration prod avant :
- code prod déployé ;
- image prod vérifiée ;
- backup DB prod ;
- backup des fonctions si nécessaire ;
- fenêtre ou accord explicite.
Tests de configuration
| Test | Résultat attendu |
|---|---|
/tasks | Redirection login ou page chargée |
db:migrate | No-op si aucune migration en attente |
| GUC SQL | is_active_staff=true pour un staff actif |
| Logs DB | Pas de auth.* legacy |
| Logs app | Pas de 500 ou erreur session |