# MYP System - Installationsanleitung Dieses Dokument beschreibt die Installation des MYP-Systems, bestehend aus einem Frontend und einem Backend. ## Systemanforderungen - Docker und Docker Compose - Zwei Raspberry Pi (oder andere Linux-basierte Computer) - Netzwerkverbindung zwischen den Geräten ## 1. Installation des Backends Das Backend wird auf dem ersten Raspberry Pi installiert, der mit den Smart Plugs verbunden ist. ```bash # Den Code auf den Raspberry Pi kopieren scp -r /pfad/zum/projektverzeichnis pi@raspberry-backend:/home/pi/myp # SSH-Verbindung herstellen ssh pi@raspberry-backend # In das Projektverzeichnis wechseln cd /home/pi/myp # Installations-Skript ausführen ./install-backend.sh ``` Nach erfolgreicher Installation ist das Backend unter `http://raspberry-backend:5000` erreichbar. ## 2. Installation des Frontends Das Frontend wird auf dem zweiten Raspberry Pi installiert, der mit dem Unternehmensnetzwerk verbunden ist. ```bash # Den Code auf den Raspberry Pi kopieren scp -r /pfad/zum/projektverzeichnis pi@raspberry-frontend:/home/pi/myp # SSH-Verbindung herstellen ssh pi@raspberry-frontend # In das Projektverzeichnis wechseln cd /home/pi/myp # Installations-Skript ausführen ./install-frontend.sh ``` Nach erfolgreicher Installation ist das Frontend unter `http://raspberry-frontend:3000` erreichbar. ## 3. Konfiguration der Verbindung zwischen Frontend und Backend Für die Kommunikation zwischen Frontend und Backend muss die API-URL im Frontend konfiguriert werden: 1. Die Datei `/home/pi/myp/packages/reservation-platform/.env` auf dem Frontend-Raspberry Pi bearbeiten: ``` # Basic Server Configuration RUNTIME_ENVIRONMENT=prod DB_PATH=db/sqlite.db # OAuth Configuration OAUTH_CLIENT_ID=client_id OAUTH_CLIENT_SECRET=client_secret # Backend-URL (Hostname oder IP-Adresse des Backend-Raspberry Pi) NEXT_PUBLIC_API_URL=http://raspberry-backend:5000 ``` 2. Frontend-Container neu starten: ```bash cd /home/pi/myp/packages/reservation-platform docker compose down docker compose up -d ``` ## 4. Wartung und Fehlerbehebung ### Logs anzeigen **Backend:** ```bash docker logs -f myp-backend ``` **Frontend:** ```bash docker logs -f myp-frontend ``` ### Container neustarten **Backend:** ```bash cd /pfad/zum/backend docker compose restart ``` **Frontend:** ```bash cd /pfad/zum/frontend docker compose restart ``` ### Datenbank-Reset Sollte die Datenbank zurückgesetzt werden müssen: ```bash # Auf dem Backend-Raspberry Pi cd /home/pi/myp/backend docker compose down rm -f instance/myp.db docker compose up -d ``` ## 5. Automatischer Start beim Systemstart Die Docker-Container sind so konfiguriert, dass sie automatisch beim Neustart der Geräte starten (`restart: unless-stopped`). Sollte dies nicht funktionieren, kann der Start in die `/etc/rc.local` eingetragen werden: ```bash # Auf dem Backend-Raspberry Pi echo "cd /home/pi/myp/backend && docker compose up -d" >> /etc/rc.local # Auf dem Frontend-Raspberry Pi echo "cd /home/pi/myp/packages/reservation-platform && docker compose up -d" >> /etc/rc.local ``` ## 6. Technische Details - Das Backend ist eine Flask-Anwendung, die mit den Smart Plugs kommuniziert - Das Frontend ist eine Next.js-Anwendung - Beide Komponenten laufen in Docker-Containern mit Host-Netzwerkanbindung - Die Datenbanken werden in Docker-Volumes persistiert