# EnvHelper **EnvHelper** ist eine lokale Windows-Desktop-App zum Ausfüllen von `.env` Vorlagen. Sie erkennt `CHANGE_ME` Platzhalter, erzeugt passende Werte im erwarteten Format und gibt eine fertige `.env` aus. ```text Status: Desktop App Plattform: Windows Stack: Electron, React, Vite, TypeScript Build: Gitea Actions Runner ``` ## Highlights - `.env` Datei laden oder reinen Text einfügen - `CHANGE_ME...` Platzhalter automatisch erkennen - Passwörter, Secrets, Base64-Keys, UUIDs, Ports, URLs und E-Mails heuristisch erzeugen - Gleiche Placeholder konsistent mit demselben Wert ersetzen - Standardwerte pro Key definieren und im Output überschreiben lassen - Hell/Dunkel/System Theme - Einstellungen mit Sprache, Version und Projektinfos - Ausgabe kopieren oder als neue `.env` speichern ## Vorschau Screenshots können später im Repository ergänzt werden. ```text ┌─────────────────────────────────────────────────────────────┐ │ EnvHelper Datei laden .env speichern Theme Settings │ ├─────────────────────────────┬───────────────────────────────┤ │ Input │ Output │ │ DATABASE_URL=...CHANGE_ME │ DATABASE_URL=...generated... │ ├─────────────────────────────┴───────────────────────────────┤ │ Standardwerte Erkannte Anforderungen │ └─────────────────────────────────────────────────────────────┘ ``` ## Beispiel Eingabe: ```env DATABASE_URL=postgresql://hilden_app:CHANGE_ME_POSTGRES_PASSWORD@postgres:5432/hilden_directory POSTGRES_PASSWORD=CHANGE_ME_POSTGRES_PASSWORD SESSION_SECRET=CHANGE_ME_AT_LEAST_32_RANDOM_CHARACTERS ENCRYPTION_KEY_BASE64=CHANGE_ME_32_RANDOM_BYTES_AS_BASE64 BOOTSTRAP_ADMIN_EMAIL=admin@example.local ``` Ausgabe: ```env DATABASE_URL=postgresql://hilden_app:generated-postgres-password@postgres:5432/hilden_directory POSTGRES_PASSWORD=generated-postgres-password SESSION_SECRET=generated-url-safe-secret ENCRYPTION_KEY_BASE64=generated-base64-key BOOTSTRAP_ADMIN_EMAIL=admin@example.local ``` Die tatsächlichen Werte werden zufällig lokal erzeugt. ## Standardwerte Standardwerte werden in einer eigenen Sektion gepflegt. Wenn ein Key dort eingetragen ist, überschreibt der Wert den entsprechenden Output-Key. Beispiel: ```text BOOTSTRAP_ADMIN_EMAIL = admin@example.local ``` Dann wird im Output immer dieser Wert gesetzt, auch wenn die Vorlage bereits eine andere E-Mail enthält. ## Sicherheit EnvHelper arbeitet lokal. Die Werte werden im Renderer mit Web-Crypto erzeugt und nicht an externe Dienste gesendet. Die App ist ein Helfer für Vorlagen, ersetzt aber keine zentrale Secret-Verwaltung für produktive Infrastruktur. ### Windows Defender und SmartScreen Windows kann unsignierte `.exe` Dateien als unbekannten Herausgeber einstufen. Das ist kein EnvHelper-spezifischer Fehler, sondern die normale Windows-Sicherheitsprüfung für Apps ohne vertrauenswürdige Authenticode-Signatur. Für signierte Builds kann der Gitea Runner später diese Secrets verwenden: ```text WINDOWS_CSC_LINK WINDOWS_CSC_KEY_PASSWORD ``` `WINDOWS_CSC_LINK` ist das Code-Signing-Zertifikat, zum Beispiel als Base64-kodierte `.pfx` Datei oder als erreichbare Zertifikats-URL. `WINDOWS_CSC_KEY_PASSWORD` ist das Passwort des Zertifikats. Ohne ein gültiges Code-Signing-Zertifikat bleibt der Herausgeber für Windows unbekannt. ## Download und Artefakte Der Windows-Build erzeugt zwei Dateien: - `EnvHelper-0.1.0-setup-x64.exe` - `EnvHelper-0.1.0-portable-x64.exe` Die Dateien werden vom Gitea Runner als Actions-Artefakt und als Generic Package veröffentlicht. ## Entwicklung ```bash npm install npm run dev ``` In einem zweiten Terminal kann der Electron-Build geprüft werden: ```bash npm run build ``` ## Windows Build Der Windows-Build läuft über Gitea Actions und nutzt den Linux Runner mit Wine: ```bash npm run dist:win ``` Workflow: ```text .gitea/workflows/build-windows.yml ``` Der Runner installiert Node.js, Wine, baut die App mit Electron Builder und lädt die fertigen `.exe` Artefakte hoch. ## Projektinfos - Autor: `MrSphay` - Repository: `MrSphay/envHelper` - App-ID: `de.wilkensxl.envhelper`