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:
- Reverse Proxy & SSL-Verwaltung: Automatische Routing- und Let's Encrypt SSL-Verwaltung für alle Webservices.
- Gameserver-Hosting: Flexible Verwaltung, Bereitstellung und Ressourcen-Limitierung von Gameservern (z. B. Minecraft, Hytale) via Docker-Container.
- Self-Hosted Git-System: Vollständige Kontrolle über Quellcode, Mods, Plugins und Dokumentation.
- 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.