Skip to content

Bittersweet1987/BelaRemoteUI

Repository files navigation

BelaRemoteUI

Self-hosted remote access to one or more BELABOX web UIs through your own VPS.

The official BELABOX remote key is not used, overwritten, or modified. Each BELABOX opens only an outgoing Chisel tunnel to your VPS; SSH between BELABOX and VPS is not required.

Deutsch

Inhalt

Kurzüberblick

BelaRemoteUI richtet auf deinem VPS einen eigenen Remote-Zugang zur BELABOX-Weboberfläche ein. Die BELABOX baut dabei nur eine ausgehende Verbindung zum VPS auf. Dadurch muss auf der BELABOX kein Port geöffnet werden, und der offizielle BELABOX-Remote-Key bleibt unangetastet.

Es gibt zwei Scripts:

Script Läuft auf Aufgabe
belabox-vps-remote-server.sh VPS Nginx, Chisel-Server, feste URLs und Profilverwaltung
belabox-vps-remote-client.sh BELABOX Lokaler Proxy und ausgehender Chisel-Tunnel

Pro BELABOX-Profil erzeugt der VPS:

Wert Beispiel
Browser-Link http://158.180.35.14/r/DEIN_PROFILNAME/0b9a.../
Widget/API-Link http://158.180.35.14/?token=0b9a...
WebSocket-Link ws://158.180.35.14/?token=0b9a...
Tunnel-Token DEIN_PROFILNAME:abc123...
Interner VPS-Port 18080, 18081, 18082

Voraussetzungen

  • VPS mit Ubuntu 24.04 oder Ubuntu 26.04
  • Root- oder sudo-Zugriff auf VPS und BELABOX
  • BELABOX mit Terminal- oder SSH-Zugriff
  • Auf dem VPS offen: HTTP-Port 80 oder der vom Script ausgegebene freie Ersatzport, Chisel-Port 9090, normaler SSH-Management-Port

Wenn auf dem VPS bereits Nginx oder eine RTMP-Nginx-Konfiguration vorhanden ist, sucht BelaRemoteUI automatisch einen freien HTTP-Port ab 8088. Ist 8088 bereits belegt, wird der nächste freie Port probiert. Vorhandene Nginx-Dateien wie sites-enabled/default bleiben dann unangetastet. Wenn du bewusst einen bestimmten HTTP-Port möchtest, kannst du --public-port PORT verwenden. Ist dieser Port bereits belegt, bricht das Script mit einer klaren Meldung ab.

Bei Custom-Nginx-Setups, die weder conf.d noch sites-enabled laden, ergänzt BelaRemoteUI einmalig einen eigenen Include im http {}-Block von /etc/nginx/nginx.conf. Die eigentliche Remote-Konfiguration bleibt weiterhin in einer separaten BelaRemoteUI-Datei und wird bei --uninstall wieder entfernt.

BelaRemoteUI aktiviert UFW nicht automatisch. Falls UFW bereits aktiv ist, ergänzt das Script nur fehlende BelaRemoteUI-Regeln für den HTTP-Port und den Chisel-Port. Auf Oracle-/Ubuntu-Images mit vorhandener iptables-Reject-Regel ergänzt BelaRemoteUI stattdessen eigene iptables-ACCEPT-Regeln vor dem Reject. Bereits vorhandene Regeln werden nicht überschrieben und nicht als BelaRemoteUI-Regeln markiert. Bei einer kompletten Deinstallation werden nur die Regeln entfernt, die BelaRemoteUI selbst neu angelegt hat.

Bestehende Dienste wie RTMP auf 1935/tcp, eine Statistikseite auf 8080/tcp oder andere eigene Ports bleiben deine eigenen Firewall-Regeln und werden nicht verändert.

Installation

1. VPS vorbereiten

Auf dem VPS ausführen:

curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bash

Das Script fragt nach einem Profilnamen. Dieser Name dient nur zur Verwaltung auf dem VPS, zum Beispiel kamera1, eventbox oder rucksack.

Nach jedem angelegten Profil fragt das VPS-Script, ob vor dem Reboot noch ein weiteres BELABOX-Profil erstellt werden soll. Wenn du j oder y auswählst, gibst du direkt den nächsten Profilnamen ein. So kannst du mehrere BELABOXen in einem Installationsdurchlauf vorbereiten.

Nach der Installation zeigt das VPS-Script alle wichtigen Daten an:

  • feste Remote-URL
  • Widget/API-URL
  • WebSocket-URL
  • Chisel-Tunnel-Port
  • Tunnel-Token
  • kompletter Installationsbefehl für die BELABOX

2. BELABOX verbinden

Kopiere den kompletten Befehl aus der VPS-Ausgabe und führe genau diesen auf der passenden BELABOX aus.

Er sieht ungefähr so aus:

sudo sh -c 'command -v curl >/dev/null 2>&1 || (apt-get update && apt-get install -y curl)' && curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-client.sh | sudo bash -s -- --vps 158.180.35.14 --tunnel-server-port 9090 --tunnel-auth DEIN_PROFILNAME:DEIN_TOKEN --remote-port 18080 --public-url http://158.180.35.14/r/DEIN_PROFILNAME/DEIN_LINK/

Die vom VPS ausgegebene BELABOX-Zeile installiert curl automatisch, falls es auf der BELABOX noch fehlt. Das BELABOX-Script installiert danach weitere fehlende Pakete wie nodejs, gzip und Chisel, richtet den lokalen Proxy ein und startet den dauerhaften Tunnel zum VPS.

3. Neustart

Beide Scripts fragen am Ende, ob das jeweilige System neu gestartet werden soll. Du kannst das Verhalten auch direkt setzen:

--reboot      # automatisch neu starten
--no-reboot   # Reboot-Abfrage überspringen

Mehrere BELABOXen

Für jede weitere BELABOX kannst du direkt während der ersten Installation ein weiteres Profil anlegen. Das VPS-Script fragt nach jedem Profil, ob vor dem Reboot noch ein weiteres BELABOX-Profil erstellt werden soll.

Später kannst du jederzeit erneut das VPS-Script starten und einen neuen Profilnamen eingeben:

curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bash

Danach kopierst du wieder den neu ausgegebenen BELABOX-Befehl auf die zweite BELABOX. Jedes Profil bekommt einen eigenen Link, eigenen Token und eigenen internen VPS-Port.

Profile anzeigen:

belabox-remote-vps-status

Neuen Link für ein bestehendes Profil erzeugen:

curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bash -s -- --regenerate-link

Das Script fragt dabei wieder nach dem Profilnamen.

Nutzung

Für normale Browser-Nutzung nimmst du die feste Remote-URL aus der VPS-Ausgabe:

http://158.180.35.14/r/DEIN_PROFILNAME/0b9a8c7d6e5f4a3b2c1d/

Der Browser wird danach auf / weitergeleitet. Das ist normal: Die geheime URL setzt vorher ein Cookie, damit CSS, JavaScript und WebSockets wie bei belabox.local funktionieren.

Für externe Widgets oder Hintergrund-Anfragen kannst du den Token direkt in der URL nutzen:

http://158.180.35.14/?token=0b9a8c7d6e5f4a3b2c1d
ws://158.180.35.14/?token=0b9a8c7d6e5f4a3b2c1d

Wenn BelaRemoteUI wegen vorhandenem Nginx/RTMP auf einen Ersatzport ausweicht:

http://158.180.35.14:AUSGEGEBENER_PORT/?token=0b9a8c7d6e5f4a3b2c1d
ws://158.180.35.14:AUSGEGEBENER_PORT/?token=0b9a8c7d6e5f4a3b2c1d

Verwaltung

Profile auf dem VPS anzeigen:

belabox-remote-vps-status

Remote-Link auf der BELABOX anzeigen:

belabox-vps-remote-link

Ein VPS-Profil löschen:

curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bash -s -- --delete-profile DEIN_PROFILNAME

Komplette VPS-Installation entfernen:

curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bash -s -- --uninstall

BELABOX-Client entfernen:

curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-client.sh | sudo bash -s -- --uninstall

Die Löschroutinen entfernen nur BelaRemoteUI-Dateien, Services, eigene Nginx-Dateien und von BelaRemoteUI selbst neu angelegte UFW-Regeln. BELABOX-UI, offizieller Remote-Key, fremde RTMP/Nginx-Konfigurationen und bereits vorher vorhandene Firewall-Regeln bleiben unangetastet.

Fehlerbehebung

VPS prüfen:

belabox-remote-vps-status
systemctl status belabox-remote-ui-chisel.service
systemctl status nginx

Wenn die URL einen Port enthält, zum Beispiel http://DEIN_VPS:8088/r/..., muss genau dieser TCP-Port auch in der externen VPS-/Cloud-Firewall freigegeben sein. Zusätzlich muss TCP 9090 für den BELABOX-Tunnel offen sein. Bei Cloud-Anbietern reicht UFW auf dem Server allein oft nicht aus, weil es zusätzlich Security Lists, Firewall-Regeln oder Cloud-Firewalls gibt.

Schnelltest von deinem Windows-PC:

Test-NetConnection DEIN_VPS -Port 8088
Test-NetConnection DEIN_VPS -Port 9090

Wenn TcpTestSucceeded dort False ist, kommt die Anfrage gar nicht beim VPS an. Dann zuerst die Provider-Firewall für diese Ports öffnen.

BELABOX prüfen:

systemctl status belabox-vps-remote-ui-tunnel.service
systemctl status belabox-vps-remote-ui-proxy.service
journalctl -u belabox-vps-remote-ui-tunnel.service -n 80 --no-pager

Wenn nur die Nginx-Startseite erscheint, die VPS-Konfiguration neu schreiben und Nginx neu starten:

curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bash -s -- --no-reboot
sudo nginx -t
sudo systemctl restart nginx

Wenn der Browser 502 Bad Gateway zeigt, ist Nginx erreichbar, aber der Tunnel zur BELABOX ist nicht verbunden. Prüfe dann auf der BELABOX:

systemctl status belabox-vps-remote-ui-tunnel.service
journalctl -u belabox-vps-remote-ui-tunnel.service -n 80 --no-pager

Wenn RTMP oder eine bestehende Statistikseite nach einem alten Installationsversuch nicht mehr erreichbar ist, prüfe zuerst UFW:

sudo ufw status
sudo ufw allow 1935/tcp
sudo ufw allow 8080/tcp

Wenn du UFW vorher gar nicht nutzen wolltest:

sudo ufw disable

Sicherheit

  • SSH zwischen BELABOX und VPS wird nicht genutzt.
  • Der offizielle BELABOX-Remote-Key bleibt unverändert.
  • Jede BELABOX bekommt eigenen Link, eigenen Token und eigenen internen VPS-Port.
  • Ohne Cookie oder gültigen ?token=-Parameter zeigt die VPS-IP nicht auf eine BELABOX-UI.
  • Die BELABOX-UI bleibt zusätzlich durch ihr eigenes UI-Passwort geschützt.
  • Ohne HTTPS ist die Browser-Verbindung zum VPS unverschlüsselt.

Lizenz

Dieses Projekt steht unter der GNU General Public License v3.0, passend zu BELABOX/belaUI. Details stehen in LICENSE.

English

Overview

BelaRemoteUI provides fixed, self-hosted remote access to one or more BELABOX web UIs through your own VPS.

It uses two scripts:

Script Runs on Purpose
belabox-vps-remote-server.sh VPS Nginx, Chisel server, profiles, fixed URLs
belabox-vps-remote-client.sh BELABOX Local proxy and outgoing Chisel tunnel

Each BELABOX profile gets its own URL, token, and internal VPS port. The official BELABOX remote key is not used or modified.

Quick Start

Run this on the VPS and enter a profile name when asked:

curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bash

Then copy the complete BELABOX command printed by the VPS script and run it on the matching BELABOX. The printed command installs curl first if the BELABOX does not have it yet.

Multiple BELABOX Units

Run the VPS script again and enter a new profile name:

curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bash

Show profiles:

belabox-remote-vps-status

Usage

Browser:

http://158.180.35.14/r/YOUR_PROFILE_NAME/0b9a8c7d6e5f4a3b2c1d/

Widget/API:

http://158.180.35.14/?token=0b9a8c7d6e5f4a3b2c1d
ws://158.180.35.14/?token=0b9a8c7d6e5f4a3b2c1d

Management

Show VPS profiles:

belabox-remote-vps-status

Delete one VPS profile:

curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bash -s -- --delete-profile YOUR_PROFILE_NAME

Remove the VPS installation:

curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bash -s -- --uninstall

Remove the BELABOX client:

curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-client.sh | sudo bash -s -- --uninstall

Troubleshooting

VPS:

belabox-remote-vps-status
systemctl status belabox-remote-ui-chisel.service
systemctl status nginx

If the URL contains a port such as http://YOUR_VPS:8088/r/..., that TCP port must be open in the external VPS/cloud firewall. TCP 9090 must also be open for the BELABOX tunnel. Quick check from Windows:

Test-NetConnection YOUR_VPS -Port 8088
Test-NetConnection YOUR_VPS -Port 9090

If TcpTestSucceeded is False, the request does not reach the VPS yet. Open the provider firewall/security group first.

BELABOX:

systemctl status belabox-vps-remote-ui-tunnel.service
systemctl status belabox-vps-remote-ui-proxy.service
journalctl -u belabox-vps-remote-ui-tunnel.service -n 80 --no-pager

License

This project is licensed under the GNU General Public License v3.0, matching BELABOX/belaUI. See LICENSE.

About

Self-hosted BELABOX remote UI access through a VPS.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages