4 Installation
darksoon edited this page 2026-05-07 22:13:47 +02:00

Installation & Deployment

Voraussetzungen

  • Pelican Panel mit Node.js Egg (Node 20+)
  • Discord Bot Token (Developer Portal)
  • Bot mit: Presence Intent, Server Members Intent, Message Content Intent
  • Datenbank — Default SQLite (kein Setup nötig). Optional: MySQL / MariaDB / PostgreSQL

Schritt 1 — Discord Bot erstellen

  1. discord.com/developers/applicationsNew Application
  2. Links auf BotAdd Bot
  3. Public Bot deaktivieren
  4. Alle drei Intents aktivieren
  5. Token kopieren

Schritt 2 — Pelican Panel

Egg: pelican-egg.json (im GrumpyCore Repo)

Docker Image:  ghcr.io/parkervcp/yolks:nodejs_20
Startup:       npm install --omit=dev && npm run db:push && node index.js
RAM:           512 MB empfohlen

Umgebungsvariablen im Pelican Panel (alle optional):

Variable Default Beschreibung
DATABASE_PROVIDER sqlite sqlite / mysql / mariadb / postgres
DATABASE_URL file:./grumpy.db Verbindungs-URL — Fallback auf SQLite, keine .env mehr nötig

Eine .env-Datei ist nicht erforderlich. Token, guildId, Channels und Rollen liegen alle in configs/config.yml.


Schritt 3 — Dateien hochladen

src/          ← Sapphire-Quellcode (Listener, Commands, Modules)
index.js      ← Root-Einstiegspunkt
package.json
prisma/       ← Datenbank-Schema
scripts/      ← prisma-setup.js

configs/ und grumpy.db werden beim ersten Start automatisch erstellt.


Schritt 4 — Ersten Start

  1. Bot starten — Prisma generiert das Schema und migriert die Datenbank
  2. Beim ersten Start zeigt der Bot eine Setup-Status-Tabelle:
═══════════════════════════════════════════════════════
  GrumpyCore — Setup Status
═══════════════════════════════════════════════════════
  ✅ Connected to: Minetechworld.de (13 members)

  Modules:    welcome 🟢  mod 🟢  tickets 🟢  news 🟢

  Channels:   ✅ welcome ✅ verify ✅ mod-log ✅ alert
              ✅ staff   ✅ ticket-log ✅ news

  Roles:      ✅ unverified ✅ member  ✅ support

  Panels deployed:
    ✅ verify-panel    msg 1234...
    ✅ support         msg 5678...
═══════════════════════════════════════════════════════
  1. Fehlende IDs in configs/config.yml eintragen → Configuration
  2. Bot neu starten
  3. Verify- und Ticket-Panel werden automatisch in den konfigurierten Channels gepostet — keine /welcome setup-verify oder /tickets setup-panel mehr nötig

Wird ein gespeichertes Panel gelöscht, erkennt der Bot das beim nächsten Start und postet das Panel neu. Manuelles Re-Deploy via /welcome setup-verify / /tickets setup-panel bleibt verfügbar.

Upgrade-Hinweis: Beim Update auf eine neuere Bot-Version musst du configs/config.yml nicht manuell anpassen. Der Config Auto-Heal fügt fehlende Addon-Toggles und Channel-Felder beim Start automatisch hinzu und entfernt deprecated Sections (z.B. message-ids:). Werte und Kommentare bleiben erhalten — siehe Configuration.


Console-Commands

Direkt im Pelican-Konsolen-Stream (oder lokal):

Command Wirkung
stop / exit / quit Graceful shutdown
help / ? Liste der Console-Commands

Diese Commands gibt es nicht in Discord — nur in der Server-Konsole.


Graceful Shutdown

  • Pelican „Stop"-Button → sendet SIGTERM → sauberer Shutdown
  • Ctrl-C im Terminal → SIGINT → derselbe Flow
  • 10s Timeout-Fallback, zweites SIGINT erzwingt Exit
  • Step-by-step Shutdown-Logging in der Konsole

Per-Guild Slash-Commands

Alle Commands werden nur für die in guildId konfigurierte Gilde registriert — Updates sind sofort aktiv, kein 1h-Cache. Beim allerersten Start gibt es einen einmaligen Migrations-Schritt (~20s), der alte global registrierte Commands löscht.


Bot einladen

https://discord.com/api/oauth2/authorize?client_id=BOT_ID&permissions=8&scope=applications.commands%20bot

BOT_ID = Application-ID aus dem Developer Portal