• Korrigiere YAML-Syntax-Fehler in docker-compose.yml-Dateien • Füge automatische Docker-Installation für Raspberry Pi hinzu • Aktualisiere Installationsdokumentation mit Fehlerbehebungstipps • Verwende durchgängig docker-compose statt docker compose für bessere Kompatibilität 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
242 lines
6.6 KiB
Markdown
242 lines
6.6 KiB
Markdown
# MYP System - Installationsanleitung
|
|
|
|
Dieses Dokument beschreibt die Installation des MYP-Systems, bestehend aus einem Frontend und einem Backend.
|
|
|
|
## Systemanforderungen
|
|
|
|
- **Frontend**:
|
|
- Raspberry Pi 3B+ oder neuer (empfohlen: Pi 4 mit mindestens 2GB RAM)
|
|
- Raspbian/Raspberry Pi OS (64-bit empfohlen)
|
|
- Docker und Docker Compose (werden automatisch installiert)
|
|
- Internet-Zugang für die Installation
|
|
- Zwei Netzwerk-Schnittstellen:
|
|
- Eine mit Internet-Zugang
|
|
- Eine für die Verbindung zum Backend-Netzwerk
|
|
|
|
- **Backend**:
|
|
- Raspberry Pi 3B+ oder neuer (empfohlen: Pi 4 mit mindestens 2GB RAM)
|
|
- Raspbian/Raspberry Pi OS (64-bit empfohlen)
|
|
- Docker und Docker Compose (werden automatisch installiert)
|
|
- Verbindung zum Druckernetzwerk
|
|
|
|
## 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ührbar machen und ausführen
|
|
chmod +x install-backend.sh
|
|
./install-backend.sh
|
|
```
|
|
|
|
Das Skript erledigt folgende Aufgaben:
|
|
- Installation von Docker und Docker Compose (falls nicht vorhanden)
|
|
- Erstellung der nötigen Verzeichnisse und Dateien
|
|
- Erstellung und Start des Docker-Containers
|
|
- Initialisierung der Datenbank
|
|
- Überprüfung, ob der Service korrekt läuft
|
|
|
|
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ührbar machen und ausführen
|
|
chmod +x install-frontend.sh
|
|
./install-frontend.sh
|
|
```
|
|
|
|
Das Skript erledigt folgende Aufgaben:
|
|
- Installation von Docker und Docker Compose (falls nicht vorhanden)
|
|
- Erstellung der benötigten Verzeichnisse und Dateien
|
|
- Erstellung und Start des Docker-Containers
|
|
- Überprüfung, ob der Service korrekt läuft
|
|
|
|
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
|
|
```
|
|
|
|
### Docker Compose YAML-Fehler
|
|
|
|
Wenn Sie einen YAML-Fehler in der Docker Compose-Datei erhalten:
|
|
|
|
```
|
|
yaml: line 12: did not find expected key
|
|
```
|
|
|
|
Überprüfen Sie folgende Punkte:
|
|
1. Die Docker Compose-Version könnte veraltet sein. Die Installationsskripte installieren automatisch die richtige Version.
|
|
2. Es könnte ein Syntaxfehler in der YAML-Datei vorliegen. Prüfen Sie insbesondere komplexe Werte wie JSON-Strings.
|
|
|
|
Fehlerbehebung:
|
|
```bash
|
|
# Auf dem betroffenen Server
|
|
cd /home/pi/myp
|
|
# Für das Backend
|
|
nano backend/docker-compose.yml
|
|
# Für das Frontend
|
|
nano packages/reservation-platform/docker-compose.yml
|
|
```
|
|
|
|
### Docker-Daemon läuft nicht
|
|
|
|
Wenn Sie die Fehlermeldung erhalten, dass der Docker-Daemon nicht läuft:
|
|
|
|
```
|
|
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
|
|
```
|
|
|
|
Starten Sie den Docker-Daemon:
|
|
```bash
|
|
sudo systemctl start docker
|
|
# oder
|
|
sudo service docker start
|
|
```
|
|
|
|
### Container startet nicht
|
|
|
|
Wenn der Container nicht startet, prüfen Sie die Logs:
|
|
|
|
```bash
|
|
docker logs myp-backend
|
|
# oder
|
|
docker logs myp-frontend
|
|
```
|
|
|
|
### Frontend kann nicht auf Backend zugreifen
|
|
|
|
1. Stellen Sie sicher, dass beide Server im selben Netzwerk sind
|
|
2. Überprüfen Sie die Firewall-Einstellungen
|
|
3. Stellen Sie sicher, dass der Backend-Service auf Port 5000 läuft
|
|
4. Stellen Sie sicher, dass die richtige Backend-URL in der .env-Datei des Frontends eingestellt ist
|
|
|
|
## 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
|
|
|
|
## 7. Raspberry Pi-spezifische Anmerkungen
|
|
|
|
Wenn Sie Probleme mit der Docker-Installation auf dem Raspberry Pi haben, können Sie folgende Schritte manuell ausführen:
|
|
|
|
```bash
|
|
# Docker für Raspberry Pi installieren
|
|
curl -fsSL https://get.docker.com -o get-docker.sh
|
|
sudo sh get-docker.sh
|
|
sudo usermod -aG docker $USER
|
|
|
|
# Docker Compose für die richtige Architektur installieren
|
|
# Für 32-bit (armhf):
|
|
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-armv7" -o /usr/local/bin/docker-compose
|
|
|
|
# Für 64-bit (arm64):
|
|
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-aarch64" -o /usr/local/bin/docker-compose
|
|
|
|
sudo chmod +x /usr/local/bin/docker-compose
|
|
```
|
|
|
|
## 8. Unterstützung
|
|
|
|
Bei Fragen oder Problemen wenden Sie sich an:
|
|
- Till Tomczak (Projektentwickler) |