Files
appRobotHoming/README.md
2026-03-15 21:47:48 +01:00

58 lines
2.3 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# appRobotHoming
Eine kleine Node.js-App mit HTTPS-Frontend (5 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.