Python15. Dezember 2025 24 Aufrufe

Wie man einen Discord-Bot (Python) auf OuiPanel hostet

Wie man einen Discord-Bot (Python) auf OuiPanel hostet

Wie man einen Discord-Bot (Python) auf OuiPanel hostet

Geschätzte Zeit: 15 Minuten
Schwierigkeit: Mittel ⭐⭐
Servertyp: Python


📋 Einführung

Dieser Leitfaden erklärt, wie Sie einen mit discord.py (Python) entwickelten Discord-Bot auf OuiPanel hosten. Ihr Bot wird rund um die Uhr online sein.

Was Sie benötigen

Voraussetzung Beschreibung
🤖 Ein Discord-Bot Erstellt auf dem Discord Developer Portal
🔑 Der Bot-Token Geheimer Schlüssel zur Verbindung Ihres Bots
📁 Die Bot-Dateien Ihr Quellcode (bot.py, requirements.txt, usw.)
🐍 Ein Python-Server Auf OuiHeberg bestellt

🤖 Schritt 1: Bot auf Discord erstellen

Wenn Sie bereits Ihren Bot und seinen Token haben, gehen Sie zum Schritt 2 über.

Anwendung erstellen

  1. Gehen Sie zum Discord Developer Portal
  2. Melden Sie sich mit Ihrem Discord-Konto an
  3. Klicken Sie auf New Application

Bild

  1. Geben Sie Ihrer Anwendung einen Namen (z.B. "Mein Python-Bot")
  2. Akzeptieren Sie die Nutzungsbedingungen
  3. Klicken Sie auf Create

Bild


Token abrufen

Der Token ist der geheime Schlüssel, der es Ihrem Code ermöglicht, sich mit dem Bot zu verbinden.

  1. In der Bot-Sektion finden Sie den TOKEN-Bereich
  2. Klicken Sie auf Reset Token
  3. Bestätigen Sie durch Klicken auf Yes, do it!
  4. Klicken Sie auf Copy, um den Token zu kopierenBild

⚠️ WICHTIG - SICHERHEIT:

  • Der Token ist wie ein Passwort. Teilen Sie ihn NIEMALS!
  • Fügen Sie ihn niemals in öffentlichen Code (GitHub, GitLab, usw.) ein
  • Wenn Ihr Token kompromittiert ist, regenerieren Sie ihn sofort
  • Bewahren Sie ihn sicher für den nächsten Schritt auf

Intents aktivieren

Die Intents ermöglichen es Ihrem Bot, auf bestimmte Informationen zuzugreifen (Nachrichten, Mitglieder, usw.).

  1. Weiterhin in der Bot-Sektion, scrollen Sie bis zu Privileged Gateway Intents
  2. Aktivieren Sie die erforderlichen Intents:
Intent Beschreibung Empfehlung
PRESENCE INTENT Status der Mitglieder anzeigen Optional
SERVER MEMBERS INTENT Auf die Liste der Mitglieder zugreifen Optional
MESSAGE CONTENT INTENT Inhalte von Nachrichten lesen Erforderlich

Bild

  1. Klicken Sie auf Save Changes

⚠️ Wichtig: Ohne MESSAGE CONTENT INTENT kann Ihr Bot nicht den Inhalt von Benutzer-Nachrichten lesen.


Bot auf Ihrem Discord-Server einladen

  1. Klicken Sie im linken Menü auf OAuth2
  2. Klicken Sie auf URL GeneratorBild
  1. In der SCOPES-Sektion, aktivieren Sie:
    • bot

  1. In der BOT PERMISSIONS-Sektion, aktivieren Sie die erforderlichen Berechtigungen:
Berechtigung Beschreibung
Administrator Alle Berechtigungen (einfach aber umfassend)
ODER spezifische Berechtigungen:
Send Messages Nachrichten senden
Read Message History Nachrichtenverlauf lesen
Embed Links Links einbetten
Attach Files Dateien anhängen
Use Slash Commands Slash-Befehle verwenden

Bild

  1. Am Ende der Seite, kopieren Sie die generierte URL

Bild

  1. Öffnen Sie diese URL in Ihrem Browser
  2. Wählen Sie den Server aus, auf dem Sie den Bot einladen möchten
  3. Klicken Sie auf Autoriser
  4. Wenn gefordert, vervollständigen Sie das Captcha

Bild

✅ Ihr Bot erscheint nun in der Mitgliederliste Ihres Servers (vorübergehend offline).


📁 Schritt 2: Vorbereiten der Bot-Dateien

Dateistruktur

Ihr Bot sollte diese Struktur haben:

📁 MonBotPython/
├── 📄 bot.py             ← Hauptdatei (oder main.py, index.py...)
├── 📄 requirements.txt   ← Python-Abhängigkeiten
├── 📄 .env               ← Bot-Token (auf dem Server erstellt)
└── 📁 cogs/              ← (Optional) Modulordner

Datei requirements.txt

Erstellen Sie eine Datei requirements.txt mit den Abhängigkeiten discord.py und python-dotenv:

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

💡 Diese beiden Pakete sind unerlässlich:

  • discord.py: Die Bibliothek zur Interaktion mit Discord
  • python-dotenv: Zum Laden des Tokens aus der Datei .env

Hauptdatei (bot.py)

Erstellen Sie Ihre Hauptdatei mit python-dotenv, um den Token zu laden:

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

# Load environment variables from .env
load_dotenv()

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

# Creating the bot with a prefix
bot = commands.Bot(command_prefix='!', intents=intents)

# Event: Bot ready
@bot.event
async def on_ready():
    print(f'✅ Bot connected as {bot.user.name}')
    print(f'📊 Connected to {len(bot.guilds)} server(s)')

# Command: !ping
@bot.command()
async def ping(ctx):
    """Responds Pong with latency"""
    latency = round(bot.latency * 1000)
    await ctx.send(f'🏓 Pong! Latency: {latency}ms')

# Command: !hello
@bot.command()
async def hello(ctx):
    """Says hello"""
    await ctx.send(f'👋 Hello {ctx.author.name}!')

# Error handling
@bot.event
async def on_command_error(ctx, error):
    if isinstance(error, commands.CommandNotFound):
        await ctx.send('❌ Unknown command.')
    else:
        print(f'Error: {error}')

# Connect with the token from .env
bot.run(os.getenv('DISCORD_TOKEN'))

⚠️ Important: load_dotenv() must be called before using os.getenv().


📤 Step 3: Upload Files to OuiPanel

Using the File Manager

  1. Log in to OuiPanel
  2. Select your Python server
  3. In the side menu, click on File Manager

Image

  1. Delete default files (if any)
  2. Click on Upload
  3. Upload your files:
    • bot.py (or main.py, index.py...)
    • requirements.txt
    • Your folders (cogs/...) if needed

Image

⚠️ Do not upload: The .env file will be created directly on the server in the next step (more secure).


Using SFTP (Recommended for multiple files)

  1. Connect via SFTP with FileZilla
  2. Drag and drop all content from your bot folder
  3. Verify that all files are uploaded correctly

📖 Check the guide "SFTP Access with FileZilla" for detailed instructions.


🔑 Step 4: Create the .env File (Token)

Never put your token directly in the code! Create a .env file on the server.

Create the .env file

  1. In the File Manager, click on New file
  2. Name it .env (with the dot in front)
  3. Add the following content:
# Discord bot token
DISCORD_TOKEN=your_token_here

Image

  1. Replace your_token_here with the token copied in Step 1
  2. Click on Create or Save

Example with a real token (format):

DISCORD_TOKEN=MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.ABcdEF.abcdefghijklmnopqrstuvwxyz123456

Example with multiple variables:

# Discord bot token
DISCORD_TOKEN=MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.ABcdEF.abcdefghijklmnopqrstuvwxyz123456

# Command prefix
PREFIX=!

# Owner ID (optional)
OWNER_ID=123456789012345678

⚠️ Important:

  • No spaces around the =
  • No quotes around the values
  • Never share this file

Final Structure on the Server

📁 Root of the server/
├── 📄 .env               ← Contains DISCORD_TOKEN
├── 📄 bot.py             ← Your code
├── 📄 requirements.txt   ← Dependencies
└── ...

⚙️ Step 5: Configure the Startup File

OuiPanel needs to know which Python file to run at startup.

Accessing the settings

  1. In the side menu, click on Configuration
  2. Click on Server Settings

Image



Configuring the file to run

Locate the File to execute field:

Image

Your main file Value to set
bot.py bot.py
main.py main.py
index.py index.py
app.py app.py
src/bot.py src/bot.py

⚠️ Important: The name must match exactly your file (case-sensitive).


🚀 Step 6: Start the Bot

Launch the server

  1. In the side menu, click on Console
  2. Click on Start

Automatic installation of dependencies

On the first start, the server automatically installs packages from 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 connected as MyBot
📊 Connected to 1 server(s)

Image


✅ Step 7: Verify the Bot is Working

In the OuiPanel Console

You should see:

✅ Bot connected as MyBot
📊 Connected to 1 server(s)

On Discord

  1. Open Discord
  2. Go to the server where you invited the bot
  3. Your bot should appear online (green dot)
  4. Test a command: !ping
  5. The bot responds: 🏓 Pong! Latency: XXms

Image


🔧 Troubleshooting

The bot doesn't start

❌ Error ✅ Solution
ModuleNotFoundError: No module named 'discord' Check requirements.txt and restart
ModuleNotFoundError: No module named 'dotenv' Add python-dotenv to requirements.txt
FileNotFoundError: bot.py Incorrect startup file configured
SyntaxError Error in your Python code

Tokenfehler

❌ Fehler ✅ Lösung
LoginFailure: Improper token has been passed Überprüfen Sie den Token in .env
HTTPException: 401 Unauthorized Ungültiger Token, regenerieren Sie ihn
PrivilegedIntentsRequired Aktivieren Sie die Intents im Discord-Portal

Der Bot liest keine Nachrichten

❌ Ursache ✅ Lösung
MESSAGE CONTENT INTENT deaktiviert Aktivieren Sie es im Discord-Portal
Falsch konfigurierte Intents im Code Fügen Sie intents.message_content = True hinzu

Überprüfen Sie Ihren Code:

intents = discord.Intents.default()
intents.message_content = True  # Diese Zeile ist erforderlich!

Die .env-Datei wird nicht gelesen

❌ Ursache ✅ Lösung
python-dotenv nicht installiert Überprüfen Sie requirements.txt
load_dotenv() nicht aufgerufen Fügen Sie load_dotenv() vor os.getenv() hinzu
Falscher Dateiname Die Datei muss genau .env heißen
Falsches Format Keine Leerzeichen um das =

pip install fehlgeschlagen

❌ Fehler ✅ Lösung
requirements.txt not found Stellen Sie sicher, dass die Datei im Stammverzeichnis liegt
Could not find a version Überprüfen Sie die Namen und Versionen der Pakete

🔒 Sicherheit der .env-Datei

✅ Zu tun ❌ Nicht tun
Halten Sie .env nur auf dem Server Teilen Sie .env nicht
Erstellen Sie .env direkt auf OuiPanel Den Token im Code speichern
Fügen Sie .env zur .gitignore hinzu Commiten Sie .env auf GitHub

Empfohlene .gitignore-Datei:

# Umgebungsvariablen
.env
.env.local

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

💡 Best Practices

Sicherheit

  • Teilen Sie niemals Ihren Token
  • ✅ Erstellen Sie die .env direkt auf dem Server
  • ✅ Regenerieren Sie den Token bei Kompromittierung

Leistung

  • ✅ Aktivieren Sie nur die notwendigen Intents
  • ✅ Verwenden Sie commands.Bot anstelle von discord.Client für Befehle
  • ✅ Verwenden Sie Cogs, um Ihren Code zu organisieren

Code

  • ✅ Behandeln Sie Fehler mit try/except
  • ✅ Fügen Sie Logs mit print() oder dem Modul logging hinzu
  • ✅ Verwenden Sie Cogs für umfangreiche Bots

📂 Fortgeschrittene Struktur mit Cogs (Empfohlen)

Für einen organisierteren Bot:

📁 MonBotPython/
├── 📄 bot.py               ← Einstiegspunkt
├── 📄 requirements.txt
├── 📄 .env                 ← Auf dem Server erstellt
├── 📁 cogs/
│   ├── 📄 moderation.py    ← Moderationsbefehle
│   ├── 📄 fun.py           ← Spaßbefehle
│   └── 📄 utility.py       ← Hilfsbefehle
└── 📄 config.py            ← Nicht sensible Konfiguration

Beispiel für bot.py mit 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)

# Lade die Cogs beim Start
@bot.event
async def on_ready():
    print(f'✅ Bot verbunden als {bot.user.name}')
    
    # Lade die Cogs
    for filename in os.listdir('./cogs'):
        if filename.endswith('.py'):
            await bot.load_extension(f'cogs.{filename[:-3]}')
            print(f'📦 Cog geladen: {filename}')

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

Beispiel für ein 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):
        """Antwortet mit Pong!"""
        latency = round(self.bot.latency * 1000)
        await ctx.send(f'🏓 Pong! Latenz: {latency}ms')
    
    @commands.command()
    async def hello(self, ctx):
        """Sagt Hallo"""
        await ctx.send(f'👋 Hallo {ctx.author.name}!')

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

📝 Zusammenfassung

1. Erstellen Sie den Bot auf dem Discord Developer Portal
2. Holen Sie sich den Token (Token zurücksetzen → Kopieren)
3. Aktivieren Sie MESSAGE CONTENT INTENT
4. Laden Sie den Bot ein (OAuth2 → URL-Generator → Bot + Anwendungen.Befehle)
5. Bereiten Sie die Dateien vor (bot.py + requirements.txt mit python-dotenv)
6. Laden Sie die Dateien auf OuiPanel hoch (ohne die .env-Datei)
7. Erstellen Sie die .env-Datei auf dem Server mit dem Token
8. Konfigurieren Sie die Startdatei (bot.py, main.py...)
9. Starten Sie den Server
10. Überprüfen Sie, ob der Bot auf Discord online ist → !ping