3.9 KiB
3.9 KiB
Deployment-Anleitung für Harheimer TC Website
Wichtig: Produktivdaten schützen!
Die folgenden Dateien enthalten Produktivdaten und dürfen beim Deployment NICHT überschrieben werden:
Server-Daten (authentifizierungskritisch):
server/data/users.json- Benutzerkonten & Passwörterserver/data/sessions.json- Aktive Sessionsserver/data/members.json- Manuelle Mitgliederlisteserver/data/news.json- Interne & öffentliche News
Public-Daten (CSV):
public/data/termine.csv- Vereinsterminepublic/data/mannschaften.csv- Team-Informationenpublic/data/spielsysteme.csv- Spielsystemepublic/data/vereinsmeisterschaften.csv- Meisterschaftsergebnisse
Deployment-Methode 1: Automatisches Script (Empfohlen)
cd /var/www/harheimertc
./deploy-production.sh
Das Script:
- ✅ Pullt neuesten Code
- ✅ Sichert alle Produktivdaten
- ✅ Installiert Dependencies
- ✅ Löscht
.output/(Build-Artefakte) - ✅ Baut neu
- ✅ Stellt Produktivdaten wieder her
- ✅ Startet PM2 neu
Deployment-Methode 2: Manuell
cd /var/www/harheimertc
# 1. Backup erstellen
mkdir -p .backup
cp -r server/data .backup/
cp public/data/*.csv .backup/
# 2. Code aktualisieren
git pull
# 3. Dependencies installieren
npm install
# 4. Alten Build entfernen
rm -rf .output
# 5. Neu bauen
npm run build
# 6. Produktivdaten wiederherstellen
cp -r .backup/data/* server/data/
cp .backup/*.csv public/data/
# 7. Cleanup
rm -rf .backup
# 8. PM2 neu starten
pm2 restart harheimertc
Bei Git-Merge-Konflikten in .output/
Falls Git meldet, dass .output/ Dateien überschrieben würden:
# Einfach löschen und neu bauen
rm -rf .output
git pull
npm run build
pm2 restart harheimertc
Wichtig: Vorher Produktivdaten sichern (siehe oben)!
Erste Einrichtung auf neuem Server
# 1. Repository klonen
git clone git@tsschulz.de:/home/git/harheimertc.git
cd harheimertc
# 2. Dependencies installieren
npm install
# 3. Produktivdaten erstellen (nur beim ersten Mal!)
mkdir -p server/data
echo '[]' > server/data/users.json
echo '[]' > server/data/sessions.json
echo '[]' > server/data/members.json
echo '[]' > server/data/news.json
# 4. Admin-Benutzer erstellen (siehe README.md)
# 5. Bauen
npm run build
# 6. PM2 einrichten
pm2 start harheimertc.config.cjs
pm2 save
Notizen
.output/ist NICHT im Git (steht in.gitignore)- Produktivdaten SOLLEN NICHT im Git sein (werden per
.gitignoreausgeschlossen und in Produktion außerhalb des Repos persistiert, z.B. unter/var/lib/harheimertc) - Bei Deployment: Immer Backup → Build → Restore
- Bei Problemen: Script verwenden oder manuell Daten sichern
Security Operations (Empfehlungen)
Sicherheitsupdates (OS/Libs)
- OS Updates: mindestens monatlich (besser: automatisiert via unattended-upgrades) + Reboot-Fenster einplanen
- Node/NPM Dependencies: Renovate ist vorhanden (
renovate.json). Zusätzlich regelmäßignpm auditprüfen und Updates einspielen.
Backup / Wiederherstellung
- Backup-Inhalt: mindestens
server/data/+public/data/(+ optionalpublic/uploads//server/data/galerie/) - Frequenz: täglich (inkrementell) + wöchentlich (voll) als Richtwert
- Ablage: getrennt vom Server (Offsite), z.B. verschlüsselt (restic/borg) auf Storage
- Restore-Drill: mindestens quartalsweise Wiederherstellung testen
SSH-Härtung
- Nur Key-Auth (PasswordAuthentication=no), Root-Login deaktivieren (PermitRootLogin=no)
- 2FA/MFA optional via SSH-CA / PAM / Bastion Host
- Fail2ban oder äquivalente Schutzmaßnahmen für SSH in Betracht ziehen
Logging / Audit
- Audit-Log (JSONL) liegt unter
server/data/audit.log.jsonl(abschaltbar viaAUDIT_LOG_ENABLED=false) - Empfehlung: Log-Rotation + gesicherte Aufbewahrung (z.B. journald/rotate + offsite)