diff --git a/update_checklist.md b/update_checklist.md new file mode 100644 index 0000000..f7888e5 --- /dev/null +++ b/update_checklist.md @@ -0,0 +1,199 @@ +# 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 + +### 1. CKEditor (HOCH PRIORITÄT) +- **Aktuell:** django-ckeditor 6.7.3 (bündelt CKEditor 4.22.1) +- **Problem:** CKEditor 4.22.1 wird nicht mehr unterstützt und hat bekannte Sicherheitslücken +- **Empfehlung:** Migration zu CKEditor 5 oder einem alternativen Editor +- **Alternativen:** + - `django-ckeditor-5` (falls CKEditor 5 Lizenz akzeptabel) + - `django-tinymce` (Alternative Rich Text Editor) + - `django-froala-editor` (kommerzielle Alternative) + +### 2. Django-allauth Settings (MITTEL PRIORITÄT) +- **Problem:** Veraltete Settings-Optionen werden verwendet +- **Deprecation Warnings:** + - `ACCOUNT_AUTHENTICATION_METHOD` → `ACCOUNT_LOGIN_METHODS` + - `ACCOUNT_EMAIL_REQUIRED` → `ACCOUNT_SIGNUP_FIELDS` + - `ACCOUNT_LOGIN_ATTEMPTS_LIMIT/TIMEOUT` → `ACCOUNT_RATE_LIMITS` + +--- + +## 🔄 Python & Base System Updates + +### Python +- **Container:** Python 3.11.13 ✅ (aktuell) +- **Host System:** Python 3.11.0 (Minor Update verfügbar → 3.11.13) +- **Neueste Stable:** Python 3.12.x (Major Update verfügbar) +- **Empfehlung:** + - Kurzfristig: Update auf Python 3.11.13 (Host) + - Mittel-/Langfristig: Migration zu Python 3.12.x + +### pip +- **Aktuell:** 24.0 +- **Verfügbar:** 25.1.1 +- **Update Command:** `pip install --upgrade pip` + +--- + +## 🐳 Docker Images Updates + +### PostgreSQL +- **Aktuell:** postgres:15-alpine (PostgreSQL 15.13) +- **Neueste:** postgres:16-alpine oder postgres:17-alpine +- **Status:** ✅ PostgreSQL 15 wird noch unterstützt (bis November 2030) +- **Empfehlung:** Update auf PostgreSQL 16 oder 17 in der nächsten größeren Version + +### Traefik +- **Aktuell:** traefik:v3.2.0 +- **Status:** ✅ Aktuelle Version (Oktober 2024) +- **Empfehlung:** Regelmäßig auf neueste 3.x Version prüfen + +### Python Base Image +- **Aktuell:** python:3.11-slim +- **Empfehlung:** Update auf python:3.12-slim erwägen + +--- + +## 📦 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 (Sofort) +1. **CKEditor ersetzen** + ```bash + # Option 1: django-ckeditor-5 verwenden + pip uninstall django-ckeditor + pip install django-ckeditor-5 + + # Option 2: TinyMCE verwenden + pip uninstall django-ckeditor + pip install django-tinymce + ``` + +2. **Django-allauth Settings aktualisieren** + - Settings in `core/settings.py` anpassen + - Deprecated Warnings beheben + +### Phase 2: System Updates (Nächste Wartung) +1. **pip Update** + ```bash + docker exec django_fbf_web_1 pip install --upgrade pip + ``` + +2. **Host Python Update** + ```bash + # Auf Host System + brew upgrade python@3.11 # oder entsprechender Package Manager + ``` + +### 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