mit containerisierter Architektur
Das Gästezimmer Gateway ist eine eigenständige Webanwendung zur Steuerung und Überwachung ausgewählter Geräte im Gästezimmer über die Home Assistant API. Ziel ist eine klar strukturierte, leicht deploybare Architektur, die lokale Entwicklung und späteren produktiven Betrieb sauber voneinander trennt.
Die Anwendung besteht aus zwei klar getrennten Komponenten:
- Backend-API (FastAPI, Python 3.12)
Kapselt die Kommunikation mit Home Assistant, abstrahiert Entitäten und stellt definierte Endpunkte zur Verfügung. - Frontend (statisches HTML/Bootstrap) mit Nginx Reverse Proxy
Serviert die Oberfläche und leitet/api-Requests intern an den API-Container weiter.
Beide Services laufen in separaten Docker-Containern und werden über Docker Compose orchestriert. Die Kommunikation erfolgt über das interne Docker-Netzwerk (Service-Name statt Host-Port), wodurch keine Hardcodings im Frontend notwendig sind.
Technische Schwerpunkte
- FastAPI + Uvicorn
- Nginx Reverse Proxy (
/api→ api:8000) - saubere Trennung von Web und API
- Environment-basierte Konfiguration via
.env - Debugging von Container-Permissions (Static Assets & Nginx-User)
- Verständnis von internen vs. externen Ports in Docker
- saubere SPA- und Asset-Auslieferung
Ein besonderer Fokus lag auf der reproduzierbaren Container-Umgebung: Dateirechte, Proxy-Konfiguration und Port-Mappings wurden so gestaltet, dass die Struktur später ohne größere Anpassungen in ein Kubernetes-Setup überführt werden kann.
Geplante Weiterentwicklung
Das Projekt ist bewusst als Grundlage für einen erweiterten Infrastruktur-Stack konzipiert.
Geplant ist:
- Deployment auf einen bestehenden Kubernetes-Cluster
- Betrieb hinter einem separaten Ingress
- saubere Trennung von Namespace / Routing
- Aufbau einer CI/CD-Pipeline zur automatisierten Prüfung und zum containerbasierten Deployment (Build → Test → Image → Deploy)
Ziel ist es, den Weg von einer lokal entwickelten Container-Anwendung hin zu einer clusterfähigen, versionierbaren Plattformarchitektur vollständig nachvollziehbar umzusetzen.
