Schritt 0: Zielsetzung & System-Architektur

Dieses Dokument definiert das Gesamtziel, die Design-Prinzipien und die finale Systemarchitektur des Dedicated Servers. Es dient als Referenz für alle nachfolgenden Installationsschritte.


1. Gesamtziel

Aufbau einer hochperformativen, isolierten und wartungsarmen Server-Infrastruktur auf einem Strato Dedicated Server CP510 zur zeitgleichen Bereitstellung von:

  1. Reverse Proxy & SSL-Verwaltung: Automatische Routing- und Let's Encrypt SSL-Verwaltung für alle Webservices.
  2. Gameserver-Hosting: Flexible Verwaltung, Bereitstellung und Ressourcen-Limitierung von Gameservern (z. B. Minecraft, Hytale) via Docker-Container.
  3. Self-Hosted Git-System: Vollständige Kontrolle über Quellcode, Mods, Plugins und Dokumentation.
  4. Webhosting & Datenbanken: Betrieb eigener Webseiten und zentraler MySQL/MariaDB-Datenbanken.

2. Kern-Prinzipien (Design-Philosophie)

To avoid errors during execution or later expansion, the infrastructure follows these core principles:

  • Container-First: Alle Anwendungsdienste laufen isoliert in Docker-Containern. Das Haupt-Betriebssystem (Ubuntu 24.04 LTS) bleibt so sauber wie möglich ("Minimal Host").
  • Zero Direct Exposure (Port-Disziplin): Keiner der administrativen Web-Interfaces (NPM Admin UI, Forgejo UI, Pterodactyl Panel, DB-Ports) wird direkt an das öffentliche Internet gebunden. Der Zugriff erfolgt ausschließlich über den Reverse Proxy via HTTPS.
  • Idempotenz & Reproduzierbarkeit: Jeder Installationsschritt wird so dokumentiert und strukturiert, dass der Server jederzeit aus dem Stand von 0 auf 100 identisch neu aufgebaut werden kann.
  • Zentrale Datenhaltung: Alle persistenten Container-Daten und Konfigurationen liegen geordnet unter /opt/.

3. Ziel-Architektur (Übersicht)

                                [ INTERNET ]
                                     │
                             (Port 80 & 443)
                                     │
                                     ▼
                      ┌─────────────────────────────┐
                      │    Nginx Proxy Manager      │
                      │  (SSL, Domains, Routing)    │
                      └──────────────┬──────────────┘
                                     │
        ┌────────────────────────────┼────────────────────────────┐
        │                            │                            │
        ▼                            ▼                            ▼
┌──────────────┐             ┌──────────────┐             ┌──────────────┐
│   Forgejo    │             │ Pterodactyl  │             │   Websites   │
│ (Git System) │             │   (Panel)    │             │   (Docker)   │
└──────────────┘             └──────┬───────┘             └──────────────┘
                                    │
                                    ▼
                         ┌────────────────────┐
                         │ Pterodactyl Wings  │
                         │    (Game Nodes)    │
                         └──────────┬─────────┘
                                    │
                             (Game-Ports)
                                    │
                                    ▼
                         [ Gameserver-Container ]

4. Ziel-Komponenten & Software-Stack

Komponente Gewählte Software Zweck
Betriebssystem Ubuntu 24.04 LTS Stabile Basis für Docker & Systemd
Container Engine Docker & Docker Compose Isolation und Orchestrierung der Dienste
Reverse Proxy Nginx Proxy Manager (NPM) HTTPS-Zertifikate & Subdomain-Weiterleitungen
Git-Plattform Forgejo Leichtgewichtiges Git-Repository
Game-Management Pterodactyl (Panel + Wings) Verwaltung und Isolierung der Spieldienste
Firewall UFW (Uncomplicated Firewall) Grundlegende Port-Absicherung auf Host-Ebene

5. Definition of Done (Wann ist das Ziel erreicht?)

Das System gilt als erfolgreich aufgebaut, wenn:

  • [ ] Alle Subdomains per validem Let's Encrypt HTTPS-Zertifikat erreichbar sind.
  • [ ] Forgejo Code-Repositories via HTTPS und SSH akzeptiert.
  • [ ] Pterodactyl Gameserver erstellen, starten und stoppen kann.
  • [ ] Keine administrativen Ports (z. B. DB oder interne UIs) direkt über die IP erreichbar sind.
  • [ ] Ein zentraler Backup-Prozess für /opt/ und Datenbanken definiert ist.