223 lines
8.2 KiB
Markdown
223 lines
8.2 KiB
Markdown
# Update Checklist - Django FBF Projekt
|
|
|
|
**Erstellt am:** 7. Juni 2025
|
|
**Letzter Check:** 7. Juni 2025
|
|
|
|
## 🔍 Übersicht
|
|
|
|
Dieses Dokument listet alle Abhängigkeiten auf, die Updates benötigen, sowie Sicherheitshinweise und Empfehlungen für das Django FBF (Fallen Birdy Form) Projekt.
|
|
|
|
---
|
|
|
|
## 🚨 Kritische Sicherheitsupdates ✅ **ALLE ABGESCHLOSSEN**
|
|
|
|
### 1. CKEditor (HOCH PRIORITÄT) ✅ ABGESCHLOSSEN
|
|
- **Früher:** django-ckeditor 6.7.3 (bündelte CKEditor 4.22.1)
|
|
- **Problem:** CKEditor 4.22.1 war nicht mehr unterstützt und hatte bekannte Sicherheitslücken
|
|
- **Lösung:** ✅ Migration zu CKEditor 5 abgeschlossen
|
|
- **Implementiert:**
|
|
- ✅ `django-ckeditor-5==0.2.18` installiert
|
|
- ✅ Alle Django Settings auf CKEditor 5 umgestellt
|
|
- ✅ CSP Settings für CKEditor 5 CDN aktualisiert
|
|
- ✅ Migration Files korrigiert und Datenbank migriert
|
|
- ✅ Alle Tests erfolgreich (keine Deprecated Warnings)
|
|
- ✅ Web-Interface funktioniert korrekt mit CKEditor 5
|
|
|
|
### 2. Django-allauth Settings (MITTEL PRIORITÄT) ✅ ABGESCHLOSSEN
|
|
- **Problem:** Veraltete Settings-Optionen wurden verwendet
|
|
- **Lösung:** ✅ Alle deprecated Settings erfolgreich aktualisiert
|
|
- **Umgesetzte Änderungen:**
|
|
- ✅ `ACCOUNT_AUTHENTICATION_METHOD` → `ACCOUNT_LOGIN_METHODS = {"username", "email"}`
|
|
- ✅ `ACCOUNT_EMAIL_REQUIRED` → `ACCOUNT_SIGNUP_FIELDS = ["email*", "username*", "password1*", "password2*"]`
|
|
- ✅ `ACCOUNT_LOGIN_ATTEMPTS_LIMIT/TIMEOUT` → `ACCOUNT_RATE_LIMITS = {"login_failed": "5/15m"}`
|
|
- **Validierung:**
|
|
- ✅ Keine Deprecation Warnings mehr vorhanden
|
|
- ✅ django-allauth 65.9.0 läuft einwandfrei
|
|
- ✅ Login-Funktionalität getestet und funktionsfähig
|
|
|
|
### 3. **KRITISCHER FEHLER BEHOBEN** ✅ **ABGESCHLOSSEN**
|
|
- **Problem:** Group DoesNotExist Error verhinderte Applikationsstart
|
|
- **Lösung:** ✅ Template Filter robuster gemacht
|
|
- **Implementiert:**
|
|
- ✅ Sichere Fehlerbehandlung für fehlende User Groups
|
|
- ✅ Anwendung läuft wieder stabil und fehlerfrei
|
|
- ✅ Navbar zeigt Export-Link nur bei vorhandener "data-export" Gruppe
|
|
|
|
---
|
|
|
|
## 🔄 Python & Base System Updates ✅ **ABGESCHLOSSEN**
|
|
|
|
### Python ✅ **HOST UPDATE ABGESCHLOSSEN**
|
|
- **Container:** Python 3.11.13 ✅ (aktuell)
|
|
- **Host System:** Python 3.11.13 ✅ **AKTUALISIERT** (war 3.11.0)
|
|
- **Neueste Stable:** Python 3.12.x (Major Update verfügbar)
|
|
- **Status:** ✅ **Host-System auf neueste 3.11 Version aktualisiert**
|
|
|
|
### pip ✅ **BEREITS AKTUELL**
|
|
- **Aktuell:** 25.1.1 ✅ (bereits neueste Version)
|
|
- **Status:** ✅ **Keine Aktualisierung nötig**
|
|
|
|
---
|
|
|
|
## 🐳 Docker Images Updates ✅ **TEILWEISE ABGESCHLOSSEN**
|
|
|
|
### PostgreSQL ✅ **STABIL BELASSEN**
|
|
- **Aktuell:** postgres:15-alpine (PostgreSQL 15.13)
|
|
- **Verfügbar:** postgres:16-alpine oder postgres:17-alpine
|
|
- **Status:** ✅ PostgreSQL 15 wird noch unterstützt (bis November 2030)
|
|
- **Entscheidung:** ⚠️ **Bei Version 15 belassen** - Update auf 16/17 erfordert Datenbank-Migration
|
|
|
|
### Traefik ✅ **AKTUALISIERT**
|
|
- **Früher:** traefik:v3.2.0 (7 Monate alt)
|
|
- **Aktuell:** traefik:latest ✅ **AKTUALISIERT** (11 Tage alt)
|
|
- **Status:** ✅ **Erfolgreich auf neueste Version aktualisiert**
|
|
|
|
### Python Base Image ✅ **AKTUELL**
|
|
- **Aktuell:** python:3.11-slim ✅ (optimal für Projekt)
|
|
|
|
---
|
|
|
|
## 📦 Python Package Updates
|
|
|
|
### Django Core Packages
|
|
|
|
| Package | Aktuell | Requirement | Status | Priorität |
|
|
|---------|---------|-------------|--------|-----------|
|
|
| Django | 5.2.2 | >=4.2 | ✅ Aktuell | - |
|
|
| django-allauth | 65.9.0 | >=0.55 | ✅ Aktuell | Niedrig |
|
|
| django-ckeditor | 6.7.3 | >=6.6 | ❌ Sicherheit | **HOCH** |
|
|
| django-crispy-forms | 2.4 | >=1 | ✅ Aktuell | Niedrig |
|
|
| django-csp | 4.0 | >=3.7 | ✅ Aktuell | Niedrig |
|
|
| django-environ | 0.12.0 | >=0.9 | ✅ Aktuell | Niedrig |
|
|
| django-jazzmin | 3.0.1 | >=2.6.0 | ✅ Aktuell | Niedrig |
|
|
|
|
### Infrastructure Packages
|
|
|
|
| Package | Aktuell | Requirement | Status | Priorität |
|
|
|---------|---------|-------------|--------|-----------|
|
|
| gunicorn | 23.0.0 | >=20.1 | ✅ Aktuell | Niedrig |
|
|
| psycopg2-binary | 2.9.10 | >=2.9 | ✅ Aktuell | Niedrig |
|
|
| whitenoise | 6.9.0 | >=6.5 | ✅ Aktuell | Niedrig |
|
|
|
|
### Form & UI Packages
|
|
|
|
| Package | Aktuell | Requirement | Status | Priorität |
|
|
|---------|---------|-------------|--------|-----------|
|
|
| crispy-bootstrap5 | 2025.4 | >=0.6 | ✅ Aktuell | Niedrig |
|
|
| django-bootstrap-datepicker-plus | 5.0.5 | >=4.0 | ✅ Aktuell | Niedrig |
|
|
| django-bootstrap-modal-forms | 3.0.5 | >=2 | ✅ Aktuell | Niedrig |
|
|
|
|
---
|
|
|
|
## 🛠️ Empfohlene Update-Reihenfolge
|
|
|
|
### Phase 1: Kritische Sicherheitsupdates ✅ ABGESCHLOSSEN
|
|
1. **CKEditor Migration** ✅ **ABGESCHLOSSEN**
|
|
- ✅ django-ckeditor-5==0.2.18 installiert
|
|
- ✅ Django Settings komplett umgestellt
|
|
- ✅ Migration Files korrigiert
|
|
- ✅ Datenbank erfolgreich migriert
|
|
- ✅ CSP Security Policy aktualisiert
|
|
- ✅ Web-Interface getestet und funktionsfähig
|
|
|
|
2. **Django-allauth Settings aktualisieren** ✅ **ABGESCHLOSSEN**
|
|
- ✅ Alle deprecated Settings in `core/allauth.py` modernisiert
|
|
- ✅ django-allauth 65.9.0 läuft ohne Deprecation Warnings
|
|
- ✅ Login-Funktionalität vollständig getestet und funktionsfähig
|
|
|
|
### Phase 2: System Updates (Nächste Wartung) ✅ **ABGESCHLOSSEN**
|
|
1. **pip Update** ✅ **ABGESCHLOSSEN**
|
|
- ✅ pip bereits auf neuester Version 25.1.1
|
|
|
|
2. **Host Python Update** ✅ **ABGESCHLOSSEN**
|
|
- ✅ Python 3.11.13 via Homebrew installiert
|
|
- ✅ Upgrade von Python 3.11.0 → Python 3.11.13
|
|
|
|
3. **Docker Images Update** ✅ **TEILWEISE ABGESCHLOSSEN**
|
|
- ✅ Traefik v3.2.0 → traefik:latest (erheblich neuer)
|
|
- ⚠️ PostgreSQL 15-alpine beibehalten (16-alpine erfordert Datenbank-Migration)
|
|
- ✅ Veraltete Docker Images aufgeräumt
|
|
|
|
4. **Python Packages Update** ✅ **ABGESCHLOSSEN**
|
|
- ✅ setuptools 65.5.1 → 80.9.0
|
|
- ⚠️ pydantic_core Kompatibilität mit bestehender pydantic Version beibehalten
|
|
|
|
5. **Kritischer Fehler behoben** ✅ **ABGESCHLOSSEN**
|
|
- ✅ Group DoesNotExist Error in template filter behoben
|
|
- ✅ Robuste Fehlerbehandlung für fehlende User Groups implementiert
|
|
|
|
6. **Test-Suite repariert** ✅ **ABGESCHLOSSEN**
|
|
- ✅ Host-System django-ckeditor-5 dependency installiert
|
|
- ✅ Alle 107 Tests bestehen wieder (13 Django + 94 Pytest)
|
|
- ✅ Test Coverage Report generiert
|
|
|
|
### Phase 3: Größere Updates (Geplante Wartung)
|
|
1. **Python 3.12 Migration**
|
|
- Dockerfile aktualisieren: `FROM python:3.12-slim`
|
|
- Tests auf Kompatibilität prüfen
|
|
- Container neu bauen
|
|
|
|
2. **PostgreSQL Update** (Optional)
|
|
- docker-compose.yaml: `postgres:16-alpine`
|
|
- Datenbank-Backup vor Update
|
|
- Migrationstest durchführen
|
|
|
|
---
|
|
|
|
## 🔒 Sicherheitsempfehlungen
|
|
|
|
### Aktuell erkannte Probleme:
|
|
1. **CKEditor 4.22.1** - Bekannte Sicherheitslücken
|
|
2. **Veraltete django-allauth Settings** - Funktional aber deprecated
|
|
|
|
### Präventive Maßnahmen:
|
|
1. **Regelmäßige Sicherheitschecks**
|
|
```bash
|
|
# Dependency-Check alle 2 Wochen
|
|
docker exec django_fbf_web_1 pip check
|
|
docker exec django_fbf_web_1 python manage.py check
|
|
```
|
|
|
|
2. **Requirements Pinning**
|
|
- Exakte Versionen in requirements.txt verwenden
|
|
- Sicherheitsupdates kontrolliert einspielen
|
|
|
|
3. **Automated Security Scanning**
|
|
- GitHub Dependabot aktivieren
|
|
- Oder andere Security-Scanning Tools verwenden
|
|
|
|
---
|
|
|
|
## 📋 Maintenance Checklist
|
|
|
|
### Monatlich:
|
|
- [ ] Django System Check ausführen
|
|
- [ ] Pip Package Updates prüfen
|
|
- [ ] Docker Image Updates prüfen
|
|
- [ ] Security Advisories checken
|
|
|
|
### Quartalsweise:
|
|
- [ ] Major Version Updates evaluieren
|
|
- [ ] Performance Tests nach Updates
|
|
- [ ] Backup-Strategie validieren
|
|
- [ ] Documentation Updates
|
|
|
|
### Jährlich:
|
|
- [ ] Python Version Migration planen
|
|
- [ ] Database Version Update evaluieren
|
|
- [ ] Dependency Audit durchführen
|
|
- [ ] Security Penetration Test
|
|
|
|
---
|
|
|
|
## 🔗 Nützliche Ressourcen
|
|
|
|
- [Django Security Releases](https://docs.djangoproject.com/en/stable/releases/security/)
|
|
- [Python Security Updates](https://www.python.org/downloads/)
|
|
- [PostgreSQL Release Schedule](https://www.postgresql.org/support/versioning/)
|
|
- [CKEditor Migration Guide](https://ckeditor.com/docs/ckeditor5/latest/installation/getting-started/migration-from-ckeditor-4.html)
|
|
|
|
---
|
|
|
|
**Letztes Update:** 7. Juni 2025
|
|
**Nächster Review:** 7. Juli 2025
|