- README aktualisiert, um die neuen Verzeichnisse zu reflektieren - Konstanten für Verzeichnispfade in 'constants.js' hinzugefügt - 'DatabaseManager.js' angepasst, um die neuen Datenbankverzeichnisse zu verwenden - Routen für Batch-Upload, Download und Upload aktualisiert, um die neuen Pfade zu berücksichtigen - 'MigrationService.js' hinzugefügt, um vorhandene Daten in die neuen Verzeichnisse zu migrieren - Hilfsfunktionen in 'groupStorage.js' und 'initiate-resources.js' angepasst - 'docker-compose.yml' und 'prod.sh' aktualisiert, um die neuen Verzeichnisse zu berücksichtigen
134 lines
4.7 KiB
Bash
Executable File
134 lines
4.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# Production-Skript für Image-Uploader Production Environment
|
|
|
|
set -e
|
|
|
|
# Farben für Output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
BLUE='\033[0;34m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Image Namen definieren
|
|
FRONTEND_IMAGE="gitea.lan.hobbyhimmel.de/hobbyhimmel/image-uploader-frontend"
|
|
BACKEND_IMAGE="gitea.lan.hobbyhimmel.de/hobbyhimmel/image-uploader-backend"
|
|
VERSION="latest"
|
|
|
|
echo -e "${BLUE}=== Image-Uploader Production Environment ===${NC}"
|
|
echo -e "${BLUE}Frontend Image: ${FRONTEND_IMAGE}:${VERSION}${NC}"
|
|
echo -e "${BLUE}Backend Image: ${BACKEND_IMAGE}:${VERSION}${NC}"
|
|
echo
|
|
|
|
# Menü anzeigen
|
|
echo -e "${BLUE}Wähle eine Option:${NC}"
|
|
echo "1) Production Container starten"
|
|
echo "2) Production Images bauen"
|
|
echo "3) Production Images zur Registry pushen"
|
|
echo "4) Container neu bauen und starten"
|
|
echo "5) Production Container stoppen"
|
|
echo "6) Frontend Container Shell öffnen"
|
|
echo "7) Backend Container Shell öffnen"
|
|
echo "8) Frontend Logs anzeigen"
|
|
echo "9) Backend Logs anzeigen"
|
|
echo "10) Alle Logs anzeigen"
|
|
echo "11) Container Status anzeigen"
|
|
echo "12) Upload-Verzeichnis anzeigen"
|
|
echo "13) Production Container stoppen/löschen inkl Volumes"
|
|
echo "0) Beenden"
|
|
echo
|
|
|
|
read -p "Deine Wahl (0-13): " choice
|
|
|
|
case $choice in
|
|
1)
|
|
echo -e "${GREEN}Starte Production Container...${NC}"
|
|
docker compose up -d
|
|
echo -e "${GREEN}Container gestartet!${NC}"
|
|
echo -e "${BLUE}Frontend: http://localhost${NC}"
|
|
echo -e "${BLUE}Backend: http://localhost:5000${NC}"
|
|
echo -e "${BLUE}Slideshow: http://localhost/slideshow${NC}"
|
|
echo -e "${BLUE}Logs verfolgen mit: docker compose logs -f${NC}"
|
|
;;
|
|
2)
|
|
echo -e "${GREEN}Baue Production Images...${NC}"
|
|
echo -e "${BLUE}Baue Frontend Image...${NC}"
|
|
docker build -t ${FRONTEND_IMAGE}:${VERSION} ./frontend
|
|
echo -e "${BLUE}Baue Backend Image...${NC}"
|
|
docker build -t ${BACKEND_IMAGE}:${VERSION} ./backend
|
|
echo -e "${GREEN}Production Images erfolgreich gebaut!${NC}"
|
|
;;
|
|
3)
|
|
echo -e "${GREEN}Pushe Production Images zur Registry...${NC}"
|
|
echo -e "${BLUE}Pushe Frontend Image...${NC}"
|
|
docker push ${FRONTEND_IMAGE}:${VERSION}
|
|
echo -e "${BLUE}Pushe Backend Image...${NC}"
|
|
docker push ${BACKEND_IMAGE}:${VERSION}
|
|
echo -e "${GREEN}Production Images erfolgreich gepusht!${NC}"
|
|
;;
|
|
4)
|
|
echo -e "${GREEN}Baue Container neu...${NC}"
|
|
docker compose down
|
|
docker compose up --build -d
|
|
echo -e "${GREEN}Container neu gebaut und gestartet!${NC}"
|
|
echo -e "${BLUE}Frontend: http://localhost${NC}"
|
|
echo -e "${BLUE}Slideshow: http://localhost/slideshow${NC}"
|
|
;;
|
|
5)
|
|
echo -e "${YELLOW}Stoppe Container...${NC}"
|
|
docker compose down
|
|
echo -e "${GREEN}Container gestoppt!${NC}"
|
|
;;
|
|
6)
|
|
echo -e "${GREEN}Öffne Frontend Container Shell...${NC}"
|
|
docker compose exec image-uploader-frontend bash
|
|
;;
|
|
7)
|
|
echo -e "${GREEN}Öffne Backend Container Shell...${NC}"
|
|
docker compose exec image-uploader-backend bash
|
|
;;
|
|
8)
|
|
echo -e "${GREEN}Zeige Frontend Logs...${NC}"
|
|
docker compose logs -f image-uploader-frontend
|
|
;;
|
|
9)
|
|
echo -e "${GREEN}Zeige Backend Logs...${NC}"
|
|
docker compose logs -f image-uploader-backend
|
|
;;
|
|
10)
|
|
echo -e "${GREEN}Zeige alle Logs...${NC}"
|
|
docker compose logs -f
|
|
;;
|
|
11)
|
|
echo -e "${GREEN}Container Status:${NC}"
|
|
docker compose ps
|
|
echo
|
|
echo -e "${BLUE}Detaillierte Informationen:${NC}"
|
|
docker images | grep "image-uploader" || echo "Keine lokalen Images gefunden"
|
|
;;
|
|
12)
|
|
echo -e "${GREEN}Upload-Verzeichnis Inhalt:${NC}"
|
|
if docker compose ps -q image-uploader-backend > /dev/null 2>&1; then
|
|
echo -e "${BLUE}Hochgeladene Bilder (data/images):${NC}"
|
|
docker compose exec image-uploader-backend ls -la /usr/src/app/data/images/ || echo "Upload-Verzeichnis ist leer"
|
|
echo
|
|
echo -e "${BLUE}JSON Metadaten (data/db):${NC}"
|
|
docker compose exec image-uploader-backend ls -la /usr/src/app/data/db/ || echo "Keine Metadaten vorhanden"
|
|
else
|
|
echo -e "${YELLOW}Backend Container ist nicht gestartet.${NC}"
|
|
fi
|
|
;;
|
|
13)
|
|
echo -e "${YELLOW}Stoppe und lösche Container inkl. Volumes...${NC}"
|
|
docker compose down -v
|
|
echo -e "${GREEN}Container und Volumes gelöscht!${NC}"
|
|
;;
|
|
0)
|
|
echo -e "${GREEN}Auf Wiedersehen!${NC}"
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo -e "${RED}Ungültige Option! Bitte wähle 0-12.${NC}"
|
|
exit 1
|
|
;;
|
|
esac |