|
|
||
|---|---|---|
| config | ||
| firefox-data/firefox | ||
| scripts | ||
| .env | ||
| .gitignore | ||
| Dockerfile | ||
| README.md | ||
| docker-compose.yml | ||
README.md
OpenBox Browser Container (RDP & VNC)
Alpine-basierter Docker-Container mit OpenBox Window Manager, Firefox Browser und Fernzugriff via RDP und VNC.
Schnellstart
.env-Datei anpassen:
FIREFOX_HOMEPAGE=https://www.google.com
RDP_PASSWORD=dein-sicheres-passwort
- Container starten:
docker compose up -d --build
- 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:
-
Energiesparmodus deaktivieren:
xset s off- Bildschirmschoner ausxset s noblank- Kein Bildschirm-Blankingxset -dpms- Display Power Management aus (kein Standby/Suspend/Off)
-
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:
- Setzt das Benutzerpasswort aus
RDP_PASSWORD - Erstellt VNC-Passwortdatei (gleiche wie RDP)
- Schreibt
FIREFOX_HOMEPAGEin.bashrcfuer die OpenBox-Session - Stellt korrekte Berechtigungen fuer Firefox-Daten sicher
- Erstellt X11-Socket-Verzeichnis
/tmp/.X11-unix - Generiert XRDP RSA-Schluessel (falls nicht vorhanden)
- 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)