Table of Contents
- Wartungs-Dokumentation
- Übersicht
- Regelmäßige Wartungsaufgaben
- Troubleshooting
- Häufige Probleme
- Problem: Anmeldeformular wird nicht angezeigt
- Problem: E-Mails werden nicht versendet
- Problem: Datenbank-Fehler
- Problem: Admin-Login funktioniert nicht
- Problem: Build schlägt fehl
- Performance-Probleme
- Backup & Wiederherstellung
- Monitoring
- Updates
- Cleanup
- Dokumentation aktualisieren
- Support & Kontakt
Wartungs-Dokumentation
Übersicht
Dieses Dokument beschreibt regelmäßige Wartungsaufgaben und Troubleshooting für die Zwergen-Börse Website.
Regelmäßige Wartungsaufgaben
Täglich
Anmeldeanzahl prüfen:
- Admin-Bereich öffnen
- Counter prüfen (
/backend/web/counter.php) - Bei Bedarf CSV-Export
Wöchentlich
Logs prüfen:
- PHP Error Logs
- Web-Server Logs
- Admin-Actions Log (
public/data/admin_actions.log)
Backup erstellen:
# Datenbank
cp public/data/zwergenboerse.db backup/zwergenboerse_$(date +%Y%m%d).db
# Optional: Gesamtes public/ Verzeichnis
tar -czf backup/public_$(date +%Y%m%d).tar.gz public/
Monatlich
Dependencies aktualisieren:
npm update
npm audit fix
Datenbank optimieren:
VACUUM;
System-Updates:
- PHP-Updates prüfen
- Server-Updates (falls nötig)
Vor jeder Veranstaltung
-
Konfiguration prüfen:
- Event-Datum
- Anmeldezeitraum
- Nummernbereich
- Organisator-E-Mail
-
Test-Anmeldung durchführen:
- Formular testen
- E-Mail-Versand prüfen
- Admin-Benachrichtigung prüfen
-
Backup erstellen
Nach jeder Veranstaltung
- Anmeldungen exportieren (CSV)
- Backup erstellen
- Anmeldungen löschen (optional, für nächste Veranstaltung)
- Konfiguration zurücksetzen (falls nötig)
Troubleshooting
Häufige Probleme
Problem: Anmeldeformular wird nicht angezeigt
Symptome:
- "Anmeldung ist nur vom X bis Y möglich" außerhalb Zeitraum
- "Kontingent erschöpft" obwohl noch Plätze frei
Lösung:
- Konfiguration im Admin-Bereich prüfen
- Anmeldezeitraum prüfen
- Nummernbereich prüfen
- Datenbank prüfen (vergebene Nummern)
Problem: E-Mails werden nicht versendet
Symptome:
- Keine Bestätigungs-E-Mails
- Keine Organisator-Benachrichtigungen
Lösung:
-
PHP
mail()Funktion testen:<?php mail('test@schumbi.de', 'Test', 'Test-Mail'); ?> -
sendmail/postfix Status prüfen:
systemctl status postfix -
Error-Logs prüfen:
tail -f /var/log/php_errors.log -
SMTP-Konfiguration prüfen (falls verwendet)
Problem: Datenbank-Fehler
Symptome:
- "Database directory is not writable"
- "Could not open database file"
Lösung:
-
Berechtigungen prüfen:
ls -la public/data/ chmod 755 public/data chown www-data:www-data public/data -
Verzeichnis existiert:
mkdir -p public/data -
Disk-Space prüfen:
df -h
Problem: Admin-Login funktioniert nicht
Symptome:
- "Zu viele Fehlversuche"
- Passwort wird nicht akzeptiert
Lösung:
-
Rate-Limit warten (10 Minuten)
-
Passwort prüfen
-
Session-Dateien prüfen:
ls -la /var/lib/php/sessions/ -
Passwort zurücksetzen (in Datenbank):
-- config ist eine Key/Value-Tabelle UPDATE config SET value = '$2y$10$...' WHERE `key` = 'adminPasswordHash';
Problem: Build schlägt fehl
Symptome:
npm run buildgibt Fehler- Dateien werden nicht generiert
Lösung:
-
Node.js-Version prüfen (18+):
node --version -
Dependencies neu installieren:
rm -rf node_modules package-lock.json npm install -
Fehlermeldungen prüfen
-
Disk-Space prüfen
Performance-Probleme
Langsame Datenbank-Abfragen
Lösung:
-
Datenbank optimieren:
VACUUM; ANALYZE; -
Indizes prüfen (falls nötig)
-
Anzahl Anmeldungen prüfen (bei sehr vielen: Archivierung)
Hohe Server-Last
Lösung:
- Caching implementieren (falls nötig)
- PHP-Opcache aktivieren
- Web-Server optimieren
- Monitoring einrichten
Backup & Wiederherstellung
Backup-Strategie
Automatisiert (empfohlen):
#!/bin/bash
# backup.sh
DATE=$(date +%Y%m%d)
BACKUP_DIR="/path/to/backups"
# Datenbank
cp public/data/zwergenboerse.db $BACKUP_DIR/zwergenboerse_$DATE.db
# Alte Backups löschen (älter als 30 Tage)
find $BACKUP_DIR -name "zwergenboerse_*.db" -mtime +30 -delete
Cron-Job:
# Täglich um 2 Uhr
0 2 * * * /path/to/backup.sh
Wiederherstellung
Datenbank:
cp backup/zwergenboerse_YYYYMMDD.db public/data/zwergenboerse.db
chmod 644 public/data/zwergenboerse.db
Gesamtes System:
tar -xzf backup/public_YYYYMMDD.tar.gz -C /path/to/restore/
Monitoring
Zu überwachen
-
Disk-Space:
df -h -
PHP-Error-Logs:
tail -f /var/log/php_errors.log -
Web-Server-Logs:
tail -f /var/log/apache2/access.log tail -f /var/log/apache2/error.log -
Anmeldeanzahl:
- Counter-Endpoint prüfen
- CSV-Export regelmäßig
Alerts einrichten
Bei kritischen Problemen:
- Disk-Space < 10%
- PHP-Errors
- Datenbank-Fehler
- E-Mail-Versand-Fehler
Updates
Dependencies aktualisieren
Node.js:
npm update
npm audit fix
PHP:
- System-Updates (apt/yum)
- PHP-Extensions prüfen
Sicherheits-Updates
Regelmäßig prüfen:
- PHP-Sicherheits-Updates
- Node.js-Sicherheits-Updates
- System-Updates
Vorgehen:
- Backup erstellen
- Updates testen (Staging)
- Updates einspielen
- Funktionen testen
Cleanup
Alte Daten
Anmeldungen löschen (nach Veranstaltung):
- Über Admin-Interface (außerhalb Zeitraum)
- Oder manuell in Datenbank
Logs rotieren:
# Log-Rotation einrichten
logrotate /etc/logrotate.d/zwergenboerse
Build-Artefakte
public/ Verzeichnis:
- Wird beim Build neu generiert
- Alte Dateien werden überschrieben
node_modules:
- Kann nach Build gelöscht werden (wird bei
npm installneu erstellt)
Dokumentation aktualisieren
Bei Änderungen
- Code-Kommentare aktualisieren
- Wiki-Dokumentation aktualisieren
- Changelog führen (optional)
Neue Funktionen dokumentieren
- In entsprechendem Wiki-Dokument
- Code-Kommentare
- Admin-Anleitung (falls Admin-Funktion)
Support & Kontakt
Bei Problemen
- Logs prüfen
- Dokumentation konsultieren
- Backup prüfen (vor Änderungen)
- System-Administrator kontaktieren
Nützliche Befehle
# PHP-Info
php -i
# PHP-Version
php -v
# SQLite-Version
sqlite3 --version
# Node.js-Version
node --version
# Disk-Space
df -h
# Logs anzeigen
tail -f /var/log/php_errors.log
Einstieg
Architektur
- Architektur-Übersicht
- Frontend-Build
- Backend
- Datenbank
- Mail-Queue
- Performance & Optimierungen
- Entscheidungen & Historie
Betrieb
Projektarbeit
- Code:
ssh://forgejo@home.schumbi.de/ralf/zgb_www.git - Wiki:
ssh://forgejo@home.schumbi.de/ralf/zgb_www.wiki.git