4.0 KiB
4.0 KiB
TimeClock v3 - Deployment Checkliste
Diese Checkliste stellt sicher, dass alle Schritte für ein erfolgreiches Deployment durchgeführt wurden.
Pre-Deployment (Lokal)
- Git Status prüfen:
git status- Alle Änderungen committed? - Tests durchführen: Lokal testen mit
npm run dev - Dependencies aktuell:
npm installin backend/ und frontend/ - Frontend-Build testen:
cd frontend && npm run build - Keine hardcodierten URLs:
grep -r "localhost:3010" frontend/src/
Git Push
git add .
git commit -m "Deployment vX.X.X"
git push origin main
Server-Vorbereitung
- SSH-Zugang:
ssh tsschulz@tsschulz.de - Projekt-Verzeichnis:
cd /var/www/timeclock - Git Pull:
git pull origin main
Deployment Durchführen
Option 1: Automatisches Deployment (Empfohlen)
cd /var/www/timeclock
./deploy.sh update
Das Script führt automatisch aus:
- ✅ Datenbank-Backup
- ✅ Backend Dependencies installieren
- ✅ Frontend .env.production erstellen
- ✅ Frontend neu bauen (mit korrekter API-URL)
- ✅ Backend neu starten
- ✅ Apache neu laden
Option 2: Manuelles Deployment
# 1. Backup
./deploy.sh backup
# 2. Backend
cd /var/www/timeclock/backend
npm install --production
pm2 restart timeclock-backend
# 3. Frontend
cd /var/www/timeclock/frontend
# .env.production prüfen/erstellen
cat > .env.production << 'EOF'
VITE_API_URL=/api
EOF
npm install
rm -rf dist/
npm run build
# 4. Apache neu laden
sudo systemctl reload apache2
Post-Deployment Tests
-
Backend Health-Check:
curl https://stechuhr3.tsschulz.de/api/health # Erwartung: {"status":"ok","message":"TimeClock API v3.0.0",...} -
Frontend lädt:
curl -I https://stechuhr3.tsschulz.de # Erwartung: HTTP/2 200 -
Keine localhost URLs:
grep -r "localhost:3010" /var/www/timeclock/frontend/dist/ # Erwartung: Keine Treffer (oder nur Kommentare) -
PM2 Status:
pm2 status # Erwartung: timeclock-backend | online -
Browser-Tests:
- https://stechuhr3.tsschulz.de lädt
- Login funktioniert
- API-Calls gehen an
/api(nichtlocalhost:3010) - Keine Console-Errors (F12)
Rollback bei Problemen
cd /var/www/timeclock
./deploy.sh rollback
Monitoring
# Backend-Logs live
pm2 logs timeclock-backend
# Apache-Logs
sudo tail -f /var/log/apache2/stechuhr3-error.log
# Backend-Status
./deploy.sh status
# Alle Logs
./deploy.sh logs
Häufige Probleme
Problem: Frontend zeigt "localhost:3010" Fehler
Lösung:
cd /var/www/timeclock/frontend
cat .env.production # Sollte VITE_API_URL=/api enthalten
rm -rf dist/
npm run build
Problem: API 502 Bad Gateway
Lösung:
pm2 restart timeclock-backend
pm2 logs timeclock-backend --lines 50
Problem: Apache zeigt Default-Page
Lösung:
sudo apache2ctl -S | grep stechuhr3 # Prüfe VirtualHost
sudo systemctl reload apache2
Problem: Browser-Cache
Lösung:
- Strg + Shift + R (Hard Reload)
- Oder Private/Incognito Window
Deployment-Frequenz
- Bugfixes: Sofort
- Features: Nach Testing auf Dev
- Breaking Changes: Mit Ankündigung
Backup-Strategie
- Automatisch: Täglich um 2 Uhr (via Cronjob)
- Manuell: Vor jedem Deployment
- Retention: 30 Tage
- Location:
/var/backups/timeclock/
Secrets & Credentials
Niemals committen:
- ❌
.envDateien - ❌ SSL-Zertifikate
- ❌ Datenbank-Passwörter
- ❌ API-Keys
Verwende .gitignore:
.env
.env.local
.env.production.local
*.key
*.pem
Deployment-Log
Dokumentiere jedes Deployment:
Datum: 2025-10-18
Version: v3.0.1
Änderungen:
- API-URLs von hardcoded auf .env umgestellt
- Apache2-Konfiguration korrigiert
- SSL-Zertifikat eingerichtet
Status: ✅ Erfolgreich
Probleme: Keine
Viel Erfolg beim Deployment! 🚀
Bei Fragen: Siehe DEPLOYMENT.md, APACHE2_DEPLOYMENT.md oder CHECK_SERVICES.md