Ouverture commerciale reportée le temps de finaliser nos locaux à Limoges. Être prévenu de l'ouverture

Variables d'environnement et jetons : les bonnes pratiques

Bots et applicatif · 4 min de lecture · Mis à jour le 16 octobre 2026

Un jeton de bot Discord, un mot de passe de base de données ou une clé d'API donnent accès à quelque chose. Quiconque les lit peut agir à votre place. Ils n'ont donc rien à faire dans le code ni dans un dépôt Git, même privé : un dépôt se partage, se clone et se publie plus facilement qu'on ne le pense.

La règle est simple : le code lit ses secrets dans des variables d'environnement, et ces variables sont définies là où le code tourne.

Lire une variable d'environnement

Node.js :

const token = process.env.DISCORD_TOKEN;

Python :

import os
token = os.environ["DISCORD_TOKEN"]   # erreur immédiate si absente

PHP :

$dbPassword = getenv('DB_PASSWORD');

Vérifiez la présence des variables au démarrage et arrêtez le programme avec un message clair si l'une manque : c'est plus facile à diagnostiquer qu'une erreur obscure dix minutes plus tard.

En local : le fichier .env

Pour développer, on regroupe les variables dans un fichier .env à la racine du projet :

DISCORD_TOKEN=votre_jeton
DATABASE_URL=mysql://utilisateur:motdepasse@localhost/mabase

Ce fichier ne doit jamais être validé dans Git. Ajoutez-le au .gitignore avant le premier commit :

.env
.env.*
!.env.example

Versionnez en revanche un .env.example qui liste les noms attendus, sans valeur. La personne qui reprend le projet sait ainsi quoi renseigner.

Vérifiez que rien n'est suivi par erreur :

git ls-files | grep -i env

Sur le serveur

Hébergement applicatif

Les variables se renseignent dans votre espace client, pas dans le dépôt :

DISCORD_TOKEN=votre_jeton
DATABASE_URL=postgres://utilisateur:motdepasse@hote/mabase

VPS

Avec systemd, placez les variables dans un fichier lisible par root seulement, et référencez-le dans le service :

install -m 600 -o root -g root /dev/null /etc/mon-app.env
nano /etc/mon-app.env
[Service]
EnvironmentFile=/etc/mon-app.env

systemd lit ce fichier en tant que root puis transmet les variables au service, même si celui-ci tourne sous un autre utilisateur. Évitez d'écrire les secrets directement dans le fichier .service (lisible par tous) ou dans ~/.bashrc.

Exemple complet dans Héberger un bot discord.js.

Hébergement web

Pour un site PHP, les identifiants de base de données vont dans un fichier de configuration placé hors du dossier public quand c'est possible, et jamais dans un dépôt public. WordPress, par exemple, les garde dans wp-config.php, qui ne doit pas être téléchargeable.

Les erreurs classiques

Un secret a fuité : que faire

  1. Révoquer et régénérer le secret à la source, tout de suite : portail développeur Discord (Reset Token), console du fournisseur d'API, mot de passe de la base.
  2. Mettre la nouvelle valeur dans les variables du serveur (sur l'hébergement applicatif : bouton « Variables », « Enregistrer », puis « Redéployer » ; sur un VPS : le fichier d'environnement, puis redémarrage du service).
  3. Vérifier les journaux d'activité du service concerné à la recherche d'usages inconnus.
  4. Ensuite seulement, nettoyer le dépôt.

Régénérer passe avant tout le reste : tant que l'ancien jeton est valide, il peut servir.

Besoin d'aide ?

Ouvrez un ticket depuis votre espace client. Décrivez le problème et le nom des variables concernées, jamais leur valeur.

Retour à la documentation