- 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>
87 lines
2.8 KiB
Bash
Executable File
87 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# MYP Backend Installations-Skript
|
|
# Dieses Skript installiert das Backend mit Docker und Host-Netzwerkanbindung
|
|
|
|
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"
|
|
}
|
|
|
|
# Pfade definieren
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
BACKEND_DIR="$SCRIPT_DIR/backend"
|
|
|
|
# Prüfen ob Docker installiert ist
|
|
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
|
|
|
|
# Wechsle ins Backend-Verzeichnis
|
|
cd "$BACKEND_DIR"
|
|
log "Arbeite im Verzeichnis: $BACKEND_DIR"
|
|
|
|
# Erstelle .env-Datei
|
|
log "${YELLOW}Erstelle .env Datei...${NC}"
|
|
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}.env Datei erfolgreich erstellt${NC}"
|
|
|
|
# Verzeichnisse erstellen
|
|
log "Erstelle benötigte Verzeichnisse"
|
|
mkdir -p logs
|
|
mkdir -p instance
|
|
|
|
# Docker-Image bauen und starten
|
|
log "${YELLOW}Baue und starte Backend-Container...${NC}"
|
|
docker compose up -d --build
|
|
|
|
# Prüfe, ob der Container läuft
|
|
sleep 5
|
|
if docker ps | grep -q "myp-backend"; then
|
|
log "${GREEN}Backend erfolgreich installiert und gestartet unter http://localhost:5000${NC}"
|
|
else
|
|
log "${RED}Fehler beim Starten des Backend-Containers. Bitte prüfen Sie die Docker-Logs mit 'docker logs myp-backend'${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# Initialisierung der Datenbank prüfen
|
|
log "${YELLOW}Prüfe Datenbank-Initialisierung...${NC}"
|
|
if [ ! -s "instance/myp.db" ]; then
|
|
log "${YELLOW}Datenbank scheint leer zu sein. Führe Initialisierungsskript aus...${NC}"
|
|
docker exec myp-backend python -c "from app import init_db; init_db()"
|
|
if [ $? -eq 0 ]; then
|
|
log "${GREEN}Datenbank erfolgreich initialisiert${NC}"
|
|
else
|
|
log "${RED}Fehler bei der Datenbank-Initialisierung${NC}"
|
|
fi
|
|
else
|
|
log "${GREEN}Datenbank existiert bereits${NC}"
|
|
fi
|
|
|
|
log "${GREEN}=== Installation abgeschlossen ===${NC}"
|
|
log "Das Backend ist unter http://localhost:5000 erreichbar"
|
|
log "Anzeigen der Logs: docker logs -f myp-backend"
|
|
log "Backend stoppen: docker compose -f $BACKEND_DIR/docker-compose.yml down" |