2026-02-26 12:42:38 +01:00
2026-02-26 10:10:43 +01:00
2026-02-26 12:41:46 +01:00
2026-02-26 12:42:38 +01:00
2026-02-26 10:10:43 +01:00
2026-02-26 10:16:14 +01:00
2026-02-26 11:17:11 +01:00

GameDig Server Status API

Pterodactyl Egg das Gameserver per GameDig abfragt und die Ergebnisse als JSON-REST-API bereitstellt.

Unterstützte Spiele (Auswahl)

Spiel type in config.json
DayZ dayz
Counter-Strike 2 cs2
Rust rust
ARK: Survival Evolved arkse
+ 320 weitere GameDig Games-Liste

Installation

  1. egg.json im Pterodactyl-Panel importieren (Admin → Nests → Import Egg)
  2. Neuen Server anlegen und einen Port zuweisen
  3. Server starten → Installationsscript lädt automatisch alle Dateien von diesem Repo
  4. config.json im Dateimanager mit deinen Serveradressen anpassen
  5. Server neu starten

Konfiguration

config.json (im Pterodactyl-Dateimanager bearbeiten)

{
  "servers": [
    {
      "label": "DayZ Main Server",
      "type":  "dayz",
      "host":  "1.2.3.4",
      "port":  2302,
      "image": "https://example.com/images/dayz.jpg"
    },
    {
      "label": "CS2 Server",
      "type":  "cs2",
      "host":  "1.2.3.4",
      "port":  27015,
      "image": "https://example.com/images/cs2.jpg"
    }
  ]
}

Egg-Variablen (im Pterodactyl-Panel konfigurierbar)

Variable Standard Beschreibung
QUERY_INTERVAL 60 Abfrageintervall in Sekunden (min. 10)
API_KEY (leer) Optionaler API-Schlüssel leer = offen

API-Endpunkte

GET /api/servers

Ohne API-Key:

GET http://dein-server:PORT/api/servers

Mit API-Key via Header:

GET http://dein-server:PORT/api/servers
X-API-Key: dein-key

Mit API-Key via URL-Parameter:

GET http://dein-server:PORT/api/servers?key=dein-key

Beispiel-Antwort:

{
  "updated": "2026-02-26T14:32:00.000Z",
  "interval_seconds": 60,
  "servers": [
    {
      "label":      "DayZ Main Server",
      "type":       "dayz",
      "address":    "1.2.3.4:2302",
      "image":      "https://example.com/images/dayz.jpg",
      "status":     "online",
      "players":    12,
      "maxPlayers": 60,
      "map":        "ChernarusPlus",
      "name":       "My DayZ Server",
      "ping":       42,
      "connect":    "1.2.3.4:2302"
    },
    {
      "label":   "CS2 Server",
      "type":    "cs2",
      "address": "1.2.3.4:27015",
      "status":  "offline",
      "error":   "Connection timed out"
    }
  ]
}

GET /health

Kein API-Key erforderlich. Geeignet für Uptime-Monitoring.

{ "status": "ok", "updated": "2026-02-26T14:32:00.000Z" }

DayZ Besonderheit

DayZ nutzt einen separaten Query-Port (Game-Port + 24714). Falls die Abfrage fehlschlägt, den Query-Port direkt angeben:

{ "type": "dayz", "host": "1.2.3.4", "port": 27016 }

Dateien im Container

/home/container/
├── server.js        ← Hauptscript (API + Query-Loop)
├── entrypoint.sh    ← Startscript
├── config.json      ← Serverkonfiguration (selbst bearbeiten)
├── package.json     ← npm-Konfiguration
└── node_modules/    ← Abhängigkeiten (automatisch installiert)

Update

Um server.js oder entrypoint.sh zu aktualisieren, einfach die Dateien in diesem Repo anpassen und den Server im Pterodactyl-Panel neu installieren (Server → Settings → Reinstall Server).

Description
No description provided
Readme AGPL-3.0 73 KiB
Languages
JavaScript 84.7%
Shell 15.3%