-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupdate.sh
More file actions
117 lines (95 loc) · 3.22 KB
/
Copy pathupdate.sh
File metadata and controls
117 lines (95 loc) · 3.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#!/usr/bin/env bash
set -euo pipefail
APP_DIR="/home/teampulse/app"
SERVICE="teampulse"
APP_USER="teampulse"
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
if [ "$(id -u)" -ne 0 ]; then
echo -e "${RED}Dieses Skript muss als root ausgefuehrt werden (sudo).${NC}"
exit 1
fi
reset_repo_to_origin_main() {
sudo -u "$APP_USER" bash -lc "
cd '$APP_DIR'
git fetch origin
git reset --hard origin/main
git clean -fd
git checkout -B main origin/main
"
}
do_update() {
echo -e "${GREEN}=== TeamPulse Update ===${NC}"
echo ""
if [ -f "$APP_DIR/teampulse.db" ]; then
BACKUP="$APP_DIR/teampulse_backup_$(date +%Y%m%d_%H%M%S).db"
cp "$APP_DIR/teampulse.db" "$BACKUP"
echo -e "${GREEN}DB-Backup erstellt:${NC} $BACKUP"
fi
echo "Code aktualisieren..."
reset_repo_to_origin_main
echo "Dependencies installieren..."
sudo -u "$APP_USER" bash -lc "cd '$APP_DIR' && npm ci --omit=dev"
echo "Script aktualisieren..."
install -m 755 "$APP_DIR/update.sh" /usr/local/bin/teampulse-update
echo "Service neustarten..."
systemctl restart "$SERVICE"
echo ""
echo -e "${GREEN}Update abgeschlossen.${NC}"
systemctl status "$SERVICE" --no-pager -l
}
do_reset() {
echo -e "${RED}=== TeamPulse KOMPLETT-RESET ===${NC}"
echo ""
echo -e "${RED}WARNUNG: Dies loescht ALLE Daten:${NC}"
echo " - Datenbank (alle Events, Kontakte, Umfragen, Antworten)"
echo " - Login-Daten (wird auf admin/admin zurueckgesetzt)"
echo " - .env Konfiguration bleibt erhalten"
echo ""
read -r -p "Bist du sicher? Alle Daten gehen verloren! (ja/nein): " CONFIRM1
if [ "$CONFIRM1" != "ja" ]; then
echo "Abgebrochen."
exit 0
fi
echo ""
read -r -p "LETZTE WARNUNG - wirklich ALLES loeschen und zuruecksetzen? (JA in Grossbuchstaben): " CONFIRM2
if [ "$CONFIRM2" != "JA" ]; then
echo "Abgebrochen."
exit 0
fi
echo ""
echo "Service stoppen..."
systemctl stop "$SERVICE" || true
echo "Datenbank und alle Backups loeschen..."
rm -f "$APP_DIR/teampulse.db" "$APP_DIR/teampulse.db-wal" "$APP_DIR/teampulse.db-shm"
rm -f "$APP_DIR"/teampulse*.db "$APP_DIR"/teampulse*.db-wal "$APP_DIR"/teampulse*.db-shm
echo "Code aktualisieren..."
reset_repo_to_origin_main
echo "Dependencies installieren..."
sudo -u "$APP_USER" bash -lc "cd '$APP_DIR' && rm -rf node_modules && npm ci --omit=dev"
echo "Script aktualisieren..."
install -m 755 "$APP_DIR/update.sh" /usr/local/bin/teampulse-update
echo "Service starten (DB wird neu erstellt mit admin/admin)..."
systemctl start "$SERVICE"
echo ""
echo -e "${GREEN}Reset abgeschlossen.${NC}"
echo -e "${YELLOW}Standard-Login: admin / admin (Passwortaenderung beim ersten Login erforderlich)${NC}"
systemctl status "$SERVICE" --no-pager -l
}
case "${1:-}" in
--reset)
do_reset
;;
""|--update)
do_update
;;
*)
echo "Verwendung: $0 [--update|--reset]"
echo ""
echo " --update Normales Update (Standard)"
echo " --reset Komplett-Reset: loescht alle Daten und setzt alles zurueck"
exit 1
;;
esac