Zum Inhalt

Deployment

Ziel

Dieser Bereich dokumentiert allgemeine Deployment-Grundlagen für private und kleinere professionelle Softwareprojekte.

Die Inhalte sind projektübergreifend gedacht und werden später in das eigenständige Developer Playbook übertragen.

Immohai dient dabei als erstes Praxisbeispiel.


Grundprinzip

Deployment beschreibt, wie eine Anwendung von der lokalen Entwicklung oder vom GitHub-Repository auf einen Server gebracht und dort öffentlich erreichbar gemacht wird.

Typische Bestandteile sind:

  • Serverstruktur
  • Docker Compose
  • lokale Container-Ports
  • Nginx Reverse Proxy
  • Domain und DNS
  • HTTPS mit Certbot
  • Monitoring und Logs
  • typische Fehler und Lösungen
  • Deployment-Checklisten

Empfohlene Serverstruktur

Für mehrere Apps sollte ein Server so organisiert werden, dass allgemeine Infrastruktur und konkrete Apps getrennt bleiben.

Beispiel:

/home/fober/workspace/
├── developer-playbook/
└── apps/
    ├── Immohai/
    ├── app-2/
    └── app-3/

Das Developer Playbook steht übergeordnet über den Apps.

Die einzelnen Apps liegen im Ordner apps/.


Domain- und Subdomain-Prinzip

Eine Hauptdomain reicht aus, um mehrere Apps und Dokumentationen zu betreiben.

Beispiel:

example.com
playbook.example.com
app1.example.com
docs.app1.example.com
app2.example.com
docs.app2.example.com

Die Subdomains zeigen per DNS auf dieselbe Server-IP.

Nginx entscheidet anschließend anhand des Domainnamens, welcher lokale Dienst angesprochen wird.


Reverse-Proxy-Prinzip

Docker-Container sollten im Normalfall nicht direkt öffentlich auf Port 80 oder 443 laufen.

Stattdessen laufen sie lokal auf dem Server.

Beispiel:

127.0.0.1:8200
127.0.0.1:8201

Nginx nimmt öffentliche Anfragen entgegen und leitet sie intern weiter.

Beispiel:

app.example.com       → 127.0.0.1:8200
docs.app.example.com  → 127.0.0.1:8201

HTTPS

HTTPS wird zentral auf dem Server mit Nginx und Certbot eingerichtet.

Certbot erstellt kostenlose Let's-Encrypt-Zertifikate und richtet automatische Erneuerung ein.

Jede öffentlich erreichbare App und Dokumentation sollte über HTTPS erreichbar sein.


Inhalte in diesem Bereich

Datei Zweck
01-domain-dns-reverse-proxy.md Allgemeine Anleitung für Domain, DNS, Nginx Reverse Proxy und HTTPS mit Certbot

Weitere Dateien können später ergänzt werden:

02-nginx-konfiguration.md
03-https-certbot.md
04-docker-port-strategie.md
05-deployment-checkliste.md
troubleshooting.md

Praxisbeispiel Immohai

Immohai dient als konkretes Praxisbeispiel für diese allgemeine Deployment-Struktur.

Aktuelle Immohai-Umsetzung:

Domain: ohaisoft.com
App: https://immohai.ohaisoft.com
Doku: https://docs.immohai.ohaisoft.com
Server: Hetzner Cloud
Reverse Proxy: Nginx
Containerbetrieb: Docker Compose
HTTPS: Certbot / Let's Encrypt

Die konkrete Immohai-Umsetzung bleibt zusätzlich in der Immohai-Projektdokumentation dokumentiert.


Abgrenzung zu Immohai

Dieser Bereich beschreibt allgemeine Deployment-Regeln und wiederverwendbare Vorgehensweisen.

Die Immohai-Projektdokumentation beschreibt dagegen konkret:

  • welche Domain Immohai verwendet
  • welche Subdomains aktiv sind
  • welche lokalen Ports verwendet werden
  • welche Nginx-Weiterleitungen eingerichtet sind
  • ob HTTPS eingerichtet und getestet wurde
  • welche projektspezifischen Entscheidungen getroffen wurden

Checkliste

  • [ ] Hauptdomain festgelegt
  • [ ] DNS-Records geplant
  • [ ] Docker-Ports lokal gebunden
  • [ ] Nginx Reverse Proxy eingerichtet
  • [ ] HTTP getestet
  • [ ] HTTPS mit Certbot eingerichtet
  • [ ] automatische Zertifikatserneuerung getestet
  • [ ] Deployment-Dokumentation projektspezifisch ergänzt