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
- discord.com/developers/applications → New Application
- Links auf Bot → Add Bot
- Public Bot deaktivieren
- Alle drei Intents aktivieren
- 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 inconfigs/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/undgrumpy.dbwerden beim ersten Start automatisch erstellt.
Schritt 4 — Ersten Start
- Bot starten — Prisma generiert das Schema und migriert die Datenbank
- 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...
═══════════════════════════════════════════════════════
- Fehlende IDs in
configs/config.ymleintragen → Configuration - Bot neu starten
- Verify- und Ticket-Panel werden automatisch in den konfigurierten Channels gepostet — keine
/welcome setup-verifyoder/tickets setup-panelmehr 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-panelbleibt verfügbar.
Upgrade-Hinweis: Beim Update auf eine neuere Bot-Version musst du
configs/config.ymlnicht 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
GrumpyCore Wiki
⚙️ Setup
🔧 Core-Module
🆕 Neue Module
💬 Commands
👥 Staff
GrumpyCore Wiki (English)
⚙️ Setup
🔧 Core Modules
🆕 New Modules
💬 Commands
👥 Staff