Projektarbeit-MYP/INSTALL.md
Till Tomczak f1541478ad Bereinige und vereinfache Installations-Skripte
- Entferne alle überflüssigen Installations- und Konfigurationsskripte
- Erstelle zwei vereinfachte Docker-Installationsskripte:
  - install-frontend.sh für Frontend-Installation
  - install-backend.sh für Backend-Installation
- Verbessere Frontend Dockerfile mit besserer Unterstützung für native Dependencies
- Aktualisiere Backend Dockerfile für automatische DB-Initialisierung
- Korrigiere TypeScript-Fehler in personalized-cards.tsx
- Erstelle env.ts für Umgebungsvariablen-Verwaltung
- Füge ausführliche Installationsanleitung in INSTALL.md hinzu
- Konfiguriere Docker-Compose für Host-Netzwerkmodus
- Erweitere Dockerfiles mit Healthchecks für bessere Zuverlässigkeit

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-03-31 14:22:07 +02:00

137 lines
3.3 KiB
Markdown

# 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