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.
- Kurzüberblick
- Voraussetzungen
- Installation
- Mehrere BELABOXen
- Nutzung
- Verwaltung
- Fehlerbehebung
- Sicherheit
- Lizenz
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 |
- 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
80oder der vom Script ausgegebene freie Ersatzport, Chisel-Port9090, 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.
Auf dem VPS ausführen:
curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bashDas 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
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.
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 überspringenFü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 bashDanach 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-statusNeuen 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-linkDas Script fragt dabei wieder nach dem Profilnamen.
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
Profile auf dem VPS anzeigen:
belabox-remote-vps-statusRemote-Link auf der BELABOX anzeigen:
belabox-vps-remote-linkEin VPS-Profil löschen:
curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bash -s -- --delete-profile DEIN_PROFILNAMEKomplette VPS-Installation entfernen:
curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bash -s -- --uninstallBELABOX-Client entfernen:
curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-client.sh | sudo bash -s -- --uninstallDie 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.
VPS prüfen:
belabox-remote-vps-status
systemctl status belabox-remote-ui-chisel.service
systemctl status nginxWenn 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 9090Wenn 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-pagerWenn 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 nginxWenn 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-pagerWenn 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/tcpWenn du UFW vorher gar nicht nutzen wolltest:
sudo ufw disable- 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.
Dieses Projekt steht unter der GNU General Public License v3.0, passend zu BELABOX/belaUI. Details stehen in LICENSE.
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.
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 bashThen 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.
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 bashShow profiles:
belabox-remote-vps-statusBrowser:
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
Show VPS profiles:
belabox-remote-vps-statusDelete one VPS profile:
curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bash -s -- --delete-profile YOUR_PROFILE_NAMERemove the VPS installation:
curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-server.sh | sudo bash -s -- --uninstallRemove the BELABOX client:
curl -fsSL https://raw.githubusercontent.com/Bittersweet1987/BelaRemoteUI/main/belabox-vps-remote-client.sh | sudo bash -s -- --uninstallVPS:
belabox-remote-vps-status
systemctl status belabox-remote-ui-chisel.service
systemctl status nginxIf 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 9090If 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-pagerThis project is licensed under the GNU General Public License v3.0, matching BELABOX/belaUI. See LICENSE.