Où stocker les tokens et variables d’environnement ?
Séparer configuration et code, limiter les accès et régénérer un secret exposé. Un token dans Git ou une capture doit être considéré comme compromis.
Un token dans Git ou une capture doit être considéré comme compromis. Le panel permet de passer des variables au processus sans les écrire dans le code.
Procédure étape par étape
-
Nommer les variables
Utilisez des noms explicites comme DISCORD_TOKEN, DATABASE_URL ou API_KEY.
-
Renseigner dans Démarrage
Collez le token dans le champ « Token Discord », ou ajoutez la variable avec « Nom », « Valeur » puis « Ajouter ». Masquez les secrets dans les captures.
-
Lire depuis le code
Utilisez process.env en Node.js ou os.environ en Python.
-
Ne pas commiter .env
Ajoutez .env au .gitignore et fournissez seulement un .env.example sans valeur.
-
Réagir à une fuite
Révoquez le token sur le service d’origine, générez-en un nouveau et mettez à jour le panel.
.gitignore
.env
.env.*
!.env.example
Lire le token en Node.js
const token = process.env.DISCORD_TOKEN;
if (!token) {
console.error('DISCORD_TOKEN is missing: add it in the Startup tab.');
process.exit(1);
}
client.login(token);
Lire le token en Python
import os
import sys
token = os.getenv("DISCORD_TOKEN")
if not token:
sys.exit("DISCORD_TOKEN is missing: add it in the Startup tab.")
client.run(token)
Où régler les variables
Les variables d’un bot se règlent dans l’onglet « Démarrage », section « Variables d’environnement ». Le champ « Token Discord » correspond à DISCORD_TOKEN. Pour une autre variable, remplissez « Nom » et « Valeur » sous la liste, puis cliquez sur « Ajouter ».
Une variable déjà listée s’enregistre pendant la saisie. Le bot la reçoit au démarrage suivant : redémarrez-le depuis la console. Les valeurs sont stockées chiffrées. Le propriétaire du bot les voit en clair dans Démarrage, pensez-y avant un partage d’écran ; un utilisateur invité ne voit que les noms.
- Nom : majuscules, chiffres et _, 64 caractères au maximum.
- Refusés car réservés au système : PATH, HOME, USER, PORT, HOSTNAME, NODE_OPTIONS et les noms qui commencent par LD_.
Lire les variables dans le code
Si vous utilisez dotenv ou python-dotenv en local, gardez-les : par défaut, ils ne remplacent pas une variable déjà définie. Les valeurs de Démarrage restent donc prioritaires sur un fichier .env oublié dans les fichiers du bot.
N’affichez jamais process.env ou os.environ en entier : ces lignes restent dans la console et partent avec « Copier tous les logs ».
Aucun secret dans un ticket
Le support n’a pas besoin du token complet pour diagnostiquer un démarrage.
Questions fréquentes
La console indique qu’une variable n’est pas définie, que faire ?
Quand le bot s’arrête juste après son lancement, la plateforme repère dans sa sortie les variables lues par le code mais absentes ou vides, et ajoute une ligne comme « La variable DISCORD_TOKEN n’est pas définie dans les variables de démarrage ». Ajoutez-la dans Démarrage avec exactement ce nom, casse comprise, puis redémarrez le bot.
Pourquoi KeyError: 'DISCORD_TOKEN' au démarrage d’un bot Python ?
os.environ["DISCORD_TOKEN"] lève cette erreur quand la variable n’existe pas dans l’environnement du bot. Comparez le nom avec celui du code, majuscules et _ compris. Si le nom est juste, redémarrez : une variable ajoutée pendant que le bot tourne n’est transmise qu’au lancement suivant.
Mon token a été publié sur GitHub, que faire ?
Considérez-le comme compromis, même après suppression du fichier : l’historique Git le conserve. Dans le portail développeur Discord, onglet « Bot », cliquez sur « Reset Token » ; l’ancien token cesse aussitôt de fonctionner. Collez le nouveau dans « Token Discord », redémarrez le bot, puis ajoutez .env au .gitignore. Discord peut aussi réinitialiser de lui-même un token trouvé dans un dépôt public.