feat!: Environment Variable Konfigurationssystem implementieren #15

Merged
zenn merged 5 commits from adding-Environment-variables-to-the-project into devel 2025-09-14 10:00:41 +02:00
Owner

Übersicht

Diese PR führt ein umfassendes Environment Variable Konfigurationssystem ein, das die Flexibilität und Sicherheit der Anwendung in verschiedenen Deployment-Szenarien erheblich verbessert.

🚨 Breaking Changes

  • Datenbankinitialisierung: Verwendet jetzt Environment Variables anstelle von hardcodierten Verbindungen
  • Legacy-Funktionen entfernt: InitSQLiteDB, InitPostgresDB, und InitMySQLDB Funktionen wurden entfernt
  • Konfiguration erforderlich: Bestehende Deployments müssen entsprechende Environment Variables setzen

Neue Features

  • Multi-Database-Support: Unterstützung für SQLite, PostgreSQL und MySQL
  • Automatische Fallbacks: Sinnvolle Standardwerte im Debug-Modus
  • Umfassende Konfiguration: Environment Variables für:
    • Datenbankverbindungen
    • JWT-Secrets
    • Admin-Credentials
    • Server-Konfiguration

🐛 Bugfixes

  • JWT Token-Verarbeitung: JWT Secret wird jetzt korrekt von String zu Byte Array konvertiert
  • Token-Signierung und -Validierung: Behebt Probleme mit der JWT-Library-Kompatibilität

📚 Dokumentation

  • Erweiterte Dokumentation: Umfassende Environment Variable Referenz
  • Deployment-Beispiele:
    • systemd Service-Konfiguration
    • Docker Deployment
    • Produktions-Setup-Guides
  • Verschiedene Deployment-Szenarien abgedeckt

Commits

  • 8fbc638 - feat!: add environment variable configuration system
  • d26d639 - docs: update configuration and deployment documentation
  • c3b202b - fix(jwt): convert JWT secret string to byte array

Migration Guide

Für bestehende Installationen:

  1. Environment Variables setzen:

    export DB_TYPE=sqlite
    export DB_PATH=./app.db
    export JWT_SECRET=your-secret-key
    export ADMIN_USER=admin
    export ADMIN_PASSWORD=secure-password
    
  2. Docker-Umgebung:

    environment:
      - DB_TYPE=postgres
      - DB_HOST=localhost
      - DB_PORT=5432
      - DB_NAME=myapp
      - DB_USER=user
      - DB_PASSWORD=password
    
  3. Produktionsumgebung: Siehe erweiterte Dokumentation für vollständige Setup-Anleitungen

Testing

  • SQLite-Konfiguration getestet
  • PostgreSQL-Konfiguration getestet
  • MySQL-Konfiguration getestet
  • JWT Token-Generierung und -Validierung
  • Fallback-Verhalten im Debug-Modus

Review Notes

  • Diese PR macht die Anwendung deployment-ready für verschiedene Umgebungen
  • Besondere Aufmerksamkeit auf die Breaking Changes bei der Code-Review
  • Dokumentation sollte vor dem Merge überprüft werden

#5

## Übersicht Diese PR führt ein umfassendes Environment Variable Konfigurationssystem ein, das die Flexibilität und Sicherheit der Anwendung in verschiedenen Deployment-Szenarien erheblich verbessert. ## 🚨 Breaking Changes - **Datenbankinitialisierung**: Verwendet jetzt Environment Variables anstelle von hardcodierten Verbindungen - **Legacy-Funktionen entfernt**: `InitSQLiteDB`, `InitPostgresDB`, und `InitMySQLDB` Funktionen wurden entfernt - **Konfiguration erforderlich**: Bestehende Deployments müssen entsprechende Environment Variables setzen ## ✨ Neue Features - **Multi-Database-Support**: Unterstützung für SQLite, PostgreSQL und MySQL - **Automatische Fallbacks**: Sinnvolle Standardwerte im Debug-Modus - **Umfassende Konfiguration**: Environment Variables für: - Datenbankverbindungen - JWT-Secrets - Admin-Credentials - Server-Konfiguration ## 🐛 Bugfixes - **JWT Token-Verarbeitung**: JWT Secret wird jetzt korrekt von String zu Byte Array konvertiert - **Token-Signierung und -Validierung**: Behebt Probleme mit der JWT-Library-Kompatibilität ## 📚 Dokumentation - **Erweiterte Dokumentation**: Umfassende Environment Variable Referenz - **Deployment-Beispiele**: - systemd Service-Konfiguration - Docker Deployment - Produktions-Setup-Guides - **Verschiedene Deployment-Szenarien** abgedeckt ## Commits - `8fbc638` - feat!: add environment variable configuration system - `d26d639` - docs: update configuration and deployment documentation - `c3b202b` - fix(jwt): convert JWT secret string to byte array ## Migration Guide Für bestehende Installationen: 1. **Environment Variables setzen**: ```bash export DB_TYPE=sqlite export DB_PATH=./app.db export JWT_SECRET=your-secret-key export ADMIN_USER=admin export ADMIN_PASSWORD=secure-password ``` 2. **Docker-Umgebung**: ```yaml environment: - DB_TYPE=postgres - DB_HOST=localhost - DB_PORT=5432 - DB_NAME=myapp - DB_USER=user - DB_PASSWORD=password ``` 3. **Produktionsumgebung**: Siehe erweiterte Dokumentation für vollständige Setup-Anleitungen ## Testing - ✅ SQLite-Konfiguration getestet - ✅ PostgreSQL-Konfiguration getestet - ✅ MySQL-Konfiguration getestet - ✅ JWT Token-Generierung und -Validierung - ✅ Fallback-Verhalten im Debug-Modus ## Review Notes - Diese PR macht die Anwendung deployment-ready für verschiedene Umgebungen - Besondere Aufmerksamkeit auf die Breaking Changes bei der Code-Review - Dokumentation sollte vor dem Merge überprüft werden #5
zenn self-assigned this 2025-09-11 14:24:37 +02:00
Add comprehensive environment variable support for database connections,
JWT secrets, admin credentials, and server configuration. Supports
SQLite, PostgreSQL, and MySQL with automatic fallbacks to sensible
defaults in debug mode.

BREAKING CHANGE: database initialization now uses environment variables
instead of hardcoded connections. Legacy InitSQLiteDB, InitPostgresDB,
and InitMySQLDB functions removed.
Expand documentation with comprehensive environment variable reference,
deployment examples for various scenarios including systemd service
configuration, Docker deployment, and production setup guides.
Add ChangeUserRoleById function to allow programmatic role updates
for user management operations.
Fix JWT token signing and validation by properly converting the JWT secret
environment variable from string to byte array as required by the jwt library.
- got in to the wiki
zenn force-pushed adding-Environment-variables-to-the-project from c571666b78 to 5036164214 2025-09-11 15:03:29 +02:00 Compare
zenn merged commit 5036164214 into devel 2025-09-14 10:00:41 +02:00
zenn deleted branch adding-Environment-variables-to-the-project 2025-09-14 10:00:41 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: zenn/SpotFascistMedia#15
No description provided.