• v0.1.0 3c1060a88e

    SystemSh0cker released this 2026-07-22 21:44:57 +02:00 | 0 commits to main since this release

    AUC Masterserver v0.1.0

    English

    Initial release of the All Under Control Masterserver.

    The masterserver provides the central public server list for AUC. Dedicated game servers periodically register through HTTPS, while clients can retrieve the current server list and SQP availability.

    Features

    • POST /heartbeat for game server registration and updates
    • GET /list for the public server browser
    • GET /health for service monitoring
    • Automatic removal of expired game servers
    • UDP-based SQP availability and latency checks
    • Configurable heartbeat limits, server expiry and SQP timings
    • Official-server verification through API-key whitelisting
    • BB-Code validation for formatted server descriptions
    • IPv4 and IPv6 support
    • Cross-platform binaries for:
      • Linux AMD64
      • Linux ARM64
      • Windows AMD64
      • macOS ARM64

    Security

    • Intended for operation behind an nginx reverse proxy
    • Internal service binds to 127.0.0.1:5001 by default
    • Trusted proxy handling for the real client IP
    • Heartbeat request size and rate limits
    • Strict JSON and field validation
    • Private and special-purpose IP addresses rejected by default
    • API keys are never exposed through the public server list
    • Owner-only permissions for the official-server whitelist
    • Configurable HTTP server timeouts

    Default timings

    • Game server expiry: 60 seconds without a heartbeat
    • SQP check interval: 20 seconds
    • SQP timeout: 3 seconds
    • SQP offline threshold: 3 consecutive failures
    • Heartbeat rate limit: 5 requests/second per public IP
    • Heartbeat burst: 20 requests

    An unavailable SQP port only results in sqp.online=false. The server remains listed as long as valid heartbeats continue to arrive.

    Deployment notes

    The service should be exposed through nginx using HTTPS. TCP port 5001 must remain inaccessible from external networks.

    Existing installations should verify these settings in master_config.ini:

    sqpCheckIntervalSeconds=20
    sqpTimeoutMilliseconds=3000
    sqpFailureThreshold=3
    

    Use the provided SHA256SUMS file to verify downloaded binaries:

    sha256sum -c SHA256SUMS
    

    Deutsch

    Erste Veröffentlichung des All Under Control Masterservers.

    Der Masterserver stellt die zentrale öffentliche Serverliste für AUC bereit. Dedicated Gameserver registrieren sich regelmäßig über HTTPS, während Clients die aktuelle Serverliste und den SQP-Erreichbarkeitsstatus abrufen können.

    Funktionen

    • POST /heartbeat zur Registrierung und Aktualisierung von Gameservern
    • GET /list für den öffentlichen Serverbrowser
    • GET /health zur Überwachung des Dienstes
    • Automatisches Entfernen abgelaufener Gameserver
    • UDP-basierte SQP-Erreichbarkeits- und Latenzprüfung
    • Konfigurierbare Heartbeat-Limits, Ablaufzeiten und SQP-Zeiten
    • Verifizierung offizieller Server über eine API-Key-Whitelist
    • BB-Code-Validierung für formatierte Serverbeschreibungen
    • Unterstützung für IPv4 und IPv6
    • Plattformübergreifende Binärdateien für:
      • Linux AMD64
      • Linux ARM64
      • Windows AMD64
      • macOS ARM64

    Sicherheit

    • Für den Betrieb hinter einem nginx-Reverse-Proxy vorgesehen
    • Der interne Dienst bindet standardmäßig ausschließlich an 127.0.0.1:5001
    • Sichere Auswertung der tatsächlichen Client-IP hinter dem Proxy
    • Größen- und Rate-Limits für Heartbeat-Anfragen
    • Strikte Validierung von JSON und sämtlichen Feldern
    • Private und reservierte IP-Adressen werden standardmäßig abgelehnt
    • API-Keys werden niemals über die öffentliche Serverliste ausgegeben
    • Ausschließliche Eigentümerrechte für die Official-Server-Whitelist
    • Konfigurierbare HTTP-Server-Timeouts

    Standardzeiten

    • Ablauf eines Gameservers: nach 60 Sekunden ohne Heartbeat
    • SQP-Prüfintervall: 20 Sekunden
    • SQP-Timeout: 3 Sekunden
    • SQP-Offline-Schwelle: 3 aufeinanderfolgende Fehler
    • Heartbeat-Limit: 5 Anfragen pro Sekunde und öffentlicher IP-Adresse
    • Heartbeat-Burst: 20 Anfragen

    Ein nicht erreichbarer SQP-Port führt ausschließlich zu sqp.online=false. Der Server bleibt gelistet, solange weiterhin gültige Heartbeats eingehen.

    Hinweise zur Installation

    Der Dienst sollte über nginx und HTTPS erreichbar gemacht werden. Der interne TCP-Port 5001 darf nicht aus externen Netzwerken erreichbar sein.

    Bestehende Installationen sollten folgende Einstellungen in der master_config.ini überprüfen:

    sqpCheckIntervalSeconds=20
    sqpTimeoutMilliseconds=3000
    sqpFailureThreshold=3
    

    Die heruntergeladenen Binärdateien können mithilfe der mitgelieferten SHA256SUMS geprüft werden:

    sha256sum -c SHA256SUMS
    
    Downloads