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