Serveurs de jeux & OuiPanel15 décembre 2025 7 vues

Comment héberger un bot Discord (Python) sur OuiPanel

Comment héberger un bot Discord (Python) sur OuiPanel

Comment Héberger un Bot Discord (Python) sur OuiPanel

Temps estimé : 15 minutes
Difficulté : Intermédiaire ⭐⭐
Type de serveur : Python


📋 Introduction

Ce guide vous explique comment héberger un bot Discord développé avec discord.py (Python) sur OuiPanel. Votre bot sera en ligne 24h/24, 7j/7.

Ce dont vous avez besoin

Prérequis Description
🤖 Un bot Discord Créé sur le Portail Développeur Discord
🔑 Le token du bot Clé secrète pour connecter votre bot
📁 Les fichiers du bot Votre code source (bot.py, requirements.txt, etc.)
🐍 Un serveur Python Commandé sur OuiHeberg

🤖 Étape 1 : Créer le Bot sur Discord

Si vous avez déjà votre bot et son token, passez à l'étape 2.

Créer l'application

  1. Rendez-vous sur le Portail Développeur Discord
  2. Connectez-vous avec votre compte Discord
  3. Cliquez sur New Application

Image

  1. Donnez un nom à votre application (ex: "Mon Bot Python")
  2. Acceptez les conditions d'utilisation
  3. Cliquez sur Create

Image


Récupérer le Token

Le token est la clé secrète qui permet à votre code de se connecter au bot.

  1. Dans la section Bot, trouvez la zone TOKEN
  2. Cliquez sur Reset Token
  3. Confirmez en cliquant sur Yes, do it!
  4. Cliquez sur Copy pour copier le tokenImage

⚠️ IMPORTANT - SÉCURITÉ :

  • Le token est comme un mot de passe. Ne le partagez JAMAIS !
  • Ne le mettez jamais dans du code public (GitHub, GitLab, etc.)
  • Si votre token est compromis, régénérez-le immédiatement
  • Gardez-le dans un endroit sûr pour l'étape suivante

Activer les Intents

Les Intents permettent à votre bot d'accéder à certaines informations (messages, membres, etc.).

  1. Toujours dans la section Bot, descendez jusqu'à Privileged Gateway Intents
  2. Activez les intents nécessaires :
Intent Description Recommandation
PRESENCE INTENT Voir le statut des membres Optionnel
SERVER MEMBERS INTENT Accéder à la liste des membres Optionnel
MESSAGE CONTENT INTENT Lire le contenu des messages Requis

Image

  1. Cliquez sur Save Changes

⚠️ Important : Sans MESSAGE CONTENT INTENT, votre bot ne pourra pas lire le contenu des messages des utilisateurs.


Inviter le Bot sur votre Serveur Discord

  1. Dans le menu de gauche, cliquez sur OAuth2
  2. Cliquez sur URL GeneratorImage
  1. Dans la section SCOPES, cochez :
    • bot

  1. Dans la section BOT PERMISSIONS, cochez les permissions nécessaires :
Permission Description
Administrator Toutes les permissions (simple mais large)
OU permissions spécifiques :
Send Messages Envoyer des messages
Read Message History Lire l'historique
Embed Links Envoyer des embeds
Attach Files Envoyer des fichiers
Use Slash Commands Utiliser les commandes slash

Image

  1. En bas de la page, copiez l'URL générée

Image

  1. Ouvrez cette URL dans votre navigateur
  2. Sélectionnez le serveur où inviter le bot
  3. Cliquez sur Autoriser
  4. Complétez le captcha si demandé

Image

✅ Votre bot apparaît maintenant dans la liste des membres de votre serveur (hors ligne pour l'instant).


📁 Étape 2 : Préparer les Fichiers du Bot

Structure des fichiers

Votre bot doit avoir cette structure :

📁 MonBotPython/
├── 📄 bot.py             ← Fichier principal (ou main.py, index.py...)
├── 📄 requirements.txt   ← Dépendances Python
├── 📄 .env               ← Token du bot (créé sur le serveur)
└── 📁 cogs/              ← (Optionnel) Dossier des modules

Fichier requirements.txt

Créez un fichier requirements.txt avec les dépendances discord.py et python-dotenv :

audioop-lts==0.2.1
discord.py==2.3.2
python-dotenv==1.0.0

💡 Ces deux packages sont essentiels :

  • discord.py : La bibliothèque pour interagir avec Discord
  • python-dotenv : Pour charger le token depuis le fichier .env

Fichier principal (bot.py)

Créez votre fichier principal avec python-dotenv pour charger le token :

import os
import discord
from discord.ext import commands
from dotenv import load_dotenv

# Charger les variables d'environnement depuis .env
load_dotenv()

# Configuration des intents
intents = discord.Intents.default()
intents.message_content = True

# Création du bot avec un prefix
bot = commands.Bot(command_prefix='!', intents=intents)

# Événement : Bot prêt
@bot.event
async def on_ready():
    print(f'✅ Bot connecté en tant que {bot.user.name}')
    print(f'📊 Connecté à {len(bot.guilds)} serveur(s)')

# Commande : !ping
@bot.command()
async def ping(ctx):
    """Répond Pong avec la latence"""
    latence = round(bot.latency * 1000)
    await ctx.send(f'🏓 Pong ! Latence : {latence}ms')

# Commande : !hello
@bot.command()
async def hello(ctx):
    """Dit bonjour"""
    await ctx.send(f'👋 Bonjour {ctx.author.name} !')

# Gestion des erreurs
@bot.event
async def on_command_error(ctx, error):
    if isinstance(error, commands.CommandNotFound):
        await ctx.send('❌ Commande inconnue.')
    else:
        print(f'Erreur : {error}')

# Connexion avec le token depuis .env
bot.run(os.getenv('DISCORD_TOKEN'))

⚠️ Important : load_dotenv() doit être appelé avant d'utiliser os.getenv().


📤 Étape 3 : Uploader les Fichiers sur OuiPanel

Via le Gestionnaire de Fichiers

  1. Connectez-vous à OuiPanel
  2. Sélectionnez votre serveur Python
  3. Dans le menu latéral, cliquez sur Gestionnaire de fichiers

Image

  1. Supprimez les fichiers par défaut (s'il y en a)
  2. Cliquez sur Envoyer (Upload)
  3. Uploadez vos fichiers :
    • bot.py (ou main.py, index.py...)
    • requirements.txt
    • Vos dossiers (cogs/...) si nécessaire

Image

⚠️ Ne pas uploader : Le fichier .env sera créé directement sur le serveur à l'étape suivante (plus sécurisé).


Via SFTP (Recommandé pour plusieurs fichiers)

  1. Connectez-vous en SFTP avec FileZilla
  2. Glissez-déposez tout le contenu de votre dossier bot
  3. Vérifiez que tous les fichiers sont bien uploadés

📖 Consultez le guide "Accès SFTP avec FileZilla" pour les instructions détaillées.


🔑 Étape 4 : Créer le Fichier .env (Token)

Ne mettez jamais votre token directement dans le code ! Créez un fichier .env sur le serveur.

Créer le fichier .env

  1. Dans le Gestionnaire de fichiers, cliquez sur Nouveau fichier
  2. Nommez-le .env (avec le point devant)
  3. Ajoutez le contenu suivant :
# Token du bot Discord
DISCORD_TOKEN=votre_token_ici

Image

  1. Remplacez votre_token_ici par le token copié à l'Étape 1
  2. Cliquez sur Créer ou Enregistrer

Exemple avec un vrai token (format) :

DISCORD_TOKEN=MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.ABcdEF.abcdefghijklmnopqrstuvwxyz123456

Exemple avec plusieurs variables :

# Token du bot Discord
DISCORD_TOKEN=MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.ABcdEF.abcdefghijklmnopqrstuvwxyz123456

# Prefix des commandes
PREFIX=!

# ID du propriétaire (optionnel)
OWNER_ID=123456789012345678

⚠️ Important :

  • Pas d'espaces autour du =
  • Pas de guillemets autour des valeurs
  • Ne partagez jamais ce fichier

Structure finale sur le serveur

📁 Racine du serveur/
├── 📄 .env               ← Contient DISCORD_TOKEN
├── 📄 bot.py             ← Votre code
├── 📄 requirements.txt   ← Dépendances
└── ...

⚙️ Étape 5 : Configurer le Fichier de Démarrage

OuiPanel doit savoir quel fichier Python exécuter au démarrage.

Accéder aux paramètres

  1. Dans le menu latéral, cliquez sur Configuration
  2. Cliquez sur Paramètres du serveur

Image



Configurer le fichier à exécuter

Repérez le champ Fichier à exécuter (ou Main File / Startup File) :

Image

Votre fichier principal Valeur à mettre
bot.py bot.py
main.py main.py
index.py index.py
app.py app.py
src/bot.py src/bot.py

⚠️ Important : Le nom doit correspondre exactement à votre fichier (sensible à la casse).


🚀 Étape 6 : Démarrer le Bot

Lancer le serveur

  1. Dans le menu latéral, cliquez sur Console
  2. Cliquez sur Démarrer

Installation automatique des dépendances

Au premier démarrage, le serveur installe automatiquement les packages depuis requirements.txt :

Installing requirements from requirements.txt...
Collecting discord.py==2.3.2
Collecting python-dotenv==1.0.0
Successfully installed discord.py-2.3.2 python-dotenv-1.0.0

Running bot.py...
✅ Bot connecté en tant que MonBot
📊 Connecté à 1 serveur(s)

Image


✅ Étape 7 : Vérifier que le Bot Fonctionne

Dans la Console OuiPanel

Vous devriez voir :

✅ Bot connecté en tant que MonBot
📊 Connecté à 1 serveur(s)

Sur Discord

  1. Ouvrez Discord
  2. Allez sur le serveur où vous avez invité le bot
  3. Votre bot devrait apparaître en ligne (point vert)
  4. Testez une commande : !ping
  5. Le bot répond : 🏓 Pong ! Latence : XXms

Image


🔧 Dépannage

Le bot ne démarre pas

❌ Erreur ✅ Solution
ModuleNotFoundError: No module named 'discord' Vérifiez requirements.txt et redémarrez
ModuleNotFoundError: No module named 'dotenv' Ajoutez python-dotenv dans requirements.txt
FileNotFoundError: bot.py Mauvais fichier de démarrage configuré
SyntaxError Erreur dans votre code Python

Erreur de Token

❌ Erreur ✅ Solution
LoginFailure: Improper token has been passed Vérifiez le token dans .env
HTTPException: 401 Unauthorized Token invalide, régénérez-le
PrivilegedIntentsRequired Activez les intents sur le portail Discord

Le bot ne lit pas les messages

❌ Cause ✅ Solution
MESSAGE CONTENT INTENT désactivé Activez-le sur le portail Discord
Intents mal configurés dans le code Ajoutez intents.message_content = True

Vérifiez votre code :

intents = discord.Intents.default()
intents.message_content = True  # Cette ligne est obligatoire !

Le fichier .env n'est pas lu

❌ Cause ✅ Solution
python-dotenv pas installé Vérifiez requirements.txt
load_dotenv() pas appelé Ajoutez load_dotenv() avant os.getenv()
Fichier mal nommé Le fichier doit s'appeler exactement .env
Mauvais format Pas d'espaces autour du =

pip install échoue

❌ Erreur ✅ Solution
requirements.txt not found Vérifiez que le fichier est à la racine
Could not find a version Vérifiez les noms et versions des packages

🔒 Sécurité du fichier .env

✅ À faire ❌ À ne pas faire
Garder le .env uniquement sur le serveur Partager le .env
Créer le .env directement sur OuiPanel Mettre le token dans le code
Ajouter .env au .gitignore Commit le .env sur GitHub

Fichier .gitignore recommandé :

# Variables d'environnement
.env
.env.local

# Python
__pycache__/
*.py[cod]
venv/

💡 Bonnes Pratiques

Sécurité

  • Ne partagez jamais votre token
  • ✅ Créez le .env directement sur le serveur
  • ✅ Régénérez le token si compromis

Performance

  • ✅ N'activez que les intents nécessaires
  • ✅ Utilisez commands.Bot plutôt que discord.Client pour les commandes
  • ✅ Utilisez les Cogs pour organiser votre code

Code

  • ✅ Gérez les erreurs avec try/except
  • ✅ Ajoutez des logs avec print() ou le module logging
  • ✅ Utilisez des Cogs pour les gros bots

📂 Structure Avancée avec Cogs (Recommandée)

Pour un bot plus organisé :

📁 MonBotPython/
├── 📄 bot.py               ← Point d'entrée
├── 📄 requirements.txt
├── 📄 .env                 ← Créé sur le serveur
├── 📁 cogs/
│   ├── 📄 moderation.py    ← Commandes de modération
│   ├── 📄 fun.py           ← Commandes fun
│   └── 📄 utility.py       ← Commandes utilitaires
└── 📄 config.py            ← Configuration non sensible

Exemple de bot.py avec Cogs :

import os
import discord
from discord.ext import commands
from dotenv import load_dotenv

load_dotenv()

intents = discord.Intents.default()
intents.message_content = True

bot = commands.Bot(command_prefix='!', intents=intents)

# Charger les cogs au démarrage
@bot.event
async def on_ready():
    print(f'✅ Bot connecté en tant que {bot.user.name}')
    
    # Charger les cogs
    for filename in os.listdir('./cogs'):
        if filename.endswith('.py'):
            await bot.load_extension(f'cogs.{filename[:-3]}')
            print(f'📦 Cog chargé : {filename}')

bot.run(os.getenv('DISCORD_TOKEN'))

Exemple de cog (cogs/fun.py) :

import discord
from discord.ext import commands

class Fun(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
    
    @commands.command()
    async def ping(self, ctx):
        """Répond Pong !"""
        latence = round(self.bot.latency * 1000)
        await ctx.send(f'🏓 Pong ! Latence : {latence}ms')
    
    @commands.command()
    async def hello(self, ctx):
        """Dit bonjour"""
        await ctx.send(f'👋 Bonjour {ctx.author.name} !')

async def setup(bot):
    await bot.add_cog(Fun(bot))

📝 Récapitulatif

1. Créer le bot sur Discord Developer Portal
2. Récupérer le Token (Reset Token → Copy)
3. Activer MESSAGE CONTENT INTENT
4. Inviter le bot (OAuth2 → URL Generator → bot + applications.commands)
5. Préparer les fichiers (bot.py + requirements.txt avec python-dotenv)
6. Uploader les fichiers sur OuiPanel (sans le .env)
7. Créer le fichier .env sur le serveur avec le token
8. Configurer le fichier de démarrage (bot.py, main.py...)
9. Démarrer le serveur
10. Vérifier que le bot est en ligne sur Discord → !ping