irtueBot

Eigene Domain mit Reverse Proxy

VirtueBot unter deiner eigenen Domain mit HTTPS — mit Caddy oder nginx

Eigene Domain mit Reverse Proxy

Wenn du eine eigene Domain für dein Panel nutzen willst, ohne Cloudflare zwischenzuschalten, brauchst du einen Reverse Proxy auf deinem Server. Er nimmt Anfragen von außen an, sorgt für HTTPS und leitet sie an VirtueBot weiter.

Diese Anleitung zeigt zwei Möglichkeiten:

  • Caddy — empfohlen, weil es HTTPS automatisch einrichtet.
  • nginx — wenn du nginx schon laufen hast und dabei bleiben willst.

Plane für die komplette Einrichtung ca. 30 Minuten ein.

Voraussetzungen

  • Eine eigene Domain (z. B. virtuebot.deine-seite.de)
  • Zugang zu den DNS-Einträgen deiner Domain
  • Dein Server ist aus dem Internet auf Port 80 und 443 erreichbar
    • Bei einem Mietserver mit öffentlicher IP: standardmäßig erfüllt
    • Hinter einem Router: Ports 80 und 443 auf den Server weiterleiten (Anleitung dazu beim Router-Hersteller)
  • VirtueBot ist installiert oder du bist gerade mitten im Setup

Schritt 1 — DNS-Eintrag setzen

Trage bei deinem Domain-Anbieter einen A-Eintrag ein, der auf die öffentliche IP-Adresse deines Servers zeigt:

TypNameWert
Avirtuebot (oder wie du es nennen willst)<deine-server-ip>

Bei @ oder leerem Name landet die Domain auf der Wurzel (z. B. deine-seite.de direkt). Bei einem Namen wie virtuebot wird daraus virtuebot.deine-seite.de.

DNS-Änderungen brauchen je nach Anbieter zwischen 5 Minuten und ein paar Stunden, bis sie weltweit sichtbar sind. Du kannst mit dem Tool dig oder einem Online-Dienst wie https://dnschecker.org prüfen, ob deine Adresse schon aufgelöst wird.

Schritt 2 — VirtueBot in den Reverse-Proxy-Modus schalten

Lass den Installer noch einmal laufen (oder wähle es beim ersten Setup):

curl -fsSL https://get.virtuebot.eu/install.sh | sudo bash

In der Konfigurations-Phase wähle Modus 3 (Reverse Proxy mit eigener Domain) und gib deine Domain ohne https:// ein, z. B. virtuebot.deine-seite.de.

Damit weiß VirtueBot, dass es auf eine externe Adresse antworten soll.

Schritt 3a — Caddy einrichten (empfohlen)

Caddy ist ein moderner Webserver, der HTTPS-Zertifikate automatisch von Let's Encrypt holt. Du musst praktisch nichts konfigurieren.

Installation

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install -y caddy

Konfiguration

Öffne die Caddy-Konfigurationsdatei:

sudo nano /etc/caddy/Caddyfile

Lösche den Beispiel-Inhalt und ersetze ihn durch (deine Domain einsetzen!):

virtuebot.deine-seite.de {
    reverse_proxy 127.0.0.1:3000
}

Falls du beim VirtueBot-Setup einen anderen Port gewählt hast (z. B. 3001), nimm den entsprechend.

Speichern (Strg+O, Enter, Strg+X) und Caddy neu laden:

sudo systemctl reload caddy

Beim ersten Aufruf deiner Domain holt sich Caddy das HTTPS-Zertifikat automatisch von Let's Encrypt. Das kann beim ersten Mal eine Minute dauern.

Schritt 3b — nginx einrichten (Alternative)

Wenn du schon nginx laufen hast, kannst du auch den nutzen. HTTPS musst du dann selbst über Certbot einrichten.

Konfiguration

Lege eine neue Site-Datei an:

sudo nano /etc/nginx/sites-available/virtuebot

Inhalt (deine Domain einsetzen!):

server {
    listen 80;
    server_name virtuebot.deine-seite.de;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Site aktivieren und nginx neu laden:

sudo ln -s /etc/nginx/sites-available/virtuebot /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

HTTPS mit Certbot

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d virtuebot.deine-seite.de

Certbot fragt nach deiner Email (für Erneuerungs-Hinweise) und konfiguriert nginx automatisch für HTTPS.

Schritt 4 — Redirect-URL im Discord Developer Portal eintragen

Damit Discord-Logins funktionieren, muss deine Domain als Redirect im Discord Developer Portal stehen:

  1. Öffne https://discord.com/developers/applications und wähle deine VirtueBot-App.

  2. Links auf „OAuth2" → bei „Redirects" auf „Add Another".

  3. Trage ein:

    https://virtuebot.deine-seite.de/api/auth/callback/discord
    

    (mit deiner echten Domain).

  4. „Save Changes" unten klicken.

Die bisherige Redirect-URL (z. B. http://localhost:3000/...) darfst du drin lassen.

Schritt 5 — Testen

  1. Öffne im Browser deine Domain: https://virtuebot.deine-seite.de.
  2. Du landest auf der Anmelde-Seite des Panels.
  3. Klick auf „Anmelden" und logg dich mit Discord ein.

Wenn du danach dein Panel siehst, ist alles fertig eingerichtet.

Was, wenn etwas nicht klappt?

Die Domain wird nicht aufgelöst:

  • DNS-Änderung ist noch nicht durch. Mit dig virtuebot.deine-seite.de oder einem Online-Dienst prüfen. Manchmal dauert es bis zu mehreren Stunden.

Caddy startet nicht / Zertifikat schlägt fehl:

  • Prüfe mit sudo systemctl status caddy, was er meldet.
  • Häufige Ursache: Port 80 ist von etwas anderem belegt (z. B. Apache). Den anderen Dienst stoppen und Caddy neu laden.
  • Bei Firewall: Port 80 und 443 müssen offen sein.

Browser zeigt „502 Bad Gateway":

  • VirtueBot läuft nicht oder lauscht auf einem anderen Port. Mit virtuebot status prüfen.

Login schlägt fehl:

  • Redirect-URL im Discord Developer Portal stimmt nicht mit deiner Domain überein. Vergleich nochmal mit Schritt 4.

Weitere Hilfe: Troubleshooting.

Domain später ändern oder ausschalten

Andere Domain nutzen: Installer noch einmal laufen lassen, in der Konfigurations-Phase Modus 3 wählen und die neue Domain eingeben. Die Caddy- oder nginx-Konfig entsprechend anpassen. Im Discord Developer Portal die neue Redirect-URL ergänzen.

Reverse Proxy komplett ausschalten: Installer noch einmal laufen lassen und Modus 1 (Lokal) wählen. Caddy oder nginx kannst du laufen lassen (sie tun dann nichts mehr für VirtueBot) oder die VirtueBot-Konfig dort wieder entfernen.