Go to file
duffyduck f0d63d48c3 added host expose variant 2026-02-10 15:04:22 +01:00
config first commit 2026-02-10 12:21:19 +01:00
scripts first commit 2026-02-10 12:21:19 +01:00
.env updates gitignore and readme 2026-02-10 12:31:33 +01:00
.gitignore updates gitignore and readme 2026-02-10 12:31:33 +01:00
Dockerfile first commit 2026-02-10 12:21:19 +01:00
README.md first commit 2026-02-10 12:21:19 +01:00
docker-compose-host-variant.yml added host expose variant 2026-02-10 15:04:22 +01:00
docker-compose.yml first commit 2026-02-10 12:21:19 +01:00

README.md

OpenBox Browser Container (RDP & VNC)

Alpine-basierter Docker-Container mit OpenBox Window Manager, Firefox Browser und Fernzugriff via RDP und VNC.

Schnellstart

  1. .env-Datei anpassen:
FIREFOX_HOMEPAGE=https://www.google.com
RDP_PASSWORD=dein-sicheres-passwort
  1. Container starten:
docker compose up -d --build
  1. Verbinden:
Protokoll Port Passwort
RDP 3389 RDP_PASSWORD aus .env
VNC 5900 RDP_PASSWORD aus .env
  • RDP: Windows Remotedesktop, Remmina, etc. (Benutzername wird ignoriert)
  • VNC: TigerVNC Viewer, RealVNC, Remmina, etc.

Beide Protokolle zeigen die gleiche Session.

Environment-Variablen

Variable Beschreibung Standard
FIREFOX_HOMEPAGE Firefox-Startseite https://www.google.com
RDP_PASSWORD Passwort fuer RDP- und VNC-Zugang changeme

Persistenz

Firefox-Daten (Lesezeichen, Verlauf, Einstellungen, Cookies, etc.) werden im Ordner firefox-data/ gespeichert und bleiben beim Neustart des Containers erhalten.

OpenBox-Menu

Rechtsklick auf den Desktop oeffnet das Kontextmenue:

  • Firefox - Startet Firefox mit der konfigurierten Startseite
  • Neustarten - Startet die OpenBox-Session neu
  • Herunterfahren - Beendet die OpenBox-Session

Tastenkuerzel

Kuerzel Aktion
Alt+F4 Fenster schliessen
Alt+Tab Fenster wechseln
Alt+Linksklick (Ziehen) Fenster verschieben
Alt+Rechtsklick (Ziehen) Fenster skalieren
Doppelklick Titelleiste Fenster maximieren/wiederherstellen

Neubauen ohne Cache

docker compose down && docker compose build --no-cache && docker compose up -d

Projektstruktur

.
├── .env                       # Environment-Variablen (Passwort, Startseite)
├── Dockerfile                 # Container-Image Definition
├── docker-compose.yml         # Service-Konfiguration
├── config/
│   ├── autostart.sh           # OpenBox Autostart-Skript
│   ├── menu.xml               # OpenBox Rechtsklick-Menue
│   ├── rc.xml                 # OpenBox Fenster-/Tastatur-/Maus-Konfiguration
│   ├── supervisord.conf       # Prozess-Management (Startreihenfolge)
│   └── xrdp.ini               # XRDP-Server Konfiguration
├── scripts/
│   ├── start.sh               # Container-Einstiegspunkt
│   └── set-password.sh        # Setzt Benutzerpasswort aus ENV
└── firefox-data/              # Persistente Firefox-Daten (Volume)

Konfigurationsdateien im Detail

config/supervisord.conf

Verwaltet alle Dienste im Container ueber Supervisor. Die Dienste starten in dieser Reihenfolge:

Prioritaet Dienst Beschreibung
5 Xvfb Virtueller Framebuffer (Display :10, 1920x1080, 24bit). Stellt den X11-Server bereit, ohne physische Grafikkarte.
10 OpenBox Window Manager. Startet nach 2s auf Display :10 als Benutzer openbox. Laedt .bashrc fuer Umgebungsvariablen.
20 x11vnc VNC-Server. Startet nach 3s, verbindet sich mit Display :10. Passwortgeschuetzt, Port 5900, Shared-Modus.
30 XRDP RDP-Server. Startet nach 4s, fungiert als RDP-zu-VNC Proxy auf Port 3389.

Alle Dienste haben autorestart=true und werden bei Absturz automatisch neu gestartet. Die sleep-Verzoegerungen stellen sicher, dass jeder Dienst erst startet, wenn seine Abhaengigkeiten bereit sind.

config/xrdp.ini

XRDP-Server Konfiguration. Arbeitet im Proxy-Modus - leitet RDP-Verbindungen an den lokalen x11vnc-Server weiter.

Wichtige Einstellungen:

Einstellung Wert Beschreibung
port 3389 Standard-RDP Port
security_layer rdp RDP-Verschluesselung
crypt_level high Hohe Verschluesselungsstufe
max_bpp 32 Maximale Farbtiefe
lib libvnc.so VNC-Protokoll als Backend
ip 127.0.0.1 Verbindet zu lokalem VNC
port (Session) 5900 VNC-Port von x11vnc

Channels wie Clipboard (cliprdr), Sound (rdpsnd) und Laufwerks-Umleitung (rdpdr) sind aktiviert.

config/autostart.sh

Wird von OpenBox automatisch beim Sessionstart ausgefuehrt. Aufgaben:

  1. Energiesparmodus deaktivieren:

    • xset s off - Bildschirmschoner aus
    • xset s noblank - Kein Bildschirm-Blanking
    • xset -dpms - Display Power Management aus (kein Standby/Suspend/Off)
  2. Firefox starten mit der Startseite aus FIREFOX_HOMEPAGE

config/menu.xml

Definiert das OpenBox-Rechtsklick-Kontextmenue mit vier Eintraegen:

  • Firefox - Startet Firefox mit --url "${FIREFOX_HOMEPAGE}"
  • Terminal - Oeffnet xterm
  • Neustarten - openbox --restart (laedt OpenBox-Konfiguration neu)
  • Herunterfahren - openbox --exit (beendet die Session)

config/rc.xml

OpenBox Window Manager Konfiguration:

  • Theme: Clearlooks mit Noto Sans Schriftart (Groesse 10)
  • Desktops: 1 virtueller Desktop
  • Titelleiste: NLIMC-Layout (Minimize, Maximize, Close Buttons)
  • Tastenkuerzel: Alt+F4 (Schliessen), Alt+Tab (Wechseln)
  • Maus: Rechtsklick auf Desktop oeffnet Menue, Titelleiste ziehbar, Doppelklick maximiert

scripts/start.sh

Container-Einstiegspunkt. Fuehrt beim Start folgende Schritte aus:

  1. Setzt das Benutzerpasswort aus RDP_PASSWORD
  2. Erstellt VNC-Passwortdatei (gleiche wie RDP)
  3. Schreibt FIREFOX_HOMEPAGE in .bashrc fuer die OpenBox-Session
  4. Stellt korrekte Berechtigungen fuer Firefox-Daten sicher
  5. Erstellt X11-Socket-Verzeichnis /tmp/.X11-unix
  6. Generiert XRDP RSA-Schluessel (falls nicht vorhanden)
  7. Startet Supervisor mit allen Diensten

scripts/set-password.sh

Setzt das Passwort des Benutzers openbox aus der Environment-Variable RDP_PASSWORD via chpasswd.

Architektur

                    ┌──────────────────────────────────┐
                    │         Docker Container         │
                    │                                  │
  RDP :3389 ──────> │  XRDP ──> x11vnc ──> Xvfb :10    │
                    │                       │          │
  VNC :5900 ──────> │  x11vnc ─────────> Xvfb :10      │
                    │                       │          │
                    │                    OpenBox       │
                    │                       │          │
                    │                    Firefox       │
                    └──────────────────────────────────┘
                                            │
                              ./firefox-data (Volume)