3fa1f764132336f92941430dfda8608c32d65cab
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 installdie Zertifikate unter./certs. - WSS-Client mit Auto-Reconnect und optionaler TLS-Validierung (in
.envsteuerbar). - SSE (Server-Sent Events) für Live-Logs im Browser.
Schnellstart
# 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 ofttrueHTTPS_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.envsind absichtlich in.gitignoreeingetragen und werden nicht in Gitea eingecheckt. - In Entwicklungsumgebungen kann
WSS_INSECURE_TLS=truenö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 installausführen – die Zertifikate werden wieder neu erzeugt.
Description
Languages
Python
42.6%
JavaScript
38.4%
HTML
17.9%
CSS
1.1%