• 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>
6.6 KiB
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.
# 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.
# 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:
- 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
- Frontend-Container neu starten:
cd /home/pi/myp/packages/reservation-platform
docker-compose down
docker-compose up -d
4. Wartung und Fehlerbehebung
Logs anzeigen
Backend:
docker logs -f myp-backend
Frontend:
docker logs -f myp-frontend
Container neustarten
Backend:
cd /pfad/zum/backend
docker-compose restart
Frontend:
cd /pfad/zum/frontend
docker-compose restart
Datenbank-Reset
Sollte die Datenbank zurückgesetzt werden müssen:
# 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:
- Die Docker Compose-Version könnte veraltet sein. Die Installationsskripte installieren automatisch die richtige Version.
- Es könnte ein Syntaxfehler in der YAML-Datei vorliegen. Prüfen Sie insbesondere komplexe Werte wie JSON-Strings.
Fehlerbehebung:
# 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:
sudo systemctl start docker
# oder
sudo service docker start
Container startet nicht
Wenn der Container nicht startet, prüfen Sie die Logs:
docker logs myp-backend
# oder
docker logs myp-frontend
Frontend kann nicht auf Backend zugreifen
- Stellen Sie sicher, dass beide Server im selben Netzwerk sind
- Überprüfen Sie die Firewall-Einstellungen
- Stellen Sie sicher, dass der Backend-Service auf Port 5000 läuft
- 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:
# 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:
# 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)