Service einrichten
Diese Anleitung erklärt, wie du den MSK Transcript Service für deinen selbst-gehosteten Bot einrichtest.
Der Service speichert Ticket-Transkripte online und macht sie über einen öffentlichen Link abrufbar.
Premium-Nutzer können Transkripte zusätzlich unter ihrer eigenen Domain bereitstellen.
1. Was ist der Transcript Service?
Wenn ein Ticket geschlossen wird, generiert der Bot ein vollständiges HTML-Transkript aller Nachrichten.
Ohne konfigurierten API Key wird das Transkript wie bisher als Dateianhang per DM versendet.
Mit dem MSK Transcript Service wird das Transkript stattdessen auf www.msk-scripts.de hochgeladen
und ein öffentlicher Link zurückgegeben. Nutzer können das Transkript direkt im Browser öffnen.
Premium-Nutzer erhalten zusätzlich herunterladbare Dateianhänge im Transkript und können eine
eigene Domain konfigurieren, sodass Transkripte unter ihrer eigenen URL abrufbar sind.
2. Abo-Modelle im Überblick
| Feature | Basic (kostenlos) | Premium (3,99 €/Monat) | Premium+ (6,99 €/Monat) | Business (9,99 €/Monat) |
|---|---|---|---|---|
| Transkript als Link | ✅ | ✅ | ✅ | ✅ |
| Max. Transkriptgröße | 10 MB | 50 MB | 100 MB | 200 MB |
| Dateianhänge im Transkript | ❌ | ✅ | ✅ | ✅ |
| Max. Anhangsgröße pro Ticket | — | 100 MB | 200 MB | 500 MB |
| Eigene Domain | ❌ | ✅ | ✅ | ✅ |
| Speicherdauer | 30 Tage | 180 Tage | 365 Tage | 10 Jahre |
| Uploads pro Stunde | 30 | 60 | 300 | 300 |
| MSK-Hinweis entfernen | ❌ | ✅ | ✅ | ✅ |
| Gehostetes Bot-Management | ❌ | ✅ | ✅ | ✅ |
Die bezahlten Stufen werden im Dashboard über Stripe abonniert, mit 14 Tagen kostenloser Testphase, ohne Kreditkarte,
für Neukunden (jederzeit kündbar). Verwaltung/Kündigung jederzeit über das Stripe-Kundenportal.
3. Schritt 1 – Stripe einrichten (Abos)
Zweck: Premium und Premium+ werden über Stripe abgerechnet. Dieser Schritt ist nur nötig,
wenn du die Website selbst hostest. Auf dem offiziellen msk-scripts.de ist alles bereits eingerichtet.
Anleitung
-
Im Stripe-Dashboard → Produkte zwei Produkte mit je einem monatlichen wiederkehrenden Preis anlegen:
Ticketbot Premium→ 3,99 € / MonatTicketbot Premium+→ 6,99 € / MonatTicketbot Business→ 9,99 € / Monat
Kopiere jeweils die Price-ID (
price_…). Am Preis keine Testphase einstellen, die 14-Tage-Testphase wird im Code automatisch für Neukunden angewendet. -
Entwickler → API-Schlüssel → Geheimen Schlüssel (
sk_…) kopieren. -
Einstellungen → Abrechnung → Kundenportal → aktivieren (Kündigung + Tarifwechsel erlauben).
-
Entwickler → Webhooks → Endpunkt
https://www.msk-scripts.de/api/webhook/stripemit den Eventscheckout.session.completed,customer.subscription.created/updated/deleted,invoice.payment_succeeded,invoice.payment_failedanlegen. Signing-Secret (whsec_…) kopieren.
Wo eintragen
Diese Werte kommen in die .env.local auf dem Webserver (nicht in die Bot-.env):
STRIPE_SECRET_KEY=sk_live_xxx
STRIPE_WEBHOOK_SECRET=whsec_xxx
STRIPE_PRICE_PREMIUM=price_xxx
STRIPE_PRICE_PREMIUM_PLUS=price_xxx
4. Schritt 2 – Discord OAuth App erstellen
Zweck: Die Website liest deine Discord-Server-Liste, damit du auswählen kannst,
für welchen Server der API Key gelten soll.
Anleitung
- Öffne discord.com/developers/applications
- Klicke auf „New Application"
- Vergib einen Namen, z.B.
MSK Ticket Verify - Klicke links auf „OAuth2"
- Klicke unter „Redirects" auf „Add Redirect" und trage ein:
https://www.msk-scripts.de/api/auth/discord-verify/callback
- Klicke auf „Save Changes"
- Kopiere die Client ID auf der OAuth2-Seite
- Klicke auf „Reset Secret" und kopiere das Client Secret
Wo eintragen
DISCORD_VERIFY_CLIENT_ID=deine_client_id_hier
DISCORD_VERIFY_CLIENT_SECRET=dein_client_secret_hier
⚠️ Dies ist eine separate App vom Discord-Bot selbst.
Verwende hier nicht den Bot-Token, nur Client ID und Secret.
5. Schritt 3 – Verifizierung auf der Website
Dieser Prozess muss einmalig pro Server von einem Server-Administrator durchgeführt werden.
5.1 Website aufrufen
Öffne www.msk-scripts.de/ticketbot/verify in deinem Browser.
5.2 Discord verbinden
Klicke auf „Mit Discord anmelden".
Du wirst zu Discord weitergeleitet, klicke dort auf „Autorisieren".
Die App benötigt zwei Berechtigungen:
identify: damit dein Discord-Account erkannt werden kannguilds: damit deine Server-Liste angezeigt werden kann
5.3 Server auswählen
Du siehst nun eine Liste aller Discord-Server, auf denen du Administrator-Rechte hast.
Wähle den Server aus, für den du den API Key haben möchtest, und klicke auf „API Key generieren".
ℹ️ Jeder Server benötigt einen eigenen API Key.
Wenn du mehrere Server betreust, führe den Prozess für jeden Server separat durch.
5.4 API Key speichern
Nach der Generierung wird dein persönlicher API Key angezeigt.
Kopiere ihn sofort, er wird nicht erneut angezeigt.
MSK_API_KEY=a1b2c3d4e5f6...
⚠️ Wichtig: Wenn du den Verify-Prozess für denselben Server erneut durchläufst,
wird ein neuer API Key generiert und der alte wird sofort ungültig.
Du musst den neuen Key in der.envdeines Bots eintragen und den Bot neu starten.
🔒 Teile diesen Key mit niemandem. Wer ihn kennt, kann Transkripte in deinem Namen hochladen.
✅ Du kannst diese Seite schließen, sobald du den Key sicher kopiert hast.
6. Schritt 4 – API Key in den Bot eintragen
Öffne die .env-Datei in deinem Bot-Ordner und trage ein:
MSK_API_KEY="dein_api_key_hier"
MSK_API_URL="https://www.msk-scripts.de"
Starte den Bot danach neu.
7. Schritt 5 – Eigene Domain einrichten (Premium)
Dieser Schritt ist nur für Premium und Premium+ verfügbar.
Basic-Nutzer können diesen Schritt überspringen.
Mit einer eigenen Domain sind Transkripte unter deiner URL abrufbar,
z.B. https://tickets.deinserver.de/... statt https://www.msk-scripts.de/...
7.1 Dashboard aufrufen
Klicke nach der Verifizierung auf „Zum Dashboard",
oder öffne direkt www.msk-scripts.de/ticketbot/dashboard.
7.2 Domain eintragen

Im Bereich „Eigene Domain" trägst du deine gewünschte Domain ein, z.B.:
tickets.deinserver.de
Klicke auf „Setzen". Falls der DNS noch nicht korrekt gesetzt ist, werden die DNS-Anweisungen angezeigt.
7.3 DNS A-Record setzen
Melde dich bei deinem Domain-Anbieter an (z.B. Cloudflare, IONOS, Namecheap) und erstelle einen A-Record:
| Typ | Name | Ziel (IP) |
|---|---|---|
A | tickets (oder @ für die Root-Domain) | Die im Dashboard angezeigte IP-Adresse |
⏱ DNS-Änderungen können bis zu 24 Stunden dauern.
Die meisten Anbieter verarbeiten Änderungen jedoch innerhalb weniger Minuten bis einer Stunde.
7.4 DNS prüfen und aktivieren
Sobald die DNS-Propagierung abgeschlossen ist, klicke im Dashboard auf „DNS prüfen".
Falls die Domain korrekt auf den Server zeigt, wird sie automatisch aktiviert:
- Ein Apache2 VirtualHost wird auf dem Server erstellt
- Ein kostenloses SSL-Zertifikat (Let's Encrypt) wird über Certbot eingerichtet
- Deine Transkripte sind sofort unter deiner Domain abrufbar
7.5 Domain entfernen
Um eine eigene Domain zu entfernen, klicke im Dashboard auf das Papierkorb-Symbol neben der aktiven Domain.
Der VirtualHost wird vom Server entfernt und Transkripte sind wieder über die Standard-URL abrufbar.
8. Schritt 6 – Gehostetes Bot-Management (Premium, Premium+ & Business)
Dieser Schritt ist nur für bezahlte Abos gedacht, die den Bot von uns betreiben lassen wollen. Basic-Nutzer und alle, die ihn gern selbst betreiben, können ihn überspringen.
Du richtest das Hosting selbst im Dashboard ein. Kein SSH-Zugang, kein Server-Wissen, und kein Ticket, das du vorher aufmachen musst.

Einrichtung
-
msk-scripts.de/ticketbot/dashboard öffnen und auf den Tab Bot Hosting wechseln.
-
Drei Werte aus dem Discord Developer Portal eintragen:
Wert Wo er steht Bot-Token Deine Anwendung → Bot → Token. Discord zeigt einen Token nur ein einziges Mal, nimm also Reset Token, falls du ihn noch nie angezeigt hast. Client ID Deine Anwendung → OAuth2 → Client ID Client Secret Deine Anwendung → OAuth2 → Client Secret Alles andere, von der Guild-ID über den API-Key bis zu Ports und Session-Secrets, füllen wir aus.
-
Auf Bot Hosting aktivieren drücken. Wir installieren den Bot, starten ihn und prüfen, ob er wirklich hochgekommen ist. Die Installation dauert ein paar Minuten, du kannst die Seite währenddessen schließen.
-
Redirect-URL eintragen. Das Dashboard zeigt dir eine Adresse wie
https://tickets-a3f9c1b408d2.msk-scripts.de/auth/callback. Trag sie im Developer Portal unter OAuth2 → Redirects ein. Das kann nur du, und ohne sie funktioniert der Login in das Dashboard deines Bots nicht.
Kommt der Bot nicht hoch, bekommst du sein eigenes Log zurück und kannst den Wert direkt korrigieren. Neu installiert wird dafür nichts, er wird nur neu gestartet.
Was verfügbar ist

| Feature | Beschreibung |
|---|---|
| Eine eigene Adresse | Das Dashboard deines Bots läuft unter tickets-<id>.msk-scripts.de oder unter einer eigenen Domain, die du im Tab Custom Domain hinterlegst. Das TLS-Zertifikat ist in beiden Fällen dabei. |
| Ein Login für dein Team | Dieses Dashboard hat einen eigenen Discord-Login. Dein Team meldet sich mit dem eigenen Konto an und sieht genau das, was seine Rechte erlauben. Genau das konnte die alte Lösung nicht: dort kam nur der Server-Besitzer hinein. |
| Bot-Steuerung | Bot per Klick starten, stoppen und neu starten. |
| Update per Klick | Lädt die neueste Version via git pull und installiert neue Abhängigkeiten. Danach ist ein Neustart erforderlich. |
| Live-Log-Konsole | Echtzeit-Stream der Bot-Ausgabe direkt im Browser. |
| Zugangsdaten-Formular | Token oder Client Secret ohne Terminal korrigieren. Das zählt genau dann, wenn der Bot unten ist, denn dann ist sein eigenes Dashboard das, was du nicht erreichst. |
Wieder entfernen
Hosting entfernen im selben Tab stoppt den Bot, nimmt seine Adresse vom Netz und archiviert die Installation. Das Archiv wird nach 14 Tagen endgültig gelöscht.
Innerhalb dieser 14 Tage fragt eine erneute Aktivierung, ob du die alte Installation zurückhaben willst. Ein Klick holt sie samt Tickets, Einstellungen und derselben Adresse zurück, du musst das Discord Developer Portal also kein zweites Mal anfassen.
9. Konsolenausgabe beim Start
Beim Start siehst du folgende Ausgabe im Terminal:
███╗ ███╗███████╗██╗ ██╗
████╗ ████║██╔════╝██║ ██╔╝
██╔████╔██║███████╗█████╔╝
██║╚██╔╝██║╚════██║██╔═██╗
██║ ╚═╝ ██║███████║██║ ██╗
╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
████████╗██╗ ██████╗██╗ ██╗███████╗████████╗ ██████╗ ██████╗ ████████╗
...
https://github.com/MSK-Scripts/discord_ticketbot
Checking for updates... up to date (v2.0.0)
Checking API Key... API key valid → Premium+
Connecting to Discord...
[INFO] Database initialized.
[INFO] Commands loaded...
[OK ] Slash commands registered successfully.
...
[OK ] Logged in as BotName#1234
[INFO] Serving 1 guild(s).
[INFO] Status set: WATCHING "Support Tickets"
✔ MSK Ticket Bot successfully started!
──────────────────────────────────────────
Bot BotName#1234
Guilds 1
Commands 19
Tipp: Um Farben beim Betrieb als systemd-Service zu sehen:
journalctl -u ticketbot.service -f --output=cat
Mögliche API Key Ergebnisse
| Ausgabe | Bedeutung |
|---|---|
No API key configured → Basic | Kein MSK_API_KEY in der .env eingetragen |
Invalid API key → Basic | Der Key ist falsch oder wurde neu generiert |
MSK server unreachable → Basic | www.msk-scripts.de ist vorübergehend nicht erreichbar |
API key valid → Premium | ✅ Premium aktiv |
API key valid → Premium+ | ✅ Premium+ aktiv |