From aadaa0d0f48cfe02220b10b1d64edfc5d72bb2b7 Mon Sep 17 00:00:00 2001 From: Nick Adam Date: Sat, 17 Jan 2026 01:41:27 +0100 Subject: [PATCH] added rdp desktop for testing to docker apps machine --- infrastructure/apps/rdesktop/README.md | 75 +++++++++++++++++++ .../apps/rdesktop/docker-compose.yml | 29 +++++++ .../vm-docker-apps-301.stabify.de.yml | 2 + 3 files changed, 106 insertions(+) create mode 100644 infrastructure/apps/rdesktop/README.md create mode 100644 infrastructure/apps/rdesktop/docker-compose.yml diff --git a/infrastructure/apps/rdesktop/README.md b/infrastructure/apps/rdesktop/README.md new file mode 100644 index 0000000..b113be3 --- /dev/null +++ b/infrastructure/apps/rdesktop/README.md @@ -0,0 +1,75 @@ +# RDesktop - Remote Desktop Container + +Ubuntu XFCE Desktop Environment via RDP. + +## Zugriff + +- **RDP Host:** `vm-docker-apps-301.stabify.de` (oder direkte IP `10.100.30.11`) +- **Port:** `3389` (standard RDP) +- **Benutzer:** `abc` +- **Passwort:** `abc` (⚠️ **SOFORT nach erstem Login ändern!**) + +**Hinweis:** RDP nutzt kein TLS, daher kann Traefik kein Hostname-basiertes Routing durchführen. RDP ist direkt auf Port 3389 der Apps-VM erreichbar (nur aus VPN). + +**DNS-Eintrag:** `rdp.apps.stabify.de` zeigt auf `vm-docker-apps-301.stabify.de` (für einfachere Konfiguration im RDP-Client). + +## Features + +- ✅ Deutsches Tastaturlayout (QWERTZ) +- ✅ Englische Sprache (UI & System) +- ✅ Persistente Home-Directory (`./config`) +- ✅ XFCE Desktop Environment + +## Passwort ändern + +Nach erstem Login: + +```bash +passwd abc +``` + +Oder von außen: + +```bash +docker exec -it rdesktop passwd abc +``` + +## Persistenz + +Die Home-Directory (`/config`) wird persistiert. Alle Dateien, Einstellungen und installierten Anwendungen bleiben erhalten. + +**⚠️ Wichtig:** System-Level Pakete gehen bei Container-Updates verloren. Für Pakete nutze `apt` innerhalb des Containers. + +## Customization + +### Weitere Sprachen +Ändere `LC_ALL` in `docker-compose.yml`: + +```yaml +- LC_ALL=de_DE.UTF-8 # Deutsch +- LC_ALL=fr_FR.UTF-8 # Französisch +``` + +### Weitere Desktop Environments +Nutze andere Image-Tags: + +- `ubuntu-kde` - KDE Desktop +- `ubuntu-mate` - MATE Desktop +- `ubuntu-i3` - i3 Window Manager + +## Troubleshooting + +### RDP-Verbindung schlägt fehl +1. Prüfe ob Container läuft: `docker ps | grep rdesktop` +2. Prüfe Logs: `docker logs rdesktop` +3. Prüfe Port: `netstat -tlnp | grep 3389` + +### Tastaturlayout falsch +Die XKB-Variablen werden beim Login gesetzt. Falls das Layout falsch ist: +```bash +# Im Container: +setxkbmap de +``` + +### Container startet nicht +Prüfe ob `./config` Ordner existiert und die richtigen Permissions hat (1000:1000). diff --git a/infrastructure/apps/rdesktop/docker-compose.yml b/infrastructure/apps/rdesktop/docker-compose.yml new file mode 100644 index 0000000..017a078 --- /dev/null +++ b/infrastructure/apps/rdesktop/docker-compose.yml @@ -0,0 +1,29 @@ +--- +services: + rdesktop: + image: lscr.io/linuxserver/rdesktop:ubuntu-xfce + container_name: rdesktop + restart: unless-stopped + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/Berlin + - LC_ALL=en_US.UTF-8 # English language + - LANG=en_US.UTF-8 + - LANGUAGE=en_US:en + # Deutsches Tastaturlayout + - XKB_DEFAULT_MODEL=pc105 + - XKB_DEFAULT_LAYOUT=de + - XKB_DEFAULT_VARIANT= + - XKB_DEFAULT_OPTIONS= + ports: + - "3389:3389" # RDP Port (direkt exponiert, kein Traefik-Routing nötig) + volumes: + - ./config:/config # Persistente Home-Directory + shm_size: 1gb + security_opt: + - seccomp=unconfined # Wichtig für moderne GUI Apps + +networks: + proxy-sub: + external: true diff --git a/infrastructure/deployments/vm-docker-apps-301.stabify.de.yml b/infrastructure/deployments/vm-docker-apps-301.stabify.de.yml index fe9a161..1dfc9d4 100644 --- a/infrastructure/deployments/vm-docker-apps-301.stabify.de.yml +++ b/infrastructure/deployments/vm-docker-apps-301.stabify.de.yml @@ -5,6 +5,8 @@ apps: has_secrets: false # Aktuell keine Secrets nötig - name: whoami has_secrets: false + - name: rdesktop + has_secrets: false # Beispiel für später: # - name: nextcloud # has_secrets: true