194 lines
6.3 KiB
Bash
194 lines
6.3 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
echo "🚀 Setup: Neue Verzeichnisstruktur"
|
||
|
|
echo "===================================="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Farben
|
||
|
|
GREEN='\033[0;32m'
|
||
|
|
YELLOW='\033[1;33m'
|
||
|
|
NC='\033[0m' # No Color
|
||
|
|
|
||
|
|
# Schritt 1: Verzeichnisse erstellen
|
||
|
|
echo -e "${YELLOW}📁 Schritt 1: Verzeichnisse erstellen${NC}"
|
||
|
|
mkdir -p /root/entwicklung
|
||
|
|
mkdir -p /root/livesysteme
|
||
|
|
mkdir -p /root/backups/entwicklung/pfandsystem
|
||
|
|
mkdir -p /root/backups/livesysteme/borbaecker
|
||
|
|
echo -e "${GREEN}✅ Verzeichnisse erstellt${NC}"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Schritt 2: Backend stoppen
|
||
|
|
echo -e "${YELLOW}⏸️ Schritt 2: Services stoppen${NC}"
|
||
|
|
pkill -f "node.*server.js" 2>/dev/null || true
|
||
|
|
echo -e "${GREEN}✅ Backend gestoppt${NC}"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Schritt 3: Docker Container stoppen
|
||
|
|
echo -e "${YELLOW}🐳 Schritt 3: Docker Container stoppen${NC}"
|
||
|
|
cd /root
|
||
|
|
docker compose down 2>/dev/null || true
|
||
|
|
echo -e "${GREEN}✅ Docker Container gestoppt${NC}"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Schritt 4: Dev-Version verschieben
|
||
|
|
echo -e "${YELLOW}🔄 Schritt 4: Dev-Version verschieben${NC}"
|
||
|
|
echo "Dies kann einige Minuten dauern..."
|
||
|
|
|
||
|
|
# Wichtige Dateien/Ordner verschieben
|
||
|
|
mv /root/backend /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
mv /root/src /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
mv /root/public /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
mv /root/dist /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
mv /root/docker-compose.yml /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
mv /root/package.json /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
mv /root/package-lock.json /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
mv /root/vite.config.js /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
mv /root/index.html /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
mv /root/.env /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
mv /root/fix-manifest-link.cjs /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
mv /root/Dockerfile /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
|
||
|
|
# Git verschieben
|
||
|
|
mv /root/.git /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
mv /root/.gitignore /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
|
||
|
|
# Dokumentation verschieben
|
||
|
|
mv /root/*.md /root/entwicklung/pfandsystem/ 2>/dev/null || true
|
||
|
|
|
||
|
|
echo -e "${GREEN}✅ Dev-Version verschoben${NC}"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Schritt 5: Live-Version klonen
|
||
|
|
echo -e "${YELLOW}📥 Schritt 5: Live-Version klonen${NC}"
|
||
|
|
cd /root/livesysteme/borbaecker
|
||
|
|
git clone ssh://git@49.13.154.75:2244/christian/pfandsystem.git . 2>/dev/null || echo "Git bereits geklont"
|
||
|
|
echo -e "${GREEN}✅ Live-Version geklont${NC}"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Schritt 6: Traefik-Configs anpassen
|
||
|
|
echo -e "${YELLOW}🔧 Schritt 6: Traefik-Configs erstellen${NC}"
|
||
|
|
|
||
|
|
# Dev-Config
|
||
|
|
cat > /root/traefik/dynamic/pfandsystem-dev.yml << 'EOF'
|
||
|
|
http:
|
||
|
|
routers:
|
||
|
|
pfandsystem-dev-api:
|
||
|
|
rule: "Host(`pfandsystem.backdigital.de`) && PathPrefix(`/api`)"
|
||
|
|
service: pfandsystem-dev-api
|
||
|
|
entryPoints:
|
||
|
|
- web
|
||
|
|
- websecure
|
||
|
|
tls:
|
||
|
|
certResolver: letsencrypt
|
||
|
|
priority: 100
|
||
|
|
|
||
|
|
pfandsystem-dev-uploads:
|
||
|
|
rule: "Host(`pfandsystem.backdigital.de`) && PathPrefix(`/uploads`)"
|
||
|
|
service: pfandsystem-dev-api
|
||
|
|
entryPoints:
|
||
|
|
- web
|
||
|
|
- websecure
|
||
|
|
tls:
|
||
|
|
certResolver: letsencrypt
|
||
|
|
priority: 100
|
||
|
|
|
||
|
|
services:
|
||
|
|
pfandsystem-dev-api:
|
||
|
|
loadBalancer:
|
||
|
|
servers:
|
||
|
|
- url: "http://172.17.0.1:3001"
|
||
|
|
EOF
|
||
|
|
|
||
|
|
# Alte Config löschen
|
||
|
|
rm /root/traefik/dynamic/local-backend.yml 2>/dev/null || true
|
||
|
|
|
||
|
|
echo -e "${GREEN}✅ Traefik-Configs erstellt${NC}"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Schritt 7: Backup-Scripte erstellen
|
||
|
|
echo -e "${YELLOW}💾 Schritt 7: Backup-Scripte erstellen${NC}"
|
||
|
|
|
||
|
|
# Dev-Backup
|
||
|
|
cat > /root/entwicklung/pfandsystem/backup-dev.sh << 'EOF'
|
||
|
|
#!/bin/bash
|
||
|
|
BACKUP_DIR="/root/backups/entwicklung/pfandsystem"
|
||
|
|
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
||
|
|
BACKUP_NAME="backup_${TIMESTAMP}"
|
||
|
|
|
||
|
|
mkdir -p "${BACKUP_DIR}/${BACKUP_NAME}"
|
||
|
|
|
||
|
|
# Datenbank
|
||
|
|
docker exec pfandsystem-dev-mysql mysqldump -upfandsystem -ppfandsystem_secure_password pfandsystem > "${BACKUP_DIR}/${BACKUP_NAME}/database.sql" 2>/dev/null || echo "DB-Backup fehlgeschlagen"
|
||
|
|
|
||
|
|
# Uploads
|
||
|
|
cp -r /root/entwicklung/pfandsystem/backend/uploads "${BACKUP_DIR}/${BACKUP_NAME}/" 2>/dev/null || true
|
||
|
|
|
||
|
|
# .env
|
||
|
|
cp /root/entwicklung/pfandsystem/.env "${BACKUP_DIR}/${BACKUP_NAME}/frontend.env" 2>/dev/null || true
|
||
|
|
cp /root/entwicklung/pfandsystem/backend/.env "${BACKUP_DIR}/${BACKUP_NAME}/backend.env" 2>/dev/null || true
|
||
|
|
|
||
|
|
# Komprimieren
|
||
|
|
cd "${BACKUP_DIR}"
|
||
|
|
tar -czf "${BACKUP_NAME}.tar.gz" "${BACKUP_NAME}"
|
||
|
|
rm -rf "${BACKUP_NAME}"
|
||
|
|
|
||
|
|
# Alte Backups löschen
|
||
|
|
find "${BACKUP_DIR}" -name "backup_*.tar.gz" -mtime +7 -delete
|
||
|
|
|
||
|
|
echo "✅ Dev-Backup: ${BACKUP_NAME}.tar.gz"
|
||
|
|
EOF
|
||
|
|
|
||
|
|
chmod +x /root/entwicklung/pfandsystem/backup-dev.sh
|
||
|
|
|
||
|
|
echo -e "${GREEN}✅ Backup-Scripte erstellt${NC}"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Schritt 8: Docker-Compose anpassen
|
||
|
|
echo -e "${YELLOW}🐳 Schritt 8: Docker-Compose anpassen${NC}"
|
||
|
|
cd /root/entwicklung/pfandsystem
|
||
|
|
sed -i 's/container_name: pfandsystem-/container_name: pfandsystem-dev-/g' docker-compose.yml 2>/dev/null || true
|
||
|
|
echo -e "${GREEN}✅ Docker-Compose angepasst${NC}"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Schritt 9: .env anpassen
|
||
|
|
echo -e "${YELLOW}⚙️ Schritt 9: .env Dateien anpassen${NC}"
|
||
|
|
sed -i 's|UPLOAD_DIR=/root/backend/uploads|UPLOAD_DIR=/root/entwicklung/pfandsystem/backend/uploads|g' /root/entwicklung/pfandsystem/backend/.env 2>/dev/null || true
|
||
|
|
echo -e "${GREEN}✅ .env angepasst${NC}"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Schritt 10: Traefik neu starten
|
||
|
|
echo -e "${YELLOW}🔄 Schritt 10: Traefik neu starten${NC}"
|
||
|
|
docker restart pfandsystem-traefik
|
||
|
|
sleep 3
|
||
|
|
echo -e "${GREEN}✅ Traefik neu gestartet${NC}"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Zusammenfassung
|
||
|
|
echo ""
|
||
|
|
echo "=========================================="
|
||
|
|
echo -e "${GREEN}✅ Setup abgeschlossen!${NC}"
|
||
|
|
echo "=========================================="
|
||
|
|
echo ""
|
||
|
|
echo "📁 Verzeichnisse:"
|
||
|
|
echo " Dev: /root/entwicklung/pfandsystem"
|
||
|
|
echo " Live: /root/livesysteme/borbaecker"
|
||
|
|
echo ""
|
||
|
|
echo "💾 Backups:"
|
||
|
|
echo " Dev: /root/backups/entwicklung/pfandsystem"
|
||
|
|
echo " Live: /root/backups/livesysteme/borbaecker"
|
||
|
|
echo ""
|
||
|
|
echo "🔧 Nächste Schritte:"
|
||
|
|
echo " 1. Dev-System starten:"
|
||
|
|
echo " cd /root/entwicklung/pfandsystem"
|
||
|
|
echo " docker compose up -d"
|
||
|
|
echo " cd backend && npm start &"
|
||
|
|
echo ""
|
||
|
|
echo " 2. Live-System konfigurieren:"
|
||
|
|
echo " Siehe: /root/entwicklung/pfandsystem/MIGRATION_UND_SETUP.md"
|
||
|
|
echo ""
|
||
|
|
echo " 3. Cron-Jobs einrichten:"
|
||
|
|
echo " crontab -e"
|
||
|
|
echo " 0 6-23 * * * /root/entwicklung/pfandsystem/backup-dev.sh"
|
||
|
|
echo ""
|