# appRobotHoming Eine kleine Node.js-App mit HTTPS-Frontend (einige Buttons + Textfeld) und Backend, das sich mit einem konfigurierbaren **WSS** (WebSocket Secure) verbindet. Die Buttons senden Befehle an den WSS, und das Textfeld zeigt eingehende Nachrichten/Logs an. ## Features - **HTTPS**-Server wird automatisch mit **selbstsignierten Zertifikaten** betrieben. - **Postinstall-Task** erstellt bei `npm install` die Zertifikate unter `./certs`. - **WSS-Client** mit Auto-Reconnect und optionaler TLS-Validierung (in `.env` steuerbar). - **SSE** (Server-Sent Events) für Live-Logs im Browser. ## Schnellstart ```bash # 1) Abhängigkeiten installieren und Zertifikate erzeugen npm install # 2) (Optional) .env anlegen, basierend auf .env.sample cp .env.sample .env # Werte nach Bedarf anpassen # 3) Starten npm run dev # mit Nodemon # oder npm start # ohne Nodemon ``` Öffne danach: https://localhost:8443 (Da selbstsigniert, musst du dem Zertifikat im Browser einmalig vertrauen.) ## Konfiguration (`.env`) Siehe `.env.sample` für alle verfügbaren Variablen: - `HTTPS_PORT` (Standard: `8443`) - `WSS_URL` (z. B. `wss://localhost:9001`) - `WSS_INSECURE_TLS` (`true|false`) – bei selbstsignierten Upstream-Zertifikaten oft `true` - `HTTPS_HOST` (CN für das Zertifikat, Standard: `localhost`) - `HTTPS_CERT_DAYS` (Gültigkeitsdauer des selbstsignierten Zertifikats in Tagen) - `ALLOWED_COMMANDS` (kommasepariert; nur diese Kommandos akzeptiert das Backend) ## Sicherheitshinweise - Die Inhalte des Verzeichnisses `certs/` sowie `.env` sind **absichtlich** in `.gitignore` eingetragen und werden nicht in Gitea eingecheckt. - In Entwicklungsumgebungen kann `WSS_INSECURE_TLS=true` nötig sein. In Produktion **deaktivieren** und echte Zertifikate verwenden. ## Ordnerstruktur ``` appRobotHoming/ ├─ public/ # Statisches Frontend (HTML/JS/CSS) ├─ src/ # Backend-Quellcode ├─ scripts/ # Utility-Skripte (z. B. Zertifikatserzeugung) ├─ certs/ # (auto-generiert) selbstsignierte Zertifikate ├─ .gitignore ├─ .env.sample ├─ package.json └─ README.md ``` ## Gitea-Upload - Committe den Code **ohne** `certs/` und **ohne** `.env`. - Nach dem Klonen auf einem anderen System einfach `npm install` ausführen – die Zertifikate werden wieder neu erzeugt.