Dateien
Hetzner-Backup/JOURNAL.md

171 Zeilen
5.4 KiB
Markdown

# v2-Docker Projekt Journal
## Projektübersicht
Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker-basierter Architektur.
### Technische Anforderungen
- **Lokaler Betrieb**: Docker mit 4GB RAM und 40GB Speicher
- **Internet-Zugriff**:
- Admin Panel: https://admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com
- API Server: https://api-software-undso.z5m7q9dk3ah2v1plx6ju.com
- **Datenbank**: PostgreSQL mit 2 Admin-Usern (rac00n, w@rh@mm3r)
- **Ziel**: PoC für spätere VPS-Migration
---
## Aktueller Stand (2025-01-06)
### ✅ Implementiert
1. **Docker-Infrastruktur**
- docker-compose.yaml mit 3 Services (PostgreSQL, Admin Panel, License Server)
- Interne Bridge-Netzwerkkommunikation
- Resource Limits konfiguriert (2 CPUs, 4GB RAM pro Service)
2. **PostgreSQL Datenbank**
- Tabellen: customers, licenses
- Init-Script vorhanden
- Persistente Datenspeicherung
3. **Admin Panel (Basis)**
- Flask-Anwendung mit Session-Management
- Login-Funktionalität für 2 Admin-User
- Lizenz-Erstellungsformular
- Automatische Kundenerstellung
- Läuft auf Port 443 mit selbstsigniertem SSL
### ❌ Noch nicht implementiert
1. **License Server API**
- Nur Platzhalter-Container vorhanden
- Keine API-Endpunkte
- Keine Lizenzvalidierung
- Kein Heartbeat/Session-Management
2. **Admin Panel Erweiterungen**
- Keine Lizenzübersicht
- Keine Bearbeitungs-/Löschfunktionen
- Keine Kundenverwaltung
- Kein UTF-8 Support für deutsche Umlaute
3. **Internet-Zugriff**
- Kein Reverse Proxy
- Keine gültigen SSL-Zertifikate
- Subdomain-Routing nicht konfiguriert
---
## Offene Aufgaben (Priorität)
### 🔴 Hoch
1. **UTF-8 Support** für deutsche Sonderzeichen (äöüß)
2. **Reverse Proxy Setup** (Nginx/Traefik) für Subdomain-Routing
3. **SSL-Zertifikate** (Let's Encrypt) für beide Subdomains
4. **License Server API implementieren**
- `/api/version` - Versionscheck
- `/api/validate` - Lizenzvalidierung
- `/api/heartbeat` - Session-Management
5. **Admin Panel: Lizenzübersicht**
### 🟡 Mittel
1. **Admin Panel: Lizenz bearbeiten/löschen**
2. **Admin Panel: Kundenverwaltung**
3. **Session-Tracking** (nur eine aktive Session pro Lizenz)
4. **Logging-System** für Audit-Trail
### 🟢 Niedrig
1. **Email-Benachrichtigungen**
2. **JWT-Authentifizierung für API**
3. **Backup-Strategie**
4. **VPS-Migrationsdokumentation**
---
## Bekannte Probleme
1. PostgreSQL Volume-Pfad wurde von absolutem Windows-Pfad auf Docker Volume geändert
2. Duplizierte .env Datei in templates/ Ordner
3. Credentials im Klartext in .env Dateien
4. Selbstsignierte SSL-Zertifikate verursachen Browser-Warnungen
---
## Nächste Schritte
1. UTF-8 Support implementieren
2. Reverse Proxy mit SSL einrichten
3. Admin Panel Funktionalität erweitern
4. License Server API entwickeln
---
## Änderungsprotokoll
### 2025-01-06 - Journal erstellt
- Initialer Projektstand dokumentiert
- Aufgabenliste priorisiert
- Technische Anforderungen festgehalten
### 2025-01-06 - UTF-8 Support implementiert
- Flask App Konfiguration für UTF-8 hinzugefügt (JSON_AS_ASCII=False)
- PostgreSQL Verbindung mit UTF-8 client_encoding
- HTML Forms mit accept-charset="UTF-8"
- Dockerfile mit deutschen Locale-Einstellungen (de_DE.UTF-8)
- PostgreSQL Container mit UTF-8 Initialisierung
- init.sql mit SET client_encoding = 'UTF8'
**Geänderte Dateien:**
- v2_adminpanel/app.py
- v2_adminpanel/templates/index.html
- v2_adminpanel/init.sql
- v2_adminpanel/Dockerfile
- v2/docker-compose.yaml
**Nächster Test:**
- Container neu bauen und starten
- Kundennamen mit Umlauten testen (z.B. "Müller GmbH", "Björn Schäfer")
- Email mit Umlauten testen
### 2025-01-06 - Lizenzübersicht implementiert
- Neue Route `/licenses` für Lizenzübersicht
- SQL-Query mit JOIN zwischen licenses und customers
- Status-Berechnung (aktiv, läuft bald ab, abgelaufen)
- Farbcodierung für verschiedene Status
- Navigation zwischen Lizenz erstellen und Übersicht
**Neue Features:**
- Anzeige aller Lizenzen mit Kundeninformationen
- Status-Anzeige basierend auf Ablaufdatum
- Unterscheidung zwischen Voll- und Testversion
- Responsive Tabelle mit Bootstrap
- Link von Dashboard zur Übersicht und zurück
**Geänderte/Neue Dateien:**
- v2_adminpanel/app.py (neue Route hinzugefügt)
- v2_adminpanel/templates/licenses.html (neu erstellt)
- v2_adminpanel/templates/index.html (Navigation ergänzt)
**Nächster Test:**
- Container neu starten
- Mehrere Lizenzen mit verschiedenen Ablaufdaten erstellen
- Lizenzübersicht unter /licenses aufrufen
### 2025-01-06 - Lizenz bearbeiten/löschen implementiert
- Neue Routen für Bearbeiten und Löschen von Lizenzen
- Bearbeitungsformular mit vorausgefüllten Werten
- Aktiv/Inaktiv-Status kann geändert werden
- Lösch-Bestätigung per JavaScript confirm()
- Kunde kann nicht geändert werden (nur Lizenzdetails)
**Neue Features:**
- `/license/edit/<id>` - Bearbeitungsformular
- `/license/delete/<id>` - Lizenz löschen (POST)
- Aktionen-Spalte in der Lizenzübersicht
- Buttons für Bearbeiten und Löschen
- Checkbox für Aktiv-Status
**Geänderte/Neue Dateien:**
- v2_adminpanel/app.py (edit_license und delete_license Routen)
- v2_adminpanel/templates/licenses.html (Aktionen-Spalte hinzugefügt)
- v2_adminpanel/templates/edit_license.html (neu erstellt)
**Sicherheit:**
- Login-Required für alle Aktionen
- POST-only für Löschvorgänge
- Bestätigungsdialog vor dem Löschen