Skip to content

Lager Guru - Maintenance Checklist

Regelmäßige Aufgaben für Wartung und Optimierung der Lager Guru Anwendung.

Sprache wählen: 🇩🇪 Deutsch | 🇬🇧 English | 🇧🇬 Български

Inhaltsverzeichnis

Tägliche Aufgaben

✅ Health Check

  • [ ] Health-Endpoint prüfen: http://lager-guru.internal/health.html
  • [ ] Docker-Container prüfen: docker compose ps
  • [ ] Kritische Logs prüfen: docker compose logs --tail=50

✅ Monitoring

  • [ ] Supabase Dashboard auf Fehler prüfen
  • [ ] Anwendungsmetriken prüfen (falls Monitoring-Tool vorhanden)
  • [ ] Festplattenspeicher prüfen: df -h

Automatisierung:

bash
# Cron-Job für täglichen Health Check
0 9 * * * curl -f http://lager-guru.internal/health.html || echo "Health check failed" | mail -s "Lager Guru Alert" admin@company.com

Wöchentliche Aufgaben

✅ Security Audit Review

bash
# GitHub Dependabot PRs prüfen
gh pr list --label "dependencies"

# npm audit prüfen
npm audit --audit-level=moderate

# Security Advisories prüfen
npm audit --json | jq '.vulnerabilities'
  • [ ] Dependabot Pull Requests prüfen
  • [ ] Kritische Security-Patches anwenden
  • [ ] Security-Updates dokumentieren

✅ Backup-Integrität

bash
# Letztes Backup prüfen
ls -lh backups/lager-guru/ | tail -1

# Restore testen (optional, in Test-Umgebung)
# pg_restore --list backups/lager-guru/lager-guru-YYYYMMDD_HHMMSS.dump
  • [ ] Prüfen, ob letztes Backup erfolgreich war
  • [ ] Backup-Dateigröße prüfen (sollte nicht 0 Bytes sein)
  • [ ] Backup-Aufbewahrungsrichtlinie prüfen

✅ Anwendungs-Log-Review

bash
# Logs auf Fehler prüfen
docker compose logs --since 7d | grep -i error | wc -l

# Logs auf Warnungen prüfen
docker compose logs --since 7d | grep -i warning | wc -l
  • [ ] Fehler-Logs der letzten Woche prüfen
  • [ ] Auf ungewöhnliche Muster prüfen
  • [ ] Probleme und Lösungen dokumentieren

✅ Performance-Monitoring

  • [ ] Antwortzeiten prüfen
  • [ ] Datenbankabfrage-Performance prüfen
  • [ ] Speichernutzung prüfen: docker stats --no-stream

Monatliche Aufgaben

✅ Dependency Updates

Automatisch (Dependabot):

  • [ ] Dependabot PRs prüfen und mergen
  • [ ] In Development-Umgebung testen, bevor Production
  • [ ] Breaking Changes dokumentieren

Manuelle Prüfungen:

bash
# Auf veraltete Pakete prüfen
npm outdated

# Auf Major-Version-Updates prüfen
npm outdated | grep -E "MAJOR|WANTED"

# package.json aktualisieren (falls nötig)
npm update
  • [ ] Auf Major-Version-Updates prüfen
  • [ ] Changelogs auf Breaking Changes prüfen
  • [ ] Upgrade-Pfad für Major-Versionen planen

✅ Datenbankwartung

Vacuum und Analyze:

sql
-- Datenbankgröße prüfen
SELECT pg_size_pretty(pg_database_size('postgres'));

-- Tabellen mit Bloat prüfen
SELECT 
  schemaname, tablename,
  pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) AS size
FROM pg_tables
WHERE schemaname = 'public'
ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC;

-- Vacuum (automatisch in Supabase, aber kann geprüft werden)
VACUUM ANALYZE;

-- Statistiken prüfen
ANALYZE;
  • [ ] Datenbankgrößenwachstum prüfen
  • [ ] Auf Tabellen-Bloat prüfen
  • [ ] VACUUM ANALYZE ausführen (falls nicht automatisch)
  • [ ] Index-Nutzung prüfen

Index-Optimierung:

sql
-- Unbenutzte Indizes prüfen
SELECT 
  schemaname, tablename, indexname, idx_scan, idx_tup_read, idx_tup_fetch
FROM pg_stat_user_indexes
WHERE idx_scan = 0
ORDER BY pg_relation_size(indexrelid) DESC;

-- Langsame Abfragen prüfen (falls pg_stat_statements vorhanden)
SELECT query, calls, total_time, mean_time
FROM pg_stat_statements
ORDER BY mean_time DESC
LIMIT 10;

✅ Audit-Log-Review

sql
-- Audit-Logs des letzten Monats prüfen
SELECT 
  changed_by,
  table_name,
  action,
  COUNT(*) as changes,
  MAX(changed_at) as last_change
FROM public.audit_log
WHERE changed_at >= NOW() - INTERVAL '1 month'
GROUP BY changed_by, table_name, action
ORDER BY changes DESC;
  • [ ] Audit-Logs auf Anomalien prüfen
  • [ ] Auf nicht autorisierte Änderungen prüfen
  • [ ] Wichtige Änderungen dokumentieren
  • [ ] Alte Audit-Logs archivieren (falls nötig)

✅ Backup-Aufbewahrung

bash
# Backup-Aufbewahrung prüfen
find backups/lager-guru/ -name "*.dump*" -mtime +30 -ls

# Backup-Anzahl prüfen
ls -1 backups/lager-guru/ | wc -l
  • [ ] Backup-Aufbewahrungsrichtlinie prüfen
  • [ ] Alte Backups löschen (gemäß Aufbewahrungsrichtlinie)
  • [ ] Kritische Backups archivieren (off-site)

Quartalsweise Aufgaben

✅ Security Updates

Node.js und Base Images:

bash
# Node.js-Version prüfen
node --version

# Docker Base Image-Versionen prüfen
docker images | grep node
docker images | grep nginx

# Auf Security Advisories prüfen
npm audit
docker scout cves hashmatrix/lager-guru:latest
  • [ ] Auf Node.js Security-Updates prüfen
  • [ ] Docker Base Images aktualisieren (node:18-alpine, nginx:stable-alpine)
  • [ ] Auf OS-Level-Schwachstellen prüfen
  • [ ] Security-Patches anwenden

✅ Performance-Optimierung

Datenbank-Performance:

sql
-- Auf fehlende Indizes prüfen
EXPLAIN ANALYZE SELECT * FROM public.shipments WHERE driver_id = '...';

-- Abfrage-Performance prüfen
SELECT 
  query, 
  calls, 
  total_time, 
  mean_time,
  max_time
FROM pg_stat_statements
WHERE mean_time > 100
ORDER BY mean_time DESC
LIMIT 20;
  • [ ] Datenbankabfrage-Performance prüfen
  • [ ] Langsame Abfragen optimieren
  • [ ] Indizes hinzufügen, wo nötig
  • [ ] Auf Abfrageplan-Änderungen prüfen

Anwendungs-Performance:

bash
# Bundle-Größe prüfen
npm run build
du -sh dist/

# Auf große Abhängigkeiten prüfen
npx bundle-phobia [package-name]
  • [ ] Bundle-Größenwachstum prüfen
  • [ ] Code-Splitting optimieren
  • [ ] Nicht verwendete Abhängigkeiten entfernen
  • [ ] Auf Performance-Regressionen prüfen

Jährliche Aufgaben

✅ Major-Version-Upgrades

Node.js:

bash
# Aktuelle Version prüfen
node --version

# LTS-Zeitplan prüfen
# https://nodejs.org/en/about/releases/
  • [ ] Upgrade auf neuestes LTS planen
  • [ ] In Development-Umgebung testen
  • [ ] Breaking Changes dokumentieren
  • [ ] Migrationsfenster planen

✅ Architektur-Review

  • [ ] Anwendungsarchitektur prüfen
  • [ ] Technical Debt identifizieren
  • [ ] Refactoring-Initiativen planen
  • [ ] Ausrichtung mit Best Practices prüfen

Security Updates

Automatisierte Security-Scans

GitHub Dependabot:

  • Automatische Prüfung auf Schwachstellen
  • Erstellt PRs für Security-Updates
  • Konfiguration: .github/dependabot.yml

npm audit:

bash
# Auf Schwachstellen prüfen
npm audit

# Automatisch beheben (wenn sicher)
npm audit fix

# Mit Breaking Changes beheben
npm audit fix --force  # Vorsicht!

Security-Patch-Priorität

  1. Critical - Sofort anwenden
  2. High - Innerhalb von 1 Woche anwenden
  3. Moderate - Innerhalb von 1 Monat anwenden
  4. Low - Bei nächstem geplanten Update anwenden

Dependency Upgrades

Upgrade-Strategie

  1. Minor/Patch Updates:

    • Automatisch über Dependabot
    • In Development testen
    • In Production mergen
  2. Major Updates:

    • Manuelle Prüfung des Changelogs
    • In separatem Branch testen
    • Migrationsfenster planen
    • Breaking Changes dokumentieren

Upgrade-Checkliste

  • [ ] Changelog prüfen
  • [ ] Auf Breaking Changes prüfen
  • [ ] In Development-Umgebung testen
  • [ ] Code auf veraltete APIs prüfen
  • [ ] Dokumentation aktualisieren
  • [ ] In Production bereitstellen
  • [ ] Auf Fehler überwachen

Datenbankwartung

Regelmäßige Aufgaben

Vacuum:

sql
-- Automatisch in Supabase, aber Einstellungen können geprüft werden
SHOW autovacuum;

Analyze:

sql
-- Aktualisiert Statistiken für Query Planner
ANALYZE public.shipments;
ANALYZE public.zones;
ANALYZE public.profiles;

Index-Wartung:

sql
-- Auf unbenutzte Indizes prüfen
SELECT * FROM pg_stat_user_indexes WHERE idx_scan = 0;

-- Indizes neu aufbauen (falls nötig)
REINDEX TABLE public.shipments;

Log-Rotation

Docker Logs

bash
# Docker-Log-Rotation einrichten
# In docker-compose.yml:
logging:
  driver: "json-file"
  options:
    max-size: "10m"
    max-file: "3"

Anwendungs-Logs

Nginx Logs:

bash
# Log-Rotation für Nginx einrichten
# /etc/logrotate.d/nginx
/var/log/nginx/*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
    endscript
}

Backup-Verifizierung

Backup-Testing

bash
# Backup-Restore testen (in Test-Umgebung)
pg_restore --list backups/lager-guru/lager-guru-YYYYMMDD_HHMMSS.dump

# Backup-Integrität prüfen
pg_restore --schema-only backups/lager-guru/lager-guru-YYYYMMDD_HHMMSS.dump | head -20

Backup-Aufbewahrung

  • Tägliche Backups: Letzte 7 Tage aufbewahren
  • Wöchentliche Backups: Letzte 4 Wochen aufbewahren
  • Monatliche Backups: Letzte 12 Monate aufbewahren
  • Jährliche Backups: 7 Jahre aufbewahren

Letzte Aktualisierung: 2025-11-05

Released under Commercial License