diff --git a/Dockerfile b/Dockerfile index 0f212f2..d5b353a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,25 +27,16 @@ RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.s $(cat /tmp/packages.txt) \ firefox-esr-l10n-${BUILD_COUNTRY} \ thunderbird-l10n-${BUILD_COUNTRY} && \ - apt-get build-dep -y pulseaudio && \ cd /tmp && \ - apt-get source pulseaudio && \ - PULSE_DIR=$(find /tmp -maxdepth 1 -type d -name "pulseaudio-*" | head -n 1) && \ - cd $PULSE_DIR && \ - meson setup build \ - -Dman=false \ - -Dtests=false \ - -Ddoxygen=false && \ - cd /tmp && \ - git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git && \ - cd pulseaudio-module-xrdp && \ + git clone https://github.com/neutrinolabs/pipewire-module-xrdp.git && \ + cd pipewire-module-xrdp && \ ./bootstrap && \ - ./configure PULSE_DIR=$PULSE_DIR && \ + ./configure && \ make && \ make install && \ cd / && \ - rm -rf /tmp/pulseaudio-* /tmp/pulseaudio-module-xrdp && \ - apt-get remove -y build-essential dpkg-dev meson ninja-build autoconf libtool && \ + rm -rf /tmp/pipewire-module-xrdp && \ + apt-get remove -y build-essential dpkg-dev git autoconf automake libtool pkg-config libpipewire-0.3-dev libspa-0.2-dev && \ apt-get autoremove -y && \ rm -rf /var/lib/apt/lists/* && \ echo "${LANG} UTF-8" > /etc/locale.gen && \ @@ -55,25 +46,25 @@ RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.s dpkg-reconfigure -f noninteractive tzdata && \ printf 'XKBMODEL="pc105"\nXKBLAYOUT="%s"\nXKBVARIANT=""\nXKBOPTIONS=""\nBACKSPACE="guess"\n' "${COUNTRY}" > /etc/default/keyboard && \ dpkg-reconfigure -f noninteractive keyboard-configuration && \ - rm -rf /var/lib/apt/lists/* /tmp/packages.txt + rm -rf /var/lib/apt/lists/* /tmp/packages.txt +# Systemweite statische Konfigurationen für LDAP/PAM/Sudo RUN sed -i '/%users/s/^/# /' /etc/sudoers && \ echo "sudoers: files sss" >> /etc/nsswitch.conf && \ echo "session required pam_mkhomedir.so skel=/etc/skel/ umask=0022" >> /etc/pam.d/common-session RUN chmod 440 /etc/sudoers && \ mkdir -p /etc/sssd && chown root:root /etc/sssd && chmod 755 /etc/sssd && \ - mkdir -p /home && chmod 755 /home && \ + mkdir -p /home && chmod 777 /home && \ chown xrdp:xrdp /etc/xrdp/key.pem /etc/xrdp/cert.pem /etc/xrdp/rsakeys.ini && \ chmod 600 /etc/xrdp/key.pem /etc/xrdp/rsakeys.ini && \ chmod 644 /etc/xrdp/cert.pem && \ echo "LANG=${LANG}" >> /etc/environment && \ echo "LANGUAGE=${LANGUAGE}" >> /etc/environment && \ echo "LC_ALL=${LC_ALL}" >> /etc/environment && \ - sed -i '2i export LANG=${LANG}\nexport LANGUAGE=${LANGUAGE}\nexport LC_ALL=${LC_ALL}\npulseaudio --start\npactl load-module module-xrdp-sink.so\npactl load-module module-xrdp-source.so' /etc/xrdp/startwm.sh && \ - chmod +x /etc/xrdp/startwm.sh && \ - mkdir -p /etc/xdg/xfce4 && \ - echo "setxkbmap ${COUNTRY}" >> /etc/xdg/xfce4/xinitrc + sed -i '2i export LANG=${LANG}\nexport LANGUAGE=${LANGUAGE}\nexport LC_ALL=${LC_ALL}\nexport XDG_SESSION_TYPE=x11\nexport GDK_BACKEND=x11\nexport LIBGL_ALWAYS_SOFTWARE=1\nexport GALLIUM_DRIVER=llvmpipe' /etc/xrdp/startwm.sh && \ + echo "exec dbus-run-session -- gnome-session --session=gnome-flashback-metacity" >> /etc/xrdp/startwm.sh && \ + chmod +x /etc/xrdp/startwm.sh EXPOSE 3389 diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index f89b7e1..d5b353a 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -27,25 +27,16 @@ RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.s $(cat /tmp/packages.txt) \ firefox-esr-l10n-${BUILD_COUNTRY} \ thunderbird-l10n-${BUILD_COUNTRY} && \ - apt-get build-dep -y pulseaudio && \ cd /tmp && \ - apt-get source pulseaudio && \ - PULSE_DIR=$(find /tmp -maxdepth 1 -type d -name "pulseaudio-*" | head -n 1) && \ - cd $PULSE_DIR && \ - meson setup build \ - -Dman=false \ - -Dtests=false \ - -Ddoxygen=false && \ - cd /tmp && \ - git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git && \ - cd pulseaudio-module-xrdp && \ + git clone https://github.com/neutrinolabs/pipewire-module-xrdp.git && \ + cd pipewire-module-xrdp && \ ./bootstrap && \ - ./configure PULSE_DIR=$PULSE_DIR && \ + ./configure && \ make && \ make install && \ cd / && \ - rm -rf /tmp/pulseaudio-* /tmp/pulseaudio-module-xrdp && \ - apt-get remove -y build-essential dpkg-dev meson ninja-build autoconf libtool && \ + rm -rf /tmp/pipewire-module-xrdp && \ + apt-get remove -y build-essential dpkg-dev git autoconf automake libtool pkg-config libpipewire-0.3-dev libspa-0.2-dev && \ apt-get autoremove -y && \ rm -rf /var/lib/apt/lists/* && \ echo "${LANG} UTF-8" > /etc/locale.gen && \ @@ -57,27 +48,23 @@ RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.s dpkg-reconfigure -f noninteractive keyboard-configuration && \ rm -rf /var/lib/apt/lists/* /tmp/packages.txt -# NEU: Systemweite statische Konfigurationen für LDAP/PAM/Sudo -# 1. Entfernt die gefährliche %users Regel -# 2. Sagt nsswitch, dass Sudoers auch im SSS (LDAP) gesucht werden sollen -# 3. Aktiviert das automatische Erstellen von Home-Verzeichnissen (mkhomedir) +# Systemweite statische Konfigurationen für LDAP/PAM/Sudo RUN sed -i '/%users/s/^/# /' /etc/sudoers && \ echo "sudoers: files sss" >> /etc/nsswitch.conf && \ echo "session required pam_mkhomedir.so skel=/etc/skel/ umask=0022" >> /etc/pam.d/common-session RUN chmod 440 /etc/sudoers && \ mkdir -p /etc/sssd && chown root:root /etc/sssd && chmod 755 /etc/sssd && \ - mkdir -p /home && chmod 755 /home && \ + mkdir -p /home && chmod 777 /home && \ chown xrdp:xrdp /etc/xrdp/key.pem /etc/xrdp/cert.pem /etc/xrdp/rsakeys.ini && \ chmod 600 /etc/xrdp/key.pem /etc/xrdp/rsakeys.ini && \ chmod 644 /etc/xrdp/cert.pem && \ echo "LANG=${LANG}" >> /etc/environment && \ echo "LANGUAGE=${LANGUAGE}" >> /etc/environment && \ echo "LC_ALL=${LC_ALL}" >> /etc/environment && \ - sed -i '2i export LANG=${LANG}\nexport LANGUAGE=${LANGUAGE}\nexport LC_ALL=${LC_ALL}\npulseaudio --start\npactl load-module module-xrdp-sink.so\npactl load-module module-xrdp-source.so' /etc/xrdp/startwm.sh && \ - chmod +x /etc/xrdp/startwm.sh && \ - mkdir -p /etc/xdg/xfce4 && \ - echo "setxkbmap ${COUNTRY}" >> /etc/xdg/xfce4/xinitrc + sed -i '2i export LANG=${LANG}\nexport LANGUAGE=${LANGUAGE}\nexport LC_ALL=${LC_ALL}\nexport XDG_SESSION_TYPE=x11\nexport GDK_BACKEND=x11\nexport LIBGL_ALWAYS_SOFTWARE=1\nexport GALLIUM_DRIVER=llvmpipe' /etc/xrdp/startwm.sh && \ + echo "exec dbus-run-session -- gnome-session --session=gnome-flashback-metacity" >> /etc/xrdp/startwm.sh && \ + chmod +x /etc/xrdp/startwm.sh EXPOSE 3389 diff --git a/README.md b/README.md index 06166d6..caf8ca7 100644 --- a/README.md +++ b/README.md @@ -10,13 +10,13 @@ Debian Desktop with LDAP Authentication and PulseAudio. To use behind Guacamole This repository is built and pushed automatically. -Docker Hub + ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:bookworm | 08.10.2026 23:33 | -| aarch64 (arm64) | ✅ Active | debian:bookworm | 08.10.2026 23:33 | +| x86_64 (amd64) | ✅ Active | debian:bookworm | 09.10.2026 23:35 | +| aarch64 (arm64) | ✅ Active | debian:bookworm | 09.10.2026 23:35 | --- @@ -26,7 +26,7 @@ This repository is built and pushed automatically. ```yaml services: base-image-debian-rdp-ldap: - image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-de + image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-gnome-de container_name: base-image-debian-rdp-ldap restart: unless-stopped ports: @@ -58,7 +58,7 @@ docker compose up -d ## 🐳 Method 2: Standalone Container (Docker Run / CLI) ### 🚀 1. Pull the image manually ```bash -docker pull git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-de +docker pull git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-gnome-de ``` ### 🚀 2. Run the container directly ```bash @@ -73,14 +73,18 @@ docker run -d \ -e LDAP_SUDO_GROUP=YOUR-SUDO-USERS-GROUP \ -v ./YOUR-PERSISTENT-FOLDER:/home \ -p 3389:3389 \ - git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-de + git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-gnome-de ``` -*Last updated on: 08.10.2026 23:33* +*Last updated on: 09.10.2026 23:35* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **bookworm-gnome-de** | 09.10.2026 23:35 | ✅ | +| **bookworm-gnome-de** | 09.10.2026 23:02 | ✅ | +| **bookworm-gnome-de** | 09.10.2026 22:40 | ✅ | +| **bookworm-gnome-de** | 09.10.2026 15:43 | ✅ | | **bookworm-de** | 08.10.2026 23:33 | ✅ | | **trixie-de** | 08.10.2026 22:50 | ✅ | \ No newline at end of file diff --git a/VERSION.history b/VERSION.history index 75817b6..08c69bc 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,2 +1,6 @@ +| **bookworm-gnome-de** | 09.10.2026 23:35 | ✅ | +| **bookworm-gnome-de** | 09.10.2026 23:02 | ✅ | +| **bookworm-gnome-de** | 09.10.2026 22:40 | ✅ | +| **bookworm-gnome-de** | 09.10.2026 15:43 | ✅ | | **bookworm-de** | 08.10.2026 23:33 | ✅ | | **trixie-de** | 08.10.2026 22:50 | ✅ | diff --git a/buildargs.env b/buildargs.env index bf1a8da..eb0cdb9 100644 --- a/buildargs.env +++ b/buildargs.env @@ -4,19 +4,16 @@ BUILD_COUNTRY=de ## BUILD STAGE BUILD_BASE_IMAGE="debian:${DEBIAN_CODENAME}" -BUILD_TAG="${DEBIAN_CODENAME}-${BUILD_COUNTRY}" +BUILD_TAG="${DEBIAN_CODENAME}-gnome-${BUILD_COUNTRY}" BUILD_TAG_LATEST=n BUILD_LANG=de_DE.UTF-8 BUILD_LANGUAGE=de_DE:de BUILD_LC_ALL=de_DE.UTF-8 BUILD_TZ=Europe/Berlin BUILD_MAINTAINER=pi-farm -BUILD_APP_NAME=base-image-debian-rdp-ldap +BUILD_APP_NAME=debian-${DEBIAN_CODENAME}-gnome-rdp-ldap BUILD_APP_VERSION=1.0.0 -PUSH=dockerhub - -## BASE PACKAGES -BUILD_BASE_PACKAGES="xrdp sssd sssd-tools libpam-sss libnss-sss libsss-sudo ldap-utils ca-certificates dbus-x11 xfce4 xfce4-terminal sudo firefox-esr firefox-esr-l10n-${BUILD_COUNTRY} thunderbird thunderbird-l10n-${BUILD_COUNTRY} locales tzdata keyboard-configuration x11-xkb-utils pulseaudio build-essential dpkg-dev git libpulse-dev meson ninja-build pkg-config autoconf libtool thunar-archive-plugin xarchiver unzip zip p7zip-full tar gzip bzip2 dialog whiptail" +PUSH=gitea ## ENV STAGE ENV_SSSD_DEBUG_LEVEL=5 diff --git a/docker-compose.yml b/docker-compose.yml index c8be77f..8ee9e40 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: base-image-debian-rdp-ldap: - image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-de + image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-gnome-de container_name: base-image-debian-rdp-ldap restart: unless-stopped ports: diff --git a/entrypoint.sh b/entrypoint.sh index 377433f..e2f7589 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -45,9 +45,14 @@ echo ">>> Erstelle Sudoers-Regel für Gruppe: ${LDAP_SUDO_GROUP}..." echo "%${LDAP_SUDO_GROUP} ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/ldap-admins chmod 0440 /etc/sudoers.d/ldap-admins -echo ">>> Erzwinge TLS für xrdp (Guacamole Fix)..." +echo ">>> Konfiguriere XRDP (TLS & Logging auf stdout)..." if [ -f /etc/xrdp/xrdp.ini ]; then sed -i 's/^security_layer=.*/security_layer=tls/' /etc/xrdp/xrdp.ini + sed -i 's|^LogFile=.*|LogFile=/dev/stdout|' /etc/xrdp/xrdp.ini +fi + +if [ -f /etc/xrdp/sesman.ini ]; then + sed -i 's|^LogFile=.*|LogFile=/dev/stdout|' /etc/xrdp/sesman.ini fi echo ">>> Bereinige alte PID-Dateien und SSSD Cache..." @@ -61,7 +66,7 @@ dbus-uuidgen --ensure dbus-daemon --system --fork echo ">>> Starte SSSD..." -sssd -D --debug-level=${SSSD_DEBUG} +sssd -D --logger=stderr --debug-level=${SSSD_DEBUG} echo ">>> Starte XRDP..." xrdp-sesman diff --git a/packages.txt b/packages.txt index cde159d..8f99def 100644 --- a/packages.txt +++ b/packages.txt @@ -9,8 +9,8 @@ xrdp xorgxrdp dbus dbus-x11 -xfce4 -xfce4-terminal +gnome-core +gnome-session-flashback xdg-user-dirs desktop-base sudo @@ -21,17 +21,18 @@ locales tzdata keyboard-configuration x11-xkb-utils -pulseaudio +pipewire +pipewire-pulse +wireplumber build-essential dpkg-dev git -libpulse-dev -meson -ninja-build +libpipewire-0.3-dev +libspa-0.2-dev pkg-config +automake autoconf libtool -thunar-archive-plugin xarchiver unzip zip