#!/bin/bash # MYP-System Installationsskript # Dieses Skript installiert und startet das MYP-System mit Docker set -e # Bei Fehler beenden # Farbcodes für Ausgabe RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[0;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Funktion zur Ausgabe mit Zeitstempel log() { echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1" } # Prüfen ob Docker installiert ist check_docker() { if ! command -v docker &> /dev/null; then log "${RED}Docker ist nicht installiert. Bitte installieren Sie Docker.${NC}" log "Siehe: https://docs.docker.com/get-docker/" exit 1 fi if ! command -v docker-compose &> /dev/null; then log "${RED}Docker Compose ist nicht installiert. Bitte installieren Sie Docker Compose.${NC}" log "Siehe: https://docs.docker.com/compose/install/" exit 1 fi } # Backend .env erstellen setup_backend_env() { log "${YELLOW}Erstelle Backend .env Datei...${NC}" # In das Backend-Verzeichnis wechseln cd "$(dirname "$0")/backend" # .env Datei erstellen mit den korrekten Daten cat > .env << EOL SECRET_KEY=7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F DATABASE_PATH=instance/myp.db TAPO_USERNAME=till.tomczak@mercedes-benz.com TAPO_PASSWORD=744563017196A PRINTERS={"Printer 1": {"ip": "192.168.0.100"}, "Printer 2": {"ip": "192.168.0.101"}, "Printer 3": {"ip": "192.168.0.102"}, "Printer 4": {"ip": "192.168.0.103"}, "Printer 5": {"ip": "192.168.0.104"}, "Printer 6": {"ip": "192.168.0.106"}} EOL log "${GREEN}Backend .env Datei erfolgreich erstellt${NC}" } # Frontend installieren install_frontend() { log "${GREEN}Starte Installation des Frontends...${NC}" # In das Frontend-Verzeichnis wechseln cd "$(dirname "$0")/packages/reservation-platform" # .env Datei erstellen mit den korrekten Daten log "${YELLOW}Erstelle .env Datei mit den korrekten Daten${NC}" cat > .env << EOL # Basic Server Configuration RUNTIME_ENVIRONMENT=prod DB_PATH=db/sqlite.db # OAuth Configuration (Bitte anpassen) OAUTH_CLIENT_ID=client_id OAUTH_CLIENT_SECRET=client_secret EOL # Datenbank-Verzeichnis erstellen log "Erstelle Datenbankverzeichnis" mkdir -p db # Docker-Image bauen und starten log "Baue und starte Frontend-Container" docker-compose up -d --build log "${GREEN}Frontend erfolgreich installiert und gestartet unter http://localhost:3000${NC}" } # Backend installieren install_backend() { log "${GREEN}Starte Installation des Backends...${NC}" # In das Backend-Verzeichnis wechseln cd "$(dirname "$0")/backend" # Logs-Verzeichnis erstellen log "Erstelle Logs-Verzeichnis" mkdir -p logs # Instance-Verzeichnis für SQLite erstellen log "Erstelle Instance-Verzeichnis für Datenbank" mkdir -p instance # Docker-Image bauen und starten log "Baue und starte Backend-Container" docker-compose up -d --build log "${GREEN}Backend erfolgreich installiert und gestartet unter http://localhost:5000${NC}" } # Hauptprogramm main() { log "${BLUE}=== MYP-System Installation ===${NC}" # Prüfen ob Docker vorhanden ist check_docker # Backend .env erstellen setup_backend_env # Frontend installieren install_frontend # Backend installieren install_backend log "${GREEN}=== Installation abgeschlossen ===${NC}" log "Frontend: http://localhost:3000" log "Backend: http://localhost:5000" } # Ausführen main