# HPS Vorlagen & Signaturen – Web-Editor Ein kleiner, in Docker laufender Web-Editor zum Pflegen der **E-Mail-Vorlagen** und **Signaturen** für das Hotel Park Soltau. Er ist das Web-Gegenstück zum Thunderbird-Plugin **„HPS Vorlagen & Signaturen“** und teilt sich mit ihm dieselbe **Gitea/Forgejo-Repository** als gemeinsame Quelle der Wahrheit. --- ## Was kann der Editor? - **Vorlagen für alle Abteilungen** verwalten – gemeinsame Vorlagen (`_gemeinsam/`), Abteilungsvorlagen (z. B. `Rezeption/`, `IT/`) und persönliche Vorlagen pro Benutzer (`_benutzer//`). - **Fußzeilen** pflegen – pro Abteilung (`signatures/footers/.html`) sowie eine gemeinsame Standard-Fußzeile (`signatures/footers/_default.html`). - **Signatur-Köpfe** bearbeiten (`signatures/headers/..html`). - **WYSIWYG-Bearbeitung**, Umschalten auf den **HTML-Quelltext** und eine **Live-Vorschau**. - Jede Änderung wird **direkt als Commit ins Gitea-Repo** geschrieben. Der Editor ist eine kleine **Node.js/Express-App** (`server.js`), die ein statisches Frontend aus `public/` ausliefert und die **Gitea Contents API** weiterreicht. Der **Gitea-Token bleibt serverseitig** und ist für den Browser nicht sichtbar. Konfiguriert wird ausschließlich über **Umgebungsvariablen**. --- ## Voraussetzungen - **Docker** mit **docker compose** – *oder* **Node.js ≥ 18**, falls ohne Docker betrieben. - Ein **Gitea/Forgejo-API-Token mit Schreibrechten** auf das Vorlagen-Repository (siehe [Gitea-API-Token erstellen](#gitea-api-token-erstellen)). --- ## Schnellstart mit docker compose ```bash # 1. Vorlage kopieren und ausfüllen cp .env.example .env nano .env # GITEA_URL, GITEA_OWNER, GITEA_REPO, GITEA_TOKEN eintragen # 2. Bauen und starten docker compose up -d --build ``` Anschließend den Editor im Browser öffnen: ``` http://localhost:8080 ``` Den Host-Port kannst du über `HOST_PORT` in der `.env` ändern (Standard `8080`). docker compose mappt `${HOST_PORT:-8080}:3000`. Logs ansehen bzw. Editor stoppen: ```bash docker compose logs -f docker compose down ``` --- ## Alternative: plain `docker build` / `docker run` ```bash # Image bauen docker build -t hps-vorlagen-web-editor . # Container starten (Umgebung aus .env, Port 8080 → 3000) docker run -d \ --name hps-web-editor \ --restart unless-stopped \ -p 8080:3000 \ --env-file .env \ hps-vorlagen-web-editor ``` --- ## Alternative: lokal ohne Docker ```bash # Abhängigkeiten installieren npm install # Umgebungsvariablen setzen (Beispiel) export GITEA_URL="https://git.example.com" export GITEA_OWNER="organisation" export GITEA_REPO="email-vorlagen" export GITEA_BRANCH="main" export GITEA_TOKEN="dein-api-token" # Starten npm start ``` Der Editor läuft dann auf dem in `PORT` eingestellten Port (Standard `3000`), also unter `http://localhost:3000`. --- ## Umgebungsvariablen | Name | Pflicht | Standard | Beschreibung | | --------------------- | :-----: | -------------- | --------------------------------------------------------------------------- | | `GITEA_URL` | **ja** | – | Basis-URL des Gitea/Forgejo-Servers, ohne abschließenden Slash. | | `GITEA_OWNER` | **ja** | – | Besitzer des Repos (Organisation oder Benutzer). | | `GITEA_REPO` | **ja** | – | Name des Vorlagen-Repositories. | | `GITEA_BRANCH` | nein | `main` | Branch, in den committet wird. | | `GITEA_TOKEN` | **ja** | – | API-Token mit Schreibrechten auf das Repository. Bleibt serverseitig. | | `COMMIT_AUTHOR_NAME` | nein | `Web-Editor` | Name, mit dem Änderungen committet werden. | | `COMMIT_AUTHOR_EMAIL` | nein | – | E-Mail-Adresse des Commit-Autors. | | `BASIC_AUTH_USER` | nein | – | Benutzername für HTTP-Basic-Auth (siehe [Sicherheit](#sicherheit)). | | `BASIC_AUTH_PASS` | nein | – | Passwort für HTTP-Basic-Auth. Schutz aktiv, wenn beide Werte gesetzt sind. | | `PORT` | nein | `3000` | Port, auf dem die App im Container/Prozess lauscht. | | `HOST_PORT` | nein | `8080` | Nur für docker compose: Port, unter dem der Editor am Host erreichbar ist. | Eine fertige Vorlage findest du in [`.env.example`](.env.example) – einfach kopieren und ausfüllen. --- ## Gitea-API-Token erstellen 1. In Gitea/Forgejo oben rechts auf das Profilbild → **Einstellungen**. 2. Reiter **Anwendungen** öffnen. 3. Unter **Token verwalten** einen neuen Token **generieren**. 4. Als **Scope** mindestens **Schreibrechte auf Repositories** (`repo` bzw. `write:repository`) vergeben. 5. Den angezeigten Token **sofort kopieren** (er wird nur einmal angezeigt) und als `GITEA_TOKEN` in die `.env` eintragen. --- ## Sicherheit - **Wenn der Editor öffentlich erreichbar ist, unbedingt `BASIC_AUTH_USER` und `BASIC_AUTH_PASS` setzen.** Sind beide gesetzt, ist der gesamte Editor per HTTP-Basic-Auth geschützt. - Die **`.env` niemals committen** – sie enthält den Gitea-Token. Sie steht bereits in der `.gitignore` und bleibt damit außerhalb der Versionskontrolle. --- ## Hinweis zum Zusammenspiel mit dem Thunderbird-Plugin Jede im Editor gespeicherte Änderung landet **sofort als Commit im Gitea-Repo**. Das Thunderbird-Plugin **„HPS Vorlagen & Signaturen“** nutzt dasselbe Repo als Quelle der Wahrheit und übernimmt die Änderungen automatisch beim nächsten **Sync** (alle paar Sekunden bis spätestens alle 15 Minuten). Ein manueller Export ist nicht nötig.