Veraltete .env Sachen geupdatet
Dieser Commit ist enthalten in:
120
JOURNAL.md
120
JOURNAL.md
@@ -2565,4 +2565,124 @@ UPDATE resource_pools SET is_test = TRUE; -- 20 Ressourcen
|
|||||||
- Zeile 2278: `/customers-licenses` Route
|
- Zeile 2278: `/customers-licenses` Route
|
||||||
- Zeile 2319: `/api/customer/<int:customer_id>/licenses` API-Route
|
- Zeile 2319: `/api/customer/<int:customer_id>/licenses` API-Route
|
||||||
|
|
||||||
|
### 2025-06-10 00:01: Verbesserte Integration zwischen Kunden & Lizenzen und Resource Pool
|
||||||
|
|
||||||
|
**Problem:**
|
||||||
|
- Umständliche Navigation zwischen Kunden & Lizenzen und Resource Pool Bereichen
|
||||||
|
- Keine direkte Verbindung zwischen beiden Ansichten
|
||||||
|
- Benutzer mussten ständig zwischen verschiedenen Seiten hin- und herspringen
|
||||||
|
|
||||||
|
**Implementierte Lösung - 5 Phasen:**
|
||||||
|
|
||||||
|
1. **Phase 1: Ressourcen-Details in Kunden & Lizenzen Ansicht**
|
||||||
|
- API `/api/customer/{id}/licenses` erweitert um konkrete Ressourcen-Informationen
|
||||||
|
- Neue API `/api/license/{id}/resources` für detaillierte Ressourcen einer Lizenz
|
||||||
|
- Anzeige der zugewiesenen Ressourcen mit Info-Buttons und Modal-Dialogen
|
||||||
|
- Klickbare Links zu Ressourcen-Details im Resource Pool
|
||||||
|
|
||||||
|
2. **Phase 2: Quick-Actions für Ressourcenverwaltung**
|
||||||
|
- "Ressourcen verwalten" Button (Zahnrad-Icon) bei jeder Lizenz
|
||||||
|
- Modal mit Übersicht aller zugewiesenen Ressourcen
|
||||||
|
- Vorbereitung für Quarantäne-Funktionen und Ressourcen-Austausch
|
||||||
|
|
||||||
|
3. **Phase 3: Ressourcen-Preview bei Lizenzerstellung**
|
||||||
|
- Live-Anzeige verfügbarer Ressourcen beim Ändern der Anzahl
|
||||||
|
- Erweiterte Verfügbarkeitsanzeige mit Badges (OK/Niedrig/Kritisch)
|
||||||
|
- Warnungen bei niedrigem Bestand mit visuellen Hinweisen
|
||||||
|
- Fortschrittsbalken zur Visualisierung der Verfügbarkeit
|
||||||
|
|
||||||
|
4. **Phase 4: Dashboard-Integration**
|
||||||
|
- Resource Pool Widget mit erweiterten Links
|
||||||
|
- Kritische Warnungen bei < 50 Ressourcen mit "Auffüllen" Button
|
||||||
|
- Direkte Navigation zu gefilterten Ansichten (nach Typ/Status)
|
||||||
|
- Verbesserte visuelle Darstellung mit Tooltips
|
||||||
|
|
||||||
|
5. **Phase 5: Bidirektionale Navigation**
|
||||||
|
- Von Resource Pool: Links zu Kunden/Lizenzen bei zugewiesenen Ressourcen
|
||||||
|
- "Zurück zu Kunden" Button wenn von Kunden & Lizenzen kommend
|
||||||
|
- Navigation-Links im Dashboard für schnellen Zugriff
|
||||||
|
- SQL-Query erweitert um customer_id für direkte Verlinkung
|
||||||
|
|
||||||
|
**Technische Details:**
|
||||||
|
- JavaScript-Funktionen für Modal-Dialoge und Ressourcen-Details
|
||||||
|
- Erweiterte SQL-Queries mit JOINs für Ressourcen-Informationen
|
||||||
|
- Bootstrap 5 Tooltips und Modals für bessere UX
|
||||||
|
- Globale Variable `currentLicenses` für Caching der Lizenzdaten
|
||||||
|
|
||||||
|
**Geänderte Dateien:**
|
||||||
|
- `v2_adminpanel/app.py` - Neue APIs und erweiterte Queries
|
||||||
|
- `v2_adminpanel/templates/customers_licenses.html` - Ressourcen-Details und Modals
|
||||||
|
- `v2_adminpanel/templates/index.html` - Erweiterte Verfügbarkeitsanzeige
|
||||||
|
- `v2_adminpanel/templates/dashboard.html` - Verbesserte Resource Pool Integration
|
||||||
|
- `v2_adminpanel/templates/resources.html` - Bidirektionale Navigation
|
||||||
|
|
||||||
|
**Status:** ✅ Alle 5 Phasen erfolgreich implementiert
|
||||||
|
|
||||||
|
### 2025-06-10 00:15: IP-Adressen-Erfassung hinter Reverse Proxy korrigiert
|
||||||
|
|
||||||
|
**Problem:**
|
||||||
|
- Flask-App erfasste nur die Docker-interne IP-Adresse von Nginx (172.19.0.5)
|
||||||
|
- Echte Client-IPs wurden nicht in Audit-Logs und Login-Attempts gespeichert
|
||||||
|
- Nginx setzte die Header korrekt, aber Flask las sie nicht aus
|
||||||
|
|
||||||
|
**Ursache:**
|
||||||
|
- Flask verwendet standardmäßig nur `request.remote_addr`
|
||||||
|
- Dies gibt bei einem Reverse Proxy nur die Proxy-IP zurück
|
||||||
|
- Die Header `X-Real-IP` und `X-Forwarded-For` wurden ignoriert
|
||||||
|
|
||||||
|
**Lösung:**
|
||||||
|
1. **ProxyFix Middleware** hinzugefügt für korrekte Header-Verarbeitung
|
||||||
|
2. **get_client_ip() Funktion** angepasst:
|
||||||
|
- Prüft zuerst `X-Real-IP` Header
|
||||||
|
- Dann `X-Forwarded-For` Header (nimmt erste IP bei mehreren)
|
||||||
|
- Fallback auf `request.remote_addr`
|
||||||
|
3. **Debug-Logging** für IP-Erfassung hinzugefügt
|
||||||
|
4. **Alle `request.remote_addr` Aufrufe** durch `get_client_ip()` ersetzt
|
||||||
|
|
||||||
|
**Technische Details:**
|
||||||
|
```python
|
||||||
|
# ProxyFix für korrekte IP-Adressen
|
||||||
|
app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_proto=1, x_host=1, x_prefix=1)
|
||||||
|
|
||||||
|
# Verbesserte IP-Erfassung
|
||||||
|
def get_client_ip():
|
||||||
|
if request.headers.get('X-Real-IP'):
|
||||||
|
return request.headers.get('X-Real-IP')
|
||||||
|
elif request.headers.get('X-Forwarded-For'):
|
||||||
|
return request.headers.get('X-Forwarded-For').split(',')[0].strip()
|
||||||
|
else:
|
||||||
|
return request.remote_addr
|
||||||
|
```
|
||||||
|
|
||||||
|
**Geänderte Dateien:**
|
||||||
|
- `v2_adminpanel/app.py` - ProxyFix und verbesserte IP-Erfassung
|
||||||
|
|
||||||
|
**Status:** ✅ Implementiert - Neue Aktionen erfassen jetzt echte Client-IPs
|
||||||
|
|
||||||
|
### 2025-06-10 00:30: Docker ENV Legacy-Format Warnungen behoben
|
||||||
|
|
||||||
|
**Problem:**
|
||||||
|
- Docker Build zeigte Warnungen: "LegacyKeyValueFormat: ENV key=value should be used"
|
||||||
|
- Veraltetes Format `ENV KEY VALUE` wurde in Dockerfiles verwendet
|
||||||
|
|
||||||
|
**Lösung:**
|
||||||
|
- Alle ENV-Anweisungen auf neues Format `ENV KEY=VALUE` umgestellt
|
||||||
|
- Betraf hauptsächlich v2_postgres/Dockerfile mit 3 ENV-Zeilen
|
||||||
|
|
||||||
|
**Geänderte Dateien:**
|
||||||
|
- `v2_postgres/Dockerfile` - ENV-Format modernisiert
|
||||||
|
|
||||||
|
**Beispiel der Änderung:**
|
||||||
|
```dockerfile
|
||||||
|
# Alt (Legacy):
|
||||||
|
ENV LANG de_DE.UTF-8
|
||||||
|
ENV LANGUAGE de_DE:de
|
||||||
|
|
||||||
|
# Neu (Modern):
|
||||||
|
ENV LANG=de_DE.UTF-8
|
||||||
|
ENV LANGUAGE=de_DE:de
|
||||||
|
```
|
||||||
|
|
||||||
|
**Status:** ✅ Alle Dockerfiles verwenden jetzt das moderne ENV-Format
|
||||||
|
|
||||||
**Status:** ✅ Behoben
|
**Status:** ✅ Behoben
|
||||||
1
backups/backup_v2docker_20250610_000418_encrypted.sql.gz.enc
Normale Datei
1
backups/backup_v2docker_20250610_000418_encrypted.sql.gz.enc
Normale Datei
Dateidiff unterdrückt, weil mindestens eine Zeile zu lang ist
@@ -11,9 +11,9 @@ RUN apt-get update && apt-get install -y locales tzdata \
|
|||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Locale-Umgebungsvariablen setzen
|
# Locale-Umgebungsvariablen setzen
|
||||||
ENV LANG de_DE.UTF-8
|
ENV LANG=de_DE.UTF-8
|
||||||
ENV LANGUAGE de_DE:de
|
ENV LANGUAGE=de_DE:de
|
||||||
ENV LC_ALL de_DE.UTF-8
|
ENV LC_ALL=de_DE.UTF-8
|
||||||
|
|
||||||
# Zeitzone setzen
|
# Zeitzone setzen
|
||||||
ENV TZ=Europe/Berlin
|
ENV TZ=Europe/Berlin
|
||||||
|
|||||||
In neuem Issue referenzieren
Einen Benutzer sperren