Héberger un bot Discord sur un VPS Linux (pas à pas)
Un VPS est l'endroit idéal pour faire tourner un bot Discord en continu. Voici le déploiement complet : SSH, environnement, code, secrets et démarrage 24/7.
Pourquoi héberger un bot Discord sur un VPS ?
Héberger un bot Discord sur un VPS permet de le faire fonctionner en continu, sans laisser votre ordinateur personnel allumé. Vous contrôlez le système Linux, les versions de Node.js ou Python, les variables d’environnement et le gestionnaire de processus.
Un VPS convient notamment lorsque vous souhaitez :
- maintenir un bot connecté 24 h/24 ;
- héberger plusieurs bots sur une même machine ;
- utiliser une base de données ou une API complémentaire ;
- consulter précisément les logs ;
- automatiser les redémarrages et mises à jour ;
- maîtriser les dépendances installées.
Les hébergements gratuits peuvent suffire pour un test, mais ils imposent souvent des limitations de ressources, de durée d’exécution ou de configuration. Un VPS offre davantage de contrôle, en contrepartie d’une administration Linux à assurer.
Un VPS TalCloud est hébergé en France et peut être déployé en 60 secondes. Avant de choisir sa capacité, vérifiez la consommation réelle de votre bot, de sa base de données et des autres services prévus.
N’exécutez pas votre bot avec le compte
root. Utilisez un utilisateur Linux standard et accordez-lui uniquement les droits nécessaires.
Se connecter au VPS en SSH
Récupérez dans votre espace client :
- l’adresse IP du VPS ;
- le nom d’utilisateur ;
- le mot de passe initial ou la clé SSH ;
- le port SSH, généralement
22.
Depuis Linux, macOS ou un terminal Windows récent, connectez-vous avec :
ssh utilisateur@ADRESSE_IP
Si le port est différent :
ssh -p PORT utilisateur@ADRESSE_IP
Pour une procédure détaillée, consultez le guide pour se connecter à un VPS en SSH.
Une fois connecté, mettez à jour les paquets du système sur Debian ou Ubuntu :
sudo apt update
sudo apt upgrade -y
Installez ensuite quelques outils courants :
sudo apt install -y git curl ca-certificates
Un redémarrage peut être nécessaire après certaines mises à jour système :
sudo reboot
Reconnectez-vous en SSH lorsque le VPS est de nouveau disponible.
Pour renforcer les accès, le pare-feu et les mises à jour, suivez également le guide pour sécuriser votre serveur Linux.
Installer Node.js ou Python
Installez uniquement le runtime correspondant au langage de votre bot.
Installer Node.js avec NVM
NVM permet d’installer une version récente de Node.js sans dépendre de la version parfois ancienne disponible dans les dépôts Linux.
Clonez le dépôt officiel :
git clone https://github.com/nvm-sh/nvm.git ~/.nvm
Ajoutez NVM à votre environnement Bash :
cat >> ~/.bashrc <<'EOF'
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
EOF
Rechargez la configuration :
source ~/.bashrc
Installez la version LTS de Node.js :
nvm install --lts
nvm use --lts
nvm alias default "lts/*"
Vérifiez les versions :
node --version
npm --version
Installer Python et créer un environnement virtuel
Pour un bot développé avec discord.py, installez Python, pip et le module venv :
sudo apt install -y python3 python3-pip python3-venv
Vérifiez la version :
python3 --version
L’environnement virtuel sera créé dans le dossier du projet après le transfert du code.
Déployer le code du bot
La méthode recommandée consiste à utiliser Git. Elle facilite les mises à jour et évite de transférer manuellement tout le projet après chaque modification.
Créez un dossier pour vos applications :
mkdir -p ~/apps
cd ~/apps
Clonez votre dépôt :
git clone ADRESSE_DU_DEPOT.git mon-bot
cd mon-bot
Exemple de structure Node.js :
/home/utilisateur/apps/mon-bot/
├── index.js
├── package.json
├── package-lock.json
├── .gitignore
└── .env.example
Exemple Python :
/home/utilisateur/apps/mon-bot/
├── bot.py
├── requirements.txt
├── .gitignore
└── .env.example
Le véritable fichier .env ne doit pas être présent dans le dépôt.
Pour un dépôt privé, utilisez une clé SSH Git ou un mécanisme d’authentification sécurisé. N’insérez pas un jeton d’accès directement dans l’URL enregistrée dans l’historique du terminal.
Vous pouvez aussi transférer le projet depuis votre ordinateur avec SCP :
scp -r ./mon-bot utilisateur@ADRESSE_IP:/home/utilisateur/apps/
Ou utiliser un client SFTP. Git reste préférable pour les mises à jour régulières.
Configurer le token et les secrets
Créez le fichier .env directement sur le VPS :
nano .env
Ajoutez les variables attendues :
DISCORD_TOKEN=VOTRE_TOKEN_DISCORD
DATABASE_URL=VOTRE_CHAINE_DE_CONNEXION
Enregistrez le fichier, puis limitez sa lecture au propriétaire :
chmod 600 .env
Vérifiez que .gitignore contient bien :
.env
.env.*
!.env.example
node_modules/
.venv/
__pycache__/
*.log
Contrôlez que Git ne suit pas le fichier :
git status
git ls-files .env
La seconde commande ne doit rien retourner.
Ne placez jamais le token Discord dans le code, un dépôt Git, une capture d’écran ou un message. S’il est exposé, régénérez-le immédiatement depuis le Discord Developer Portal.
Pour approfondir cette protection, consultez le guide pour sécuriser le token de votre bot Discord.
Installer les dépendances
Projet Node.js
Dans le dossier du bot :
cd ~/apps/mon-bot
Si un fichier package-lock.json est présent, utilisez :
npm ci --omit=dev
Cette commande installe les versions enregistrées dans le fichier de verrouillage. Sans package-lock.json, utilisez :
npm install --omit=dev
Testez ensuite le programme :
node index.js
Arrêtez le test avec Ctrl + C.
Projet Python
Créez l’environnement virtuel :
cd ~/apps/mon-bot
python3 -m venv .venv
Activez-le :
source .venv/bin/activate
Mettez pip à jour et installez les dépendances :
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
Testez le bot :
python bot.py
Arrêtez-le avec Ctrl + C, puis quittez l’environnement virtuel :
deactivate
Lancer le bot en continu avec PM2
PM2 maintient le processus actif après la fermeture de la session SSH et le relance après un crash.
Installez PM2 avec le même utilisateur Linux que celui qui exécutera le bot :
npm install -g pm2
Pour un bot Node.js :
cd ~/apps/mon-bot
pm2 start index.js --name mon-bot
Pour un bot Python, PM2 peut utiliser l’interpréteur de l’environnement virtuel :
cd ~/apps/mon-bot
pm2 start bot.py --name mon-bot-python --interpreter .venv/bin/python
Vérifiez son état :
pm2 list
Consultez les logs :
pm2 logs mon-bot --lines 100
Configurez maintenant le démarrage automatique avec le VPS :
pm2 startup
PM2 affiche une commande personnalisée. Copiez-la et exécutez-la exactement, puis enregistrez la liste des processus :
pm2 save
Testez le redémarrage automatique lors d’une maintenance planifiée :
sudo reboot
Après reconnexion :
pm2 list
Pour maîtriser toutes les commandes, consultez le guide garder un bot Discord en ligne avec PM2.
Maintenir le bot à jour
Avant une mise à jour, placez-vous dans le projet et vérifiez qu’aucune modification locale non enregistrée ne sera écrasée :
cd ~/apps/mon-bot
git status
Récupérez ensuite les changements :
git pull --ff-only
Pour Node.js :
npm ci --omit=dev
pm2 restart mon-bot --update-env
Pour Python :
source .venv/bin/activate
python -m pip install -r requirements.txt
deactivate
pm2 restart mon-bot-python --update-env
Surveillez les premières lignes après le redémarrage :
pm2 logs mon-bot --lines 100
Vérifiez régulièrement :
- les erreurs applicatives ;
- l’utilisation de la mémoire ;
- les mises à jour de sécurité ;
- les dépendances obsolètes ;
- la validité des variables d’environnement ;
- l’espace disque disponible.
Des sauvegardes automatiques sont incluses pour vous aider à restaurer. Conservez aussi vos propres exports réguliers : vous restez responsable de vos données.
Sauvegardez notamment le code non versionné, les fichiers persistants, les bases SQLite et les configurations. Ne sauvegardez pas les secrets dans un emplacement public.
Le guide héberger un bot Discord 24 h/24 et 7 j/7 complète cette procédure avec les principes généraux de mise en production.
En résumé
- Héberger un bot Discord sur un VPS permet de le maintenir actif sans laisser votre ordinateur allumé.
- Connectez-vous avec SSH et mettez à jour le système.
- Installez Node.js avec NVM ou Python avec un environnement virtuel.
- Déployez le code avec
git cloneou, à défaut, avec SCP ou SFTP. - Créez le fichier
.envdirectement sur le VPS et protégez-le avecchmod 600. - Ne commitez jamais le token Discord ou les identifiants de base de données.
- Installez les dépendances avec
npm cioupip install -r requirements.txt. - Testez le bot manuellement avant de le confier à PM2.
- Lancez-le avec
pm2 start, puis configurezpm2 startupetpm2 save. - Mettez le code à jour avec
git pull --ff-only, réinstallez les dépendances et redémarrez le processus. - Consultez régulièrement les logs PM2 et les mises à jour de sécurité.
- Pour héberger un bot Discord sur un VPS hébergé en France avec stockage NVMe, Anti-DDoS L3/L4/L7 inclus et support francophone, découvrez l’offre hébergement bot Discord TalCloud.