From c7c1c7b2f35efba25a2b6e6f31b1ded1d71cf904 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" Date: Thu, 9 Apr 2026 15:22:10 +0000 Subject: [PATCH 01/97] bullseye-test --- buildargs.env | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/buildargs.env b/buildargs.env index 5ad767f..78db747 100644 --- a/buildargs.env +++ b/buildargs.env @@ -1,7 +1,7 @@ ## BUILD STAGE -BUILD_BASE_IMAGE=debian:bookworm +BUILD_BASE_IMAGE=debian:bullseye BUILD_COUNTRY=de -BUILD_TAG=bookworm-de +BUILD_TAG=bullseye-de BUILD_TAG_LATEST=n BUILD_LANG=de_DE.UTF-8 BUILD_LANGUAGE=de_DE:de @@ -10,7 +10,7 @@ BUILD_TZ=Europe/Berlin BUILD_MAINTAINER=pi-farm BUILD_APP_NAME=base-image-debian-rdp-ldap BUILD_APP_VERSION=1.0.0 -PUSH=dockerhub +PUSH=gitea ## ENV STAGE ENV_SSSD_DEBUG_LEVEL=5 From fe343cfcd5144600256b3754446d05eaa491b5c6 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Tue, 6 Oct 2026 15:16:41 +0000 Subject: [PATCH 02/97] changed to trixie, fix xrdp-port --- buildargs.env | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/buildargs.env b/buildargs.env index 78db747..2962fb9 100644 --- a/buildargs.env +++ b/buildargs.env @@ -1,7 +1,7 @@ ## BUILD STAGE -BUILD_BASE_IMAGE=debian:bullseye +BUILD_BASE_IMAGE=debian:trixie BUILD_COUNTRY=de -BUILD_TAG=bullseye-de +BUILD_TAG=trixie-de BUILD_TAG_LATEST=n BUILD_LANG=de_DE.UTF-8 BUILD_LANGUAGE=de_DE:de @@ -9,7 +9,7 @@ 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_VERSION=1.0.0 +BUILD_APP_VERSION=1.0.0-dev PUSH=gitea ## ENV STAGE @@ -22,6 +22,6 @@ ENV_LDAP_SUDO_GROUP=YOUR-SUDO-USERS-GROUP ## DOCKER / COMPOSE CONFIG VOL_HOME=./YOUR-PERSISTENT-FOLDER:/home -PORT_RDP=3889 +PORT_RDP=3389 DESCRIPTION="Debian Desktop with LDAP-Authentication and Pulse-Audio. To use behind Guacamole with LDAP-Authentication and pass-through to Debian-Desktop." \ No newline at end of file From d064afbc0be2f86f51a7bdd00554729cdd5de1ec Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Tue, 6 Oct 2026 15:24:02 +0000 Subject: [PATCH 03/97] Dockerfile aktualisiert --- Dockerfile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6c35377..3b6690e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -81,10 +81,6 @@ RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.s printf 'XKBMODEL="pc105"\nXKBLAYOUT="%s"\nXKBVARIANT=""\nXKBOPTIONS=""\nBACKSPACE="guess"\n' "${COUNTRY}" > /etc/default/keyboard && \ dpkg-reconfigure -f noninteractive keyboard-configuration -# 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) 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 From 3e93e1547722165ad1424ab5f5a44d001d2021e3 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Tue, 6 Oct 2026 15:24:48 +0000 Subject: [PATCH 04/97] switch to trixie --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 3b6690e..b18c497 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG BUILD_BASE_IMAGE=debian:bookworm +ARG BUILD_BASE_IMAGE=debian:trixie FROM ${BUILD_BASE_IMAGE} From 59da82bc9623fb2d35cb8156416573f837d4a468 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Tue, 6 Oct 2026 15:29:12 +0000 Subject: [PATCH 05/97] switch to trixie, fix dbus-start first --- entrypoint.sh | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 3fa5b1a..f882fe6 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,8 +1,6 @@ #!/bin/bash set -e -# Mapping der Gitea-Workflow Variablen (ENV_...) auf interne Variablen -# Falls ENV_LDAP_URI nicht gesetzt ist, wird ein Fallback genutzt LDAP_URI=${LDAP_URI:-"ldap://localhost:389"} LDAP_BASE_DN=${LDAP_BASE_DN:-"dc=example,dc=com"} LDAP_BIND_DN=${LDAP_BIND_DN:-"cn=admin,dc=example,dc=com"} @@ -48,14 +46,22 @@ 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)..." +if [ -f /etc/xrdp/xrdp.ini ]; then + sed -i 's/^security_layer=.*/security_layer=tls/' /etc/xrdp/xrdp.ini +fi + echo ">>> Bereinige SSSD Cache..." rm -f /var/lib/sss/db/* rm -f /var/lib/sss/mc/* echo ">>> Starte Dienste..." -# SSSD mit dem gemappten Debug-Level starten +# 1. D-Bus MUSS zwingend vor SSSD starten +service dbus start + +# 2. SSSD starten sssd -D --debug-level=${SSSD_DEBUG} -service dbus start +# 3. xrdp-Dienste starten xrdp-sesman -exec xrdp -n \ No newline at end of file +exec xrdp -n From 062bf85f6ea736a49a277ac412910d3cf3da57c9 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 10:03:56 +0000 Subject: [PATCH 06/97] add archive-tools --- Dockerfile | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b18c497..2ffc51a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -51,7 +51,15 @@ RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.s ninja-build \ pkg-config \ autoconf \ - libtool && \ + libtool \ + thunar-archive-plugin \ + xarchiver \ + unzip \ + zip \ + p7zip-full \ + tar \ + gzip \ + bzip2 && \ apt-get build-dep -y pulseaudio && \ cd /tmp && \ apt-get source pulseaudio && \ From ca9a63ce1a14e967cbcee4d570eaf9d90f377d77 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 10:04:27 +0000 Subject: [PATCH 07/97] add archive-tools --- Dockerfile.aarch64 | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 6c35377..01e5b3c 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -51,7 +51,15 @@ RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.s ninja-build \ pkg-config \ autoconf \ - libtool && \ + libtool \ + thunar-archive-plugin \ + xarchiver \ + unzip \ + zip \ + p7zip-full \ + tar \ + gzip \ + bzip2 && \ apt-get build-dep -y pulseaudio && \ cd /tmp && \ apt-get source pulseaudio && \ From 2e98ee5b0e7ca6cbb15660b926a4cd22f621b502 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 10:08:48 +0000 Subject: [PATCH 08/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 465 +++++++++++++++------------ 1 file changed, 254 insertions(+), 211 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index c5ab766..a1502ab 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -1,13 +1,17 @@ on: push: branches: - - 'main' + - 'dev' tags: - '*' schedule: - cron: '0 5 * * 0' workflow_dispatch: +permissions: + contents: write + packages: write + jobs: release-and-build: runs-on: buildx-multiarch @@ -16,6 +20,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 with: + token: ${{ secrets.RUNNER_TOKEN }} fetch-depth: 0 - name: Prepare Environment and Read Config @@ -59,8 +64,7 @@ jobs: - name: Login to Gitea Registry run: | - echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login \ - git.pi-farm.de -u ${{ secrets.REGISTRY_USER }} --password-stdin + echo "${{ secrets.RUNNER_TOKEN }}" | docker login git.pi-farm.de -u "${{ gitea.actor }}" --password-stdin - name: Check for Real Changes id: check_changes @@ -125,6 +129,7 @@ jobs: ARGS_HASH=${{ steps.prep.outputs.build_args_hash }} BASE=${{ steps.prep.outputs.base_image }} REPO_PURE=${{ steps.prep.outputs.repo_pure }} + DOCKERHUB_REPO="${{ secrets.DOCKERHUB_USERNAME }}/$REPO_PURE" set -a source <(grep -v '^#' buildargs.env | sed 's/\r$//') @@ -138,14 +143,26 @@ jobs: BASE_SHA=$(docker buildx imagetools inspect $BASE --format '{{json .Manifest.Digest}}' 2>/dev/null | tr -d '"' || echo "unknown") - docker buildx build "${DOCKER_ARGS[@]}" -t "$IMAGE_GITEA:tmp-amd64" \ + # Bereite die Tags für den initialen Build vor (Gitea immer, Docker Hub optional) + AMD_TAGS=("-t" "$IMAGE_GITEA:tmp-amd64") + ARM_TAGS=("-t" "$IMAGE_GITEA:tmp-arm64") + + if [[ "$PUSH" == *"dockerhub"* ]]; then + AMD_TAGS+=("-t" "$DOCKERHUB_REPO:tmp-amd64") + ARM_TAGS+=("-t" "$DOCKERHUB_REPO:tmp-arm64") + fi + + # Build AMD64 & Push zu allen Zielen + docker buildx build "${DOCKER_ARGS[@]}" "${AMD_TAGS[@]}" \ --pull --platform linux/amd64 -f Dockerfile \ --label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . - docker buildx build "${DOCKER_ARGS[@]}" -t "$IMAGE_GITEA:tmp-arm64" \ + # Build ARM64 & Push zu allen Zielen + docker buildx build "${DOCKER_ARGS[@]}" "${ARM_TAGS[@]}" \ --pull --platform linux/arm64 -f Dockerfile.aarch64 \ --label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . + # 1. Manifest auf Gitea erstellen (aus Gitea Temp-Tags) GITEA_MANIFEST_TAGS=("-t" "$IMAGE_GITEA:$TAG") if [[ "$BUILD_TAG_LATEST" == "y" ]]; then GITEA_MANIFEST_TAGS+=("-t" "$IMAGE_GITEA:latest") @@ -155,232 +172,258 @@ jobs: --annotation "index:pi_farm.base_digest=$BASE_SHA" --annotation "index:pi_farm.args_hash=$ARGS_HASH" \ "${GITEA_MANIFEST_TAGS[@]}" $IMAGE_GITEA:tmp-amd64 $IMAGE_GITEA:tmp-arm64 + # 2. Manifest auf Docker Hub erstellen (aus Docker Hub Temp-Tags!) if [[ "$PUSH" == *"dockerhub"* ]]; then - DOCKERHUB_REPO="${{ secrets.DOCKERHUB_USERNAME }}/$REPO_PURE" DH_MANIFEST_TAGS=("-t" "$DOCKERHUB_REPO:$TAG") if [[ "$BUILD_TAG_LATEST" == "y" ]]; then DH_MANIFEST_TAGS+=("-t" "$DOCKERHUB_REPO:latest") fi + # WICHTIG: Hier werden jetzt als Quelle die Docker Hub Temp-Tags genutzt! docker buildx imagetools create \ --annotation "index:pi_farm.base_digest=$BASE_SHA" --annotation "index:pi_farm.args_hash=$ARGS_HASH" \ - "${DH_MANIFEST_TAGS[@]}" $IMAGE_GITEA:tmp-amd64 $IMAGE_GITEA:tmp-arm64 + "${DH_MANIFEST_TAGS[@]}" $DOCKERHUB_REPO:tmp-amd64 $DOCKERHUB_REPO:tmp-arm64 fi - name: Update Documentation and Compose id: update_doc if: steps.check_changes.outputs.should_build == 'true' run: | - set -x - - export TZ=Europe/Berlin - CURRENT_TIME=$(date '+%d.%m.%Y %H:%M') - BUILD_TAG="${{ steps.prep.outputs.docker_tag }}" - FULL_URL="${{ steps.prep.outputs.image_name }}" - REPO_PURE="${{ steps.prep.outputs.repo_pure }}" - BASE_IMAGE="${{ steps.prep.outputs.base_image }}" - - if [ ! -f "buildargs.env" ]; then echo "❌ buildargs.env missing!"; exit 1; fi - - grep -v '^#' buildargs.env | sed 's/\r$//' > cleaned_env.sh - set -a - source ./cleaned_env.sh - set +a - - if [ -f "Dockerfile.aarch64" ]; then ARM_STATUS="✅ Active"; else ARM_STATUS="❌ Not supported"; fi - - cat << 'EOF' > commit_msg.txt - ${{ gitea.event.head_commit.message }} - EOF - COMMIT_MSG=$(sed 's/\[skip ci\]//g' commit_msg.txt | xargs) - - wget -q https://git.pi-farm.de/pi-farm/templates/raw/branch/main/README.template -O README.template || echo "Warnung: README Template fehlt" - wget -q https://git.pi-farm.de/pi-farm/templates/raw/branch/main/docker-compose.template -O docker-compose.template || echo "Warnung: Compose Template fehlt" - - NEW_ROW="| **$BUILD_TAG** | $CURRENT_TIME | $COMMIT_MSG ✅ |" - if [ -f "VERSION.history" ]; then - grep -v "| **$BUILD_TAG** |" VERSION.history > VERSION.history.tmp || true - echo "$NEW_ROW" > VERSION.history - cat VERSION.history.tmp >> VERSION.history - rm VERSION.history.tmp - else - echo "$NEW_ROW" > VERSION.history - fi - HISTORY_CONTENT=$(cat VERSION.history) - - ENV_BLOCK_CONTENT="" - env_vars=$(grep '^ENV_' buildargs.env | grep -v '^#' | tr -d '\r' || true) - if [ -n "$env_vars" ]; then - ENV_BLOCK_CONTENT=" environment:\n" - while read -r line; do - [ -z "$line" ] && continue - key=$(echo "$line" | cut -d= -f1); val=$(echo "$line" | cut -d= -f2-); clean_key=${key#ENV_} - ENV_BLOCK_CONTENT="${ENV_BLOCK_CONTENT} - ${clean_key}=${val}\n" - done <<< "$env_vars" - fi - - PORTS_BLOCK_CONTENT="" - port_vars=$(grep '^PORT_' buildargs.env | grep -v '^#' | tr -d '\r' || true) - if [ -n "$port_vars" ]; then - PORTS_BLOCK_CONTENT=" ports:\n" - while read -r line; do - [ -z "$line" ] && continue - val=$(echo "$line" | cut -d= -f2-); PORTS_BLOCK_CONTENT="${PORTS_BLOCK_CONTENT} - ${val}\n" - done <<< "$port_vars" - fi - - VOL_BLOCK_CONTENT="" - vol_vars=$(grep '^VOL_' buildargs.env | grep -v '^#' | tr -d '\r' || true) - if [ -n "$vol_vars" ]; then - VOL_BLOCK_CONTENT=" volumes:\n" - while read -r line; do - [ -z "$line" ] && continue - val=$(echo "$line" | cut -d= -f2-); VOL_BLOCK_CONTENT="${VOL_BLOCK_CONTENT} - ${val}\n" - done <<< "$vol_vars" - fi - - { - echo "docker run -d \\" - echo " --name $REPO_PURE \\" - echo " --restart unless-stopped \\" - - all_params=$(grep -E '^(PORT_|ENV_|VOL_)' buildargs.env | grep -v '^#' | sed 's/\r$//' || true) - if [ -n "$all_params" ]; then - while read -r line; do - [ -z "$line" ] && continue - if [[ "$line" =~ ^PORT_ ]]; then - val=$(echo "$line" | cut -d= -f2-) - echo " -p ${val} \\" - elif [[ "$line" =~ ^ENV_ ]]; then - key=$(echo "$line" | cut -d= -f1); clean_key=${key#ENV_}; val=$(echo "$line" | cut -d= -f2-) - echo " -e ${clean_key}=${val} \\" - elif [[ "$line" =~ ^VOL_ ]]; then - val=$(echo "$line" | cut -d= -f2-) - echo " -v ${val} \\" + set -x + + export TZ=Europe/Berlin + CURRENT_TIME=$(date '+%d.%m.%Y %H:%M') + BUILD_TAG="${{ steps.prep.outputs.docker_tag }}" + FULL_URL="${{ steps.prep.outputs.image_name }}" + REPO_PURE="${{ steps.prep.outputs.repo_pure }}" + BASE_IMAGE="${{ steps.prep.outputs.base_image }}" + + if [ ! -f "buildargs.env" ]; then echo "❌ buildargs.env missing!"; exit 1; fi + + grep -v '^#' buildargs.env | sed 's/\r$//' > cleaned_env.sh + set -a + source ./cleaned_env.sh + set +a + + if [ -f "Dockerfile.aarch64" ]; then ARM_STATUS="✅ Active"; else ARM_STATUS="❌ Not supported"; fi + + cat << 'EOF' > commit_msg.txt + ${{ gitea.event.head_commit.message }} + EOF + COMMIT_MSG=$(sed 's/\[skip ci\]//g' commit_msg.txt | xargs) + + # 1. Authentifizierter Download der Templates via curl (-f bricht bei HTTP-Fehlern ab) + TOKEN="${{ secrets.RUNNER_TOKEN }}" + curl -sSLf -H "Authorization: token $TOKEN" \ + "https://git.pi-farm.de/pi-farm/templates/raw/branch/dev/README.template" \ + -o README.template || echo "Warnung: README Template konnte nicht geladen werden" + + curl -sSLf -H "Authorization: token $TOKEN" \ + "https://git.pi-farm.de/pi-farm/templates/raw/branch/dev/docker-compose.template" \ + -o docker-compose.template || echo "Warnung: Compose Template konnte nicht geladen werden" + + # 2. Sicherheitsprüfung: Falls Gitea trotz -f eine HTML-Login-Seite ausgibt, Datei sofort verwerfen + for t_file in README.template docker-compose.template; do + if [ -f "$t_file" ] && grep -qi "" "$t_file"; then + echo "❌ FEHLER: $t_file ist eine HTML-Loginseite! Download verworfen." + rm -f "$t_file" fi - done <<< "$all_params" - fi - echo " $FULL_URL:$BUILD_TAG" - } > docker_run_block.txt - - DOCKERHUB_LINK_CONTENT="" - if [[ "${{ steps.prep.outputs.push_targets }}" == *"dockerhub"* ]]; then - DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" - DOCKERHUB_LINK_CONTENT="[![Docker Hub](https://img.shields.io/badge/docker-hub-blue?logo=docker&logoColor=white)](https://hub.docker.com/r/${DH_USER}/${REPO_PURE})" - fi - - process_template() { - local template=$1; local output=$2 - [ ! -f "$template" ] && return - cp "$template" "$output" + done + + NEW_ROW="| **$BUILD_TAG** | $CURRENT_TIME | $COMMIT_MSG ✅ |" + if [ -f "VERSION.history" ]; then + grep -v "| **$BUILD_TAG** |" VERSION.history > VERSION.history.tmp || true + echo "$NEW_ROW" > VERSION.history + cat VERSION.history.tmp >> VERSION.history + rm VERSION.history.tmp + else + echo "$NEW_ROW" > VERSION.history + fi + HISTORY_CONTENT=$(cat VERSION.history) + + ENV_BLOCK_CONTENT="" + env_vars=$(grep '^ENV_' buildargs.env | grep -v '^#' | tr -d '\r' || true) + if [ -n "$env_vars" ]; then + ENV_BLOCK_CONTENT=" environment:\n" + while read -r line; do + [ -z "$line" ] && continue + key=$(echo "$line" | cut -d= -f1); val=$(echo "$line" | cut -d= -f2-); clean_key=${key#ENV_} + ENV_BLOCK_CONTENT="${ENV_BLOCK_CONTENT} - ${clean_key}=${val}\n" + done <<< "$env_vars" + fi + + PORTS_BLOCK_CONTENT="" + port_vars=$(grep '^PORT_' buildargs.env | grep -v '^#' | tr -d '\r' || true) + if [ -n "$port_vars" ]; then + PORTS_BLOCK_CONTENT=" ports:\n" + while read -r line; do + [ -z "$line" ] && continue + val=$(echo "$line" | cut -d= -f2-); PORTS_BLOCK_CONTENT="${PORTS_BLOCK_CONTENT} - ${val}\n" + done <<< "$port_vars" + fi + + VOL_BLOCK_CONTENT="" + vol_vars=$(grep '^VOL_' buildargs.env | grep -v '^#' | tr -d '\r' || true) + if [ -n "$vol_vars" ]; then + VOL_BLOCK_CONTENT=" volumes:\n" + while read -r line; do + [ -z "$line" ] && continue + val=$(echo "$line" | cut -d= -f2-); VOL_BLOCK_CONTENT="${VOL_BLOCK_CONTENT} - ${val}\n" + done <<< "$vol_vars" + fi + + { + echo "docker run -d \\" + echo " --name $REPO_PURE \\" + echo " --restart unless-stopped \\" + + all_params=$(grep -E '^(PORT_|ENV_|VOL_)' buildargs.env | grep -v '^#' | sed 's/\r$//' || true) + if [ -n "$all_params" ]; then + while read -r line; do + [ -z "$line" ] && continue + if [[ "$line" =~ ^PORT_ ]]; then + val=$(echo "$line" | cut -d= -f2-) + echo " -p ${val} \\" + elif [[ "$line" =~ ^ENV_ ]]; then + key=$(echo "$line" | cut -d= -f1); clean_key=${key#ENV_}; val=$(echo "$line" | cut -d= -f2-) + echo " -e ${clean_key}=${val} \\" + elif [[ "$line" =~ ^VOL_ ]]; then + val=$(echo "$line" | cut -d= -f2-) + echo " -v ${val} \\" + fi + done <<< "$all_params" + fi + echo " $FULL_URL:$BUILD_TAG" + } > docker_run_block.txt + + DOCKERHUB_LINK_CONTENT="" + if [[ "${{ steps.prep.outputs.push_targets }}" == *"dockerhub"* ]]; then + DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" + DOCKERHUB_LINK_CONTENT="[![Docker Hub](https://img.shields.io/badge/docker-hub-blue?logo=docker&logoColor=white)](https://hub.docker.com/r/${DH_USER}/${REPO_PURE})" + fi + + # Template-Verarbeitung via Python (verhindert awk-Abstürze bei Zeilenumbrüchen) + process_template() { + local template=$1; local output=$2 + [ ! -f "$template" ] && return + cp "$template" "$output" + + export REPO_PURE FULL_URL BUILD_TAG BASE_IMAGE ARM_STATUS CURRENT_TIME \ + HISTORY_CONTENT DOCKERHUB_LINK_CONTENT ENV_BLOCK_CONTENT \ + PORTS_BLOCK_CONTENT VOL_BLOCK_CONTENT DESCRIPTION + + python3 -c ' + import os, sys + + output = sys.argv[1] + + with open(output, "r", encoding="utf-8") as f: + content = f.read() + + content = content.replace("__REPO_NAME__", os.environ.get("REPO_PURE", "")) + content = content.replace("__FULL_URL__", os.environ.get("FULL_URL", "")) + content = content.replace("__BUILD_TAG__", os.environ.get("BUILD_TAG", "")) + content = content.replace("__BASE_IMAGE__", os.environ.get("BASE_IMAGE", "")) + content = content.replace("__ARM_STATUS__", os.environ.get("ARM_STATUS", "")) + content = content.replace("__CURRENT_DATE__", os.environ.get("CURRENT_TIME", "")) + content = content.replace("__HISTORY_CONTENT__", os.environ.get("HISTORY_CONTENT", "")) + content = content.replace("__DOCKERHUB_LINK__", os.environ.get("DOCKERHUB_LINK_CONTENT", "")) + content = content.replace("__ENV_BLOCK__", os.environ.get("ENV_BLOCK_CONTENT", "").replace("\\n", "\n")) + content = content.replace("__PORTS_BLOCK__", os.environ.get("PORTS_BLOCK_CONTENT", "").replace("\\n", "\n")) + content = content.replace("__VOL_BLOCK__", os.environ.get("VOL_BLOCK_CONTENT", "").replace("\\n", "\n")) + content = content.replace("__DESCRIPTION__", os.environ.get("DESCRIPTION", "Keine Beschreibung.")) - sed -i "s|__REPO_NAME__|$REPO_PURE|g" "$output" - sed -i "s|__FULL_URL__|$FULL_URL|g" "$output" - sed -i "s|__BUILD_TAG__|$BUILD_TAG|g" "$output" - sed -i "s|__BASE_IMAGE__|$BASE_IMAGE|g" "$output" - sed -i "s|__ARM_STATUS__|$ARM_STATUS|g" "$output" - sed -i "s|__CURRENT_DATE__|$CURRENT_TIME|g" "$output" + if "__DOCKER_RUN__" in content and os.path.exists("docker_run_block.txt"): + with open("docker_run_block.txt", "r", encoding="utf-8") as f: + content = content.replace("__DOCKER_RUN__", f.read()) - awk -v r="$HISTORY_CONTENT" '{gsub(/__HISTORY_CONTENT__/, r)}1' "$output" > "$output.tmp" && mv "$output.tmp" "$output" - awk -v r="$DOCKERHUB_LINK_CONTENT" '{gsub(/__DOCKERHUB_LINK__/, r)}1' "$output" > "$output.tmp" && mv "$output.tmp" "$output" - - if grep -q "__DOCKER_RUN__" "$output" && [ -f "docker_run_block.txt" ]; then - sed -e '/__DOCKER_RUN__/{r docker_run_block.txt' -e 'd;}' "$output" > "$output.tmp" && mv "$output.tmp" "$output" - fi + if "__COMPOSE_BLOCK__" in content and os.path.exists("docker-compose.yml"): + with open("docker-compose.yml", "r", encoding="utf-8") as f: + content = content.replace("__COMPOSE_BLOCK__", f.read()) - if grep -q "__COMPOSE_BLOCK__" "$output" && [ -f "docker-compose.yml" ]; then - sed -e '/__COMPOSE_BLOCK__/{r docker-compose.yml' -e 'd;}' "$output" > "$output.tmp" && mv "$output.tmp" "$output" - fi + with open(output, "w", encoding="utf-8") as f: + f.write(content) + ' "$output" + } - if grep -q "__ENV_BLOCK__" "$output"; then - awk -v r="$(echo -e "$ENV_BLOCK_CONTENT")" '{gsub(/__ENV_BLOCK__/, r)}1' "$output" > "$output.tmp" && mv "$output.tmp" "$output" - fi - awk -v r="$(echo -e "$PORTS_BLOCK_CONTENT")" '{gsub(/__PORTS_BLOCK__/, r)}1' "$output" > "$output.tmp" && mv "$output.tmp" "$output" - awk -v r="$(echo -e "$VOL_BLOCK_CONTENT")" '{gsub(/__VOL_BLOCK__/, r)}1' "$output" > "$output.tmp" && mv "$output.tmp" "$output" + process_template "docker-compose.template" "docker-compose.yml" + process_template "README.template" "README.md" + + echo "FINAL_MSG=$COMMIT_MSG" >> $GITHUB_ENV + echo "DESCRIPTION<> $GITHUB_ENV + echo -e "$DESCRIPTION" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV - if grep -q "__DESCRIPTION__" "$output"; then - awk -v r="$(echo -e "${DESCRIPTION:-Keine Beschreibung.}")" '{gsub(/__DESCRIPTION__/, r)}1' "$output" > "$output.tmp" && mv "$output.tmp" "$output" - fi - } - - process_template "docker-compose.template" "docker-compose.yml" - process_template "README.template" "README.md" - - echo "FINAL_MSG=$COMMIT_MSG" >> $GITHUB_ENV - echo "DESCRIPTION<> $GITHUB_ENV - echo -e "$DESCRIPTION" >> $GITHUB_ENV - echo "EOF" >> $GITHUB_ENV - - - name: Push README to Docker Hub - if: steps.check_changes.outputs.should_build == 'true' && contains(steps.prep.outputs.push_targets, 'dockerhub') - run: | - if ! command -v jq &> /dev/null; then - apt-get update && apt-get install -y jq || apk add --no-cache jq || true - fi - - echo "🚀 Starting update README on Docker Hub..." - - TOKEN=$(curl -s -X POST "https://hub.docker.com/v2/users/login/" \ - -H "Content-Type: application/json" \ - -d "{\"username\": \"${{ secrets.DOCKERHUB_USERNAME }}\", \"password\": \"${{ secrets.DOCKERHUB_TOKEN }}\"}" | jq -r .token) - - if [ "$TOKEN" == "null" ] || [ -z "$TOKEN" ]; then - echo "❌ Error: No login-token available. Check your credentials!" - exit 1 - fi - - REPO_PURE="${{ steps.prep.outputs.repo_pure }}" - DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" - - SHORT_DESC=$(echo -e "${{ env.DESCRIPTION }}" | head -n 1 | cut -c 1-100) - [ -z "$SHORT_DESC" ] && SHORT_DESC="Docker Image for $REPO_PURE" - - echo "📦 Processing README.md (${REPO_PURE})..." - - jq -n \ - --arg desc "$SHORT_DESC" \ - --rawfile full_desc README.md \ - '{description: $desc, full_description: $full_desc}' > payload.json - - echo "📤 Sending data to Docker Hub API..." - RESPONSE=$(curl -s -w "\n%{http_code}" -X PATCH \ - "https://hub.docker.com/v2/repositories/${DH_USER}/${REPO_PURE}/" \ - -H "Authorization: JWT ${TOKEN}" \ - -H "Content-Type: application/json" \ - -d @payload.json) - - HTTP_STATUS=$(echo "$RESPONSE" | tail -n 1) - BODY=$(echo "$RESPONSE" | head -n -1) - - if [ "$HTTP_STATUS" -eq 200 ]; then - echo "✅ README update successfull (HTTP 200)." - else - echo "❌ Error on update! HTTP Status: $HTTP_STATUS" - echo "Answer from Docker Hub: $BODY" - exit 1 - fi - - - name: Commit, Tag and Push Changes - if: steps.check_changes.outputs.should_build == 'true' - run: | - git config --local user.email "action@pi-farm.de" - git config --local user.name "Gitea Action" - - git add VERSION.history README.md docker-compose.yml - - git diff --quiet && git diff --staged --quiet || git commit -m "${{ env.FINAL_MSG }} [skip ci]" - - TARGET_TAG="${{ steps.prep.outputs.docker_tag }}" - git tag -f "$TARGET_TAG" - - if [[ "${{ gitea.ref }}" == refs/tags/* ]]; then - echo "🏷️ Build aus Tag getriggert: $TARGET_TAG" - git push -f origin "$TARGET_TAG" - else - echo "🌿 Build aus Branch/Schedule getriggert: ${{ gitea.ref_name }}" - git push origin HEAD:${{ gitea.ref_name }} - git push -f origin "$TARGET_TAG" - fi + - name: Push README to Docker Hub + if: steps.check_changes.outputs.should_build == 'true' && contains(steps.prep.outputs.push_targets, 'dockerhub') + run: | + if ! command -v jq &> /dev/null; then + apt-get update && apt-get install -y jq || apk add --no-cache jq || true + fi + + echo "🚀 Starting update README on Docker Hub..." + + TOKEN=$(curl -s -X POST "https://hub.docker.com/v2/users/login/" \ + -H "Content-Type: application/json" \ + -d "{\"username\": \"${{ secrets.DOCKERHUB_USERNAME }}\", \"password\": \"${{ secrets.DOCKERHUB_TOKEN }}\"}" | jq -r .token) + + if [ "$TOKEN" == "null" ] || [ -z "$TOKEN" ]; then + echo "❌ Error: No login-token available. Check your credentials!" + exit 1 + fi + + REPO_PURE="${{ steps.prep.outputs.repo_pure }}" + DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" + + SHORT_DESC=$(echo -e "${{ env.DESCRIPTION }}" | head -n 1 | cut -c 1-100) + [ -z "$SHORT_DESC" ] && SHORT_DESC="Docker Image for $REPO_PURE" + + echo "📦 Processing README.md (${REPO_PURE})..." + + jq -n \ + --arg desc "$SHORT_DESC" \ + --rawfile full_desc README.md \ + '{description: $desc, full_description: $full_desc}' > payload.json + + echo "📤 Sending data to Docker Hub API..." + RESPONSE=$(curl -s -w "\n%{http_code}" -X PATCH \ + "https://hub.docker.com/v2/repositories/${DH_USER}/${REPO_PURE}/" \ + -H "Authorization: JWT ${TOKEN}" \ + -H "Content-Type: application/json" \ + -d @payload.json) + + HTTP_STATUS=$(echo "$RESPONSE" | tail -n 1) + BODY=$(echo "$RESPONSE" | head -n -1) + + if [ "$HTTP_STATUS" -eq 200 ]; then + echo "✅ README update successfull (HTTP 200)." + else + echo "❌ Error on update! HTTP Status: $HTTP_STATUS" + echo "Answer from Docker Hub: $BODY" + exit 1 + fi + + - name: Commit, Tag and Push Changes + if: steps.check_changes.outputs.should_build == 'true' + run: | + git config --local user.email "action@pi-farm.de" + git config --local user.name "Gitea Action" + + git add VERSION.history README.md docker-compose.yml + + git diff --quiet && git diff --staged --quiet || git commit -m "${{ env.FINAL_MSG }} [skip ci]" + + TARGET_TAG="${{ steps.prep.outputs.docker_tag }}" + git tag -f "$TARGET_TAG" + + if [[ "${{ gitea.ref }}" == refs/tags/* ]]; then + echo "🏷️ Build aus Tag getriggert: $TARGET_TAG" + git push -f origin "$TARGET_TAG" + else + echo "🌿 Build aus Branch/Schedule getriggert: ${{ gitea.ref_name }}" + git push origin HEAD:${{ gitea.ref_name }} + git push -f origin "$TARGET_TAG" + fi - name: Cleanup Temporary Tags on Docker Hub if: steps.check_changes.outputs.should_build == 'true' && contains(steps.prep.outputs.push_targets, 'dockerhub') From 0d1bf8ecde58cd194506ece1f1f164f063146928 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 10:18:29 +0000 Subject: [PATCH 09/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index a1502ab..af5753e 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -455,7 +455,7 @@ jobs: - name: Cleanup Temporary Registry Tags (Gitea) if: steps.check_changes.outputs.should_build == 'true' run: | - TOKEN="${{ secrets.GIT_TOKEN }}" + TOKEN="${{ secrets.RUNNER_TOKEN }}" ORG_NAME=$(echo "${{ gitea.repository }}" | cut -d'/' -f1) REPO_NAME=$(echo "${{ gitea.repository }}" | cut -d'/' -f2) From d25f1697c5b5cf0a77930f3edab4cf89b4cdf6d2 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 10:31:35 +0000 Subject: [PATCH 10/97] fix build and cleanup steps if Dockerfile.aarch64 does not exist --- .gitea/workflows/build-and-push.yaml | 68 +++++++++++++++++++--------- 1 file changed, 46 insertions(+), 22 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index af5753e..19693de 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -120,7 +120,7 @@ jobs: with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - + - name: Build and Push Docker Image if: steps.check_changes.outputs.should_build == 'true' run: | @@ -143,26 +143,40 @@ jobs: BASE_SHA=$(docker buildx imagetools inspect $BASE --format '{{json .Manifest.Digest}}' 2>/dev/null | tr -d '"' || echo "unknown") - # Bereite die Tags für den initialen Build vor (Gitea immer, Docker Hub optional) + # AMD64 ist immer das primäre Target AMD_TAGS=("-t" "$IMAGE_GITEA:tmp-amd64") - ARM_TAGS=("-t" "$IMAGE_GITEA:tmp-arm64") + GITEA_SOURCES=("$IMAGE_GITEA:tmp-amd64") if [[ "$PUSH" == *"dockerhub"* ]]; then AMD_TAGS+=("-t" "$DOCKERHUB_REPO:tmp-amd64") - ARM_TAGS+=("-t" "$DOCKERHUB_REPO:tmp-arm64") + DH_SOURCES=("$DOCKERHUB_REPO:tmp-amd64") fi - # Build AMD64 & Push zu allen Zielen + # 1. Build AMD64 & Push docker buildx build "${DOCKER_ARGS[@]}" "${AMD_TAGS[@]}" \ --pull --platform linux/amd64 -f Dockerfile \ --label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . - - # Build ARM64 & Push zu allen Zielen - docker buildx build "${DOCKER_ARGS[@]}" "${ARM_TAGS[@]}" \ - --pull --platform linux/arm64 -f Dockerfile.aarch64 \ - --label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . - - # 1. Manifest auf Gitea erstellen (aus Gitea Temp-Tags) + + # 2. Prüfung auf ARM64 Dockerfile + if [ -f "Dockerfile.aarch64" ]; then + echo "⚙️ Dockerfile.aarch64 gefunden. Baue ARM64 Image..." + + ARM_TAGS=("-t" "$IMAGE_GITEA:tmp-arm64") + GITEA_SOURCES+=("$IMAGE_GITEA:tmp-arm64") + + if [[ "$PUSH" == *"dockerhub"* ]]; then + ARM_TAGS+=("-t" "$DOCKERHUB_REPO:tmp-arm64") + DH_SOURCES+=("$DOCKERHUB_REPO:tmp-arm64") + fi + + docker buildx build "${DOCKER_ARGS[@]}" "${ARM_TAGS[@]}" \ + --pull --platform linux/arm64 -f Dockerfile.aarch64 \ + --label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . + else + echo "ℹ️ Keine Dockerfile.aarch64 gefunden. ARM64 Build wird übersprungen." + fi + + # 3. Manifest auf Gitea erstellen (nutzt nur die tatsächlich gebauten Temp-Tags) GITEA_MANIFEST_TAGS=("-t" "$IMAGE_GITEA:$TAG") if [[ "$BUILD_TAG_LATEST" == "y" ]]; then GITEA_MANIFEST_TAGS+=("-t" "$IMAGE_GITEA:latest") @@ -170,19 +184,18 @@ jobs: docker buildx imagetools create \ --annotation "index:pi_farm.base_digest=$BASE_SHA" --annotation "index:pi_farm.args_hash=$ARGS_HASH" \ - "${GITEA_MANIFEST_TAGS[@]}" $IMAGE_GITEA:tmp-amd64 $IMAGE_GITEA:tmp-arm64 + "${GITEA_MANIFEST_TAGS[@]}" "${GITEA_SOURCES[@]}" - # 2. Manifest auf Docker Hub erstellen (aus Docker Hub Temp-Tags!) + # 4. Manifest auf Docker Hub erstellen if [[ "$PUSH" == *"dockerhub"* ]]; then DH_MANIFEST_TAGS=("-t" "$DOCKERHUB_REPO:$TAG") if [[ "$BUILD_TAG_LATEST" == "y" ]]; then DH_MANIFEST_TAGS+=("-t" "$DOCKERHUB_REPO:latest") fi - # WICHTIG: Hier werden jetzt als Quelle die Docker Hub Temp-Tags genutzt! docker buildx imagetools create \ --annotation "index:pi_farm.base_digest=$BASE_SHA" --annotation "index:pi_farm.args_hash=$ARGS_HASH" \ - "${DH_MANIFEST_TAGS[@]}" $DOCKERHUB_REPO:tmp-amd64 $DOCKERHUB_REPO:tmp-arm64 + "${DH_MANIFEST_TAGS[@]}" "${DH_SOURCES[@]}" fi - name: Update Documentation and Compose @@ -436,17 +449,23 @@ jobs: TOKEN=$(curl -s -X POST "https://hub.docker.com/v2/users/login/" \ -H "Content-Type: application/json" \ - -d "{\"username\": \"${{ secrets.DOCKERHUB_USERNAME }}\", \"password\": \"${{ secrets.DOCKERHUB_TOKEN }}\"}" | jq -r .token) + -d "{\"username\": \"${{ secrets.DOCKERHUB_USERNAME }}\", \"password\": \"${{ secrets.DOCKERHUB_TOKEN }}\"}" | jq -r .token || echo "") if [ "$TOKEN" != "null" ] && [ -n "$TOKEN" ]; then REPO_PURE=${{ steps.prep.outputs.repo_pure }} DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" - for t in tmp-amd64 tmp-arm64; do + # Nur existierende Tags löschen + CLEAN_TAGS=("tmp-amd64") + if [ -f "Dockerfile.aarch64" ]; then + CLEAN_TAGS+=("tmp-arm64") + fi + + for t in "${CLEAN_TAGS[@]}"; do echo "Deleting tag $t..." STATUS=$(curl -s -o /dev/null -w "%{http_code}" -X DELETE \ "https://hub.docker.com/v2/repositories/${DH_USER}/${REPO_PURE}/tags/$t/" \ - -H "Authorization: JWT ${TOKEN}") + -H "Authorization: JWT ${TOKEN}" || echo "000") echo "Status: $STATUS" done echo "✅ Temp. tags deleted." @@ -459,9 +478,14 @@ jobs: ORG_NAME=$(echo "${{ gitea.repository }}" | cut -d'/' -f1) REPO_NAME=$(echo "${{ gitea.repository }}" | cut -d'/' -f2) - for t in tmp-amd64 tmp-arm64; do - curl -s -X DELETE "https://git.pi-farm.de/api/v1/packages/$ORG_NAME/container/$REPO_NAME/$t" -H "Authorization: token $TOKEN" - curl -s -X DELETE "https://git.pi-farm.de/api/v1/packages/${ORG_NAME,,}/container/${REPO_NAME,,}/$t" -H "Authorization: token $TOKEN" + CLEAN_TAGS=("tmp-amd64") + if [ -f "Dockerfile.aarch64" ]; then + CLEAN_TAGS+=("tmp-arm64") + fi + + for t in "${CLEAN_TAGS[@]}"; do + curl -s -X DELETE "https://git.pi-farm.de/api/v1/packages/$ORG_NAME/container/$REPO_NAME/$t" -H "Authorization: token $TOKEN" || true + curl -s -X DELETE "https://git.pi-farm.de/api/v1/packages/${ORG_NAME,,}/container/${REPO_NAME,,}/$t" -H "Authorization: token $TOKEN" || true done - name: Cleanup Docker Artifacts From a53403fbea39c88bcbadc6e6daa4cee0d3f2334c Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 11:25:39 +0000 Subject: [PATCH 11/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 260 +++++++++++++-------------- 1 file changed, 130 insertions(+), 130 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 19693de..e1cc772 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -204,135 +204,133 @@ jobs: run: | set -x - export TZ=Europe/Berlin - CURRENT_TIME=$(date '+%d.%m.%Y %H:%M') - BUILD_TAG="${{ steps.prep.outputs.docker_tag }}" - FULL_URL="${{ steps.prep.outputs.image_name }}" - REPO_PURE="${{ steps.prep.outputs.repo_pure }}" - BASE_IMAGE="${{ steps.prep.outputs.base_image }}" - - if [ ! -f "buildargs.env" ]; then echo "❌ buildargs.env missing!"; exit 1; fi - - grep -v '^#' buildargs.env | sed 's/\r$//' > cleaned_env.sh - set -a - source ./cleaned_env.sh - set +a - - if [ -f "Dockerfile.aarch64" ]; then ARM_STATUS="✅ Active"; else ARM_STATUS="❌ Not supported"; fi - - cat << 'EOF' > commit_msg.txt - ${{ gitea.event.head_commit.message }} - EOF - COMMIT_MSG=$(sed 's/\[skip ci\]//g' commit_msg.txt | xargs) - - # 1. Authentifizierter Download der Templates via curl (-f bricht bei HTTP-Fehlern ab) - TOKEN="${{ secrets.RUNNER_TOKEN }}" - curl -sSLf -H "Authorization: token $TOKEN" \ - "https://git.pi-farm.de/pi-farm/templates/raw/branch/dev/README.template" \ - -o README.template || echo "Warnung: README Template konnte nicht geladen werden" - - curl -sSLf -H "Authorization: token $TOKEN" \ - "https://git.pi-farm.de/pi-farm/templates/raw/branch/dev/docker-compose.template" \ - -o docker-compose.template || echo "Warnung: Compose Template konnte nicht geladen werden" - - # 2. Sicherheitsprüfung: Falls Gitea trotz -f eine HTML-Login-Seite ausgibt, Datei sofort verwerfen - for t_file in README.template docker-compose.template; do - if [ -f "$t_file" ] && grep -qi "" "$t_file"; then - echo "❌ FEHLER: $t_file ist eine HTML-Loginseite! Download verworfen." - rm -f "$t_file" - fi - done - - NEW_ROW="| **$BUILD_TAG** | $CURRENT_TIME | $COMMIT_MSG ✅ |" - if [ -f "VERSION.history" ]; then - grep -v "| **$BUILD_TAG** |" VERSION.history > VERSION.history.tmp || true - echo "$NEW_ROW" > VERSION.history - cat VERSION.history.tmp >> VERSION.history - rm VERSION.history.tmp - else - echo "$NEW_ROW" > VERSION.history + export TZ=Europe/Berlin + CURRENT_TIME=$(date '+%d.%m.%Y %H:%M') + BUILD_TAG="${{ steps.prep.outputs.docker_tag }}" + FULL_URL="${{ steps.prep.outputs.image_name }}" + REPO_PURE="${{ steps.prep.outputs.repo_pure }}" + BASE_IMAGE="${{ steps.prep.outputs.base_image }}" + + if [ ! -f "buildargs.env" ]; then echo "❌ buildargs.env missing!"; exit 1; fi + + grep -v '^#' buildargs.env | sed 's/\r$//' > cleaned_env.sh + set -a + source ./cleaned_env.sh + set +a + + if [ -f "Dockerfile.aarch64" ]; then ARM_STATUS="✅ Active"; else ARM_STATUS="❌ Not supported"; fi + + # Commit-Message ohne fehleranfälliges Here-Doc einlesen + RAW_COMMIT_MSG="${{ gitea.event.head_commit.message }}" + COMMIT_MSG=$(echo "$RAW_COMMIT_MSG" | sed 's/\[skip ci\]//g' | tr -d '\r\n' | xargs) + + # 1. Authentifizierter Download der Templates + TOKEN="${{ secrets.RUNNER_TOKEN }}" + curl -sSLf -H "Authorization: token $TOKEN" \ + "https://git.pi-farm.de/pi-farm/templates/raw/branch/dev/README.template" \ + -o README.template || echo "Warnung: README Template konnte nicht geladen werden" + + curl -sSLf -H "Authorization: token $TOKEN" \ + "https://git.pi-farm.de/pi-farm/templates/raw/branch/dev/docker-compose.template" \ + -o docker-compose.template || echo "Warnung: Compose Template konnte nicht geladen werden" + + # 2. Sicherheitsprüfung auf HTML-Login-Seite + for t_file in README.template docker-compose.template; do + if [ -f "$t_file" ] && grep -qi "" "$t_file"; then + echo "❌ FEHLER: $t_file ist eine HTML-Loginseite! Download verworfen." + rm -f "$t_file" fi - HISTORY_CONTENT=$(cat VERSION.history) - - ENV_BLOCK_CONTENT="" - env_vars=$(grep '^ENV_' buildargs.env | grep -v '^#' | tr -d '\r' || true) - if [ -n "$env_vars" ]; then - ENV_BLOCK_CONTENT=" environment:\n" + done + + NEW_ROW="| **$BUILD_TAG** | $CURRENT_TIME | $COMMIT_MSG ✅ |" + if [ -f "VERSION.history" ]; then + grep -v "| **$BUILD_TAG** |" VERSION.history > VERSION.history.tmp || true + echo "$NEW_ROW" > VERSION.history + cat VERSION.history.tmp >> VERSION.history + rm VERSION.history.tmp + else + echo "$NEW_ROW" > VERSION.history + fi + HISTORY_CONTENT=$(cat VERSION.history) + + ENV_BLOCK_CONTENT="" + env_vars=$(grep '^ENV_' buildargs.env | grep -v '^#' | tr -d '\r' || true) + if [ -n "$env_vars" ]; then + ENV_BLOCK_CONTENT=" environment:\n" + while read -r line; do + [ -z "$line" ] && continue + key=$(echo "$line" | cut -d= -f1); val=$(echo "$line" | cut -d= -f2-); clean_key=${key#ENV_} + ENV_BLOCK_CONTENT="${ENV_BLOCK_CONTENT} - ${clean_key}=${val}\n" + done <<< "$env_vars" + fi + + PORTS_BLOCK_CONTENT="" + port_vars=$(grep '^PORT_' buildargs.env | grep -v '^#' | tr -d '\r' || true) + if [ -n "$port_vars" ]; then + PORTS_BLOCK_CONTENT=" ports:\n" + while read -r line; do + [ -z "$line" ] && continue + val=$(echo "$line" | cut -d= -f2-); PORTS_BLOCK_CONTENT="${PORTS_BLOCK_CONTENT} - ${val}\n" + done <<< "$port_vars" + fi + + VOL_BLOCK_CONTENT="" + vol_vars=$(grep '^VOL_' buildargs.env | grep -v '^#' | tr -d '\r' || true) + if [ -n "$vol_vars" ]; then + VOL_BLOCK_CONTENT=" volumes:\n" + while read -r line; do + [ -z "$line" ] && continue + val=$(echo "$line" | cut -d= -f2-); VOL_BLOCK_CONTENT="${VOL_BLOCK_CONTENT} - ${val}\n" + done <<< "$vol_vars" + fi + + { + echo "docker run -d \\" + echo " --name $REPO_PURE \\" + echo " --restart unless-stopped \\" + + all_params=$(grep -E '^(PORT_|ENV_|VOL_)' buildargs.env | grep -v '^#' | sed 's/\r$//' || true) + if [ -n "$all_params" ]; then while read -r line; do [ -z "$line" ] && continue - key=$(echo "$line" | cut -d= -f1); val=$(echo "$line" | cut -d= -f2-); clean_key=${key#ENV_} - ENV_BLOCK_CONTENT="${ENV_BLOCK_CONTENT} - ${clean_key}=${val}\n" - done <<< "$env_vars" + if [[ "$line" =~ ^PORT_ ]]; then + val=$(echo "$line" | cut -d= -f2-) + echo " -p ${val} \\" + elif [[ "$line" =~ ^ENV_ ]]; then + key=$(echo "$line" | cut -d= -f1); clean_key=${key#ENV_}; val=$(echo "$line" | cut -d= -f2-) + echo " -e ${clean_key}=${val} \\" + elif [[ "$line" =~ ^VOL_ ]]; then + val=$(echo "$line" | cut -d= -f2-) + echo " -v ${val} \\" + fi + done <<< "$all_params" fi - - PORTS_BLOCK_CONTENT="" - port_vars=$(grep '^PORT_' buildargs.env | grep -v '^#' | tr -d '\r' || true) - if [ -n "$port_vars" ]; then - PORTS_BLOCK_CONTENT=" ports:\n" - while read -r line; do - [ -z "$line" ] && continue - val=$(echo "$line" | cut -d= -f2-); PORTS_BLOCK_CONTENT="${PORTS_BLOCK_CONTENT} - ${val}\n" - done <<< "$port_vars" - fi - - VOL_BLOCK_CONTENT="" - vol_vars=$(grep '^VOL_' buildargs.env | grep -v '^#' | tr -d '\r' || true) - if [ -n "$vol_vars" ]; then - VOL_BLOCK_CONTENT=" volumes:\n" - while read -r line; do - [ -z "$line" ] && continue - val=$(echo "$line" | cut -d= -f2-); VOL_BLOCK_CONTENT="${VOL_BLOCK_CONTENT} - ${val}\n" - done <<< "$vol_vars" - fi - - { - echo "docker run -d \\" - echo " --name $REPO_PURE \\" - echo " --restart unless-stopped \\" - - all_params=$(grep -E '^(PORT_|ENV_|VOL_)' buildargs.env | grep -v '^#' | sed 's/\r$//' || true) - if [ -n "$all_params" ]; then - while read -r line; do - [ -z "$line" ] && continue - if [[ "$line" =~ ^PORT_ ]]; then - val=$(echo "$line" | cut -d= -f2-) - echo " -p ${val} \\" - elif [[ "$line" =~ ^ENV_ ]]; then - key=$(echo "$line" | cut -d= -f1); clean_key=${key#ENV_}; val=$(echo "$line" | cut -d= -f2-) - echo " -e ${clean_key}=${val} \\" - elif [[ "$line" =~ ^VOL_ ]]; then - val=$(echo "$line" | cut -d= -f2-) - echo " -v ${val} \\" - fi - done <<< "$all_params" - fi - echo " $FULL_URL:$BUILD_TAG" - } > docker_run_block.txt - - DOCKERHUB_LINK_CONTENT="" - if [[ "${{ steps.prep.outputs.push_targets }}" == *"dockerhub"* ]]; then - DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" - DOCKERHUB_LINK_CONTENT="[![Docker Hub](https://img.shields.io/badge/docker-hub-blue?logo=docker&logoColor=white)](https://hub.docker.com/r/${DH_USER}/${REPO_PURE})" - fi - - # Template-Verarbeitung via Python (verhindert awk-Abstürze bei Zeilenumbrüchen) - process_template() { - local template=$1; local output=$2 - [ ! -f "$template" ] && return - cp "$template" "$output" - - export REPO_PURE FULL_URL BUILD_TAG BASE_IMAGE ARM_STATUS CURRENT_TIME \ - HISTORY_CONTENT DOCKERHUB_LINK_CONTENT ENV_BLOCK_CONTENT \ - PORTS_BLOCK_CONTENT VOL_BLOCK_CONTENT DESCRIPTION - - python3 -c ' + echo " $FULL_URL:$BUILD_TAG" + } > docker_run_block.txt + + DOCKERHUB_LINK_CONTENT="" + if [[ "${{ steps.prep.outputs.push_targets }}" == *"dockerhub"* ]]; then + DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" + DOCKERHUB_LINK_CONTENT="[![Docker Hub](https://img.shields.io/badge/docker-hub-blue?logo=docker&logoColor=white)](https://hub.docker.com/r/${DH_USER}/${REPO_PURE})" + fi + + process_template() { + local template=$1; local output=$2 + [ ! -f "$template" ] && return + cp "$template" "$output" + + export REPO_PURE FULL_URL BUILD_TAG BASE_IMAGE ARM_STATUS CURRENT_TIME \ + HISTORY_CONTENT DOCKERHUB_LINK_CONTENT ENV_BLOCK_CONTENT \ + PORTS_BLOCK_CONTENT VOL_BLOCK_CONTENT DESCRIPTION + + python3 -c ' import os, sys - + output = sys.argv[1] - + with open(output, "r", encoding="utf-8") as f: - content = f.read() - + content = f.read() + content = content.replace("__REPO_NAME__", os.environ.get("REPO_PURE", "")) content = content.replace("__FULL_URL__", os.environ.get("FULL_URL", "")) content = content.replace("__BUILD_TAG__", os.environ.get("BUILD_TAG", "")) @@ -357,15 +355,17 @@ jobs: with open(output, "w", encoding="utf-8") as f: f.write(content) ' "$output" - } + } + + process_template "docker-compose.template" "docker-compose.yml" + process_template "README.template" "README.md" - process_template "docker-compose.template" "docker-compose.yml" - process_template "README.template" "README.md" - - echo "FINAL_MSG=$COMMIT_MSG" >> $GITHUB_ENV - echo "DESCRIPTION<> $GITHUB_ENV - echo -e "$DESCRIPTION" >> $GITHUB_ENV - echo "EOF" >> $GITHUB_ENV + echo "FINAL_MSG=$COMMIT_MSG" >> $GITHUB_ENV + { + echo "DESCRIPTION<> $GITHUB_ENV - name: Push README to Docker Hub if: steps.check_changes.outputs.should_build == 'true' && contains(steps.prep.outputs.push_targets, 'dockerhub') From 59d5de46f9856b011b3537c9adc70c30289b09d6 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 11:52:20 +0000 Subject: [PATCH 12/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index e1cc772..f2fc961 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -2,6 +2,12 @@ on: push: branches: - 'dev' + paths-ignore: + - 'README.md' + - 'VERSION.history' + - 'docker-compose.yml' + - '*.md' + - '.gitignore' tags: - '*' schedule: @@ -154,6 +160,8 @@ jobs: # 1. Build AMD64 & Push docker buildx build "${DOCKER_ARGS[@]}" "${AMD_TAGS[@]}" \ + --cache-from "type=registry,ref=$IMAGE_GITEA:buildcache-amd64" \ + --cache-to "type=registry,ref=$IMAGE_GITEA:buildcache-amd64,mode=max" \ --pull --platform linux/amd64 -f Dockerfile \ --label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . @@ -170,6 +178,8 @@ jobs: fi docker buildx build "${DOCKER_ARGS[@]}" "${ARM_TAGS[@]}" \ + --cache-from "type=registry,ref=$IMAGE_GITEA:buildcache-arm64" \ + --cache-to "type=registry,ref=$IMAGE_GITEA:buildcache-arm64,mode=max" \ --pull --platform linux/arm64 -f Dockerfile.aarch64 \ --label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . else From 453923d40646dc6c8c9346dc6b25192520c6c38f Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 12:05:41 +0000 Subject: [PATCH 13/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 144 +++++++++++++-------------- 1 file changed, 72 insertions(+), 72 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index f2fc961..fcf5ff6 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -237,11 +237,11 @@ jobs: # 1. Authentifizierter Download der Templates TOKEN="${{ secrets.RUNNER_TOKEN }}" curl -sSLf -H "Authorization: token $TOKEN" \ - "https://git.pi-farm.de/pi-farm/templates/raw/branch/dev/README.template" \ + "https://git.pi-farm.de/pi-farm/templates/raw/branch/main/README.template" \ -o README.template || echo "Warnung: README Template konnte nicht geladen werden" curl -sSLf -H "Authorization: token $TOKEN" \ - "https://git.pi-farm.de/pi-farm/templates/raw/branch/dev/docker-compose.template" \ + "https://git.pi-farm.de/pi-farm/templates/raw/branch/main/docker-compose.template" \ -o docker-compose.template || echo "Warnung: Compose Template konnte nicht geladen werden" # 2. Sicherheitsprüfung auf HTML-Login-Seite @@ -377,76 +377,76 @@ jobs: echo "EOF" } >> $GITHUB_ENV - - name: Push README to Docker Hub - if: steps.check_changes.outputs.should_build == 'true' && contains(steps.prep.outputs.push_targets, 'dockerhub') - run: | - if ! command -v jq &> /dev/null; then - apt-get update && apt-get install -y jq || apk add --no-cache jq || true - fi - - echo "🚀 Starting update README on Docker Hub..." - - TOKEN=$(curl -s -X POST "https://hub.docker.com/v2/users/login/" \ - -H "Content-Type: application/json" \ - -d "{\"username\": \"${{ secrets.DOCKERHUB_USERNAME }}\", \"password\": \"${{ secrets.DOCKERHUB_TOKEN }}\"}" | jq -r .token) - - if [ "$TOKEN" == "null" ] || [ -z "$TOKEN" ]; then - echo "❌ Error: No login-token available. Check your credentials!" - exit 1 - fi - - REPO_PURE="${{ steps.prep.outputs.repo_pure }}" - DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" - - SHORT_DESC=$(echo -e "${{ env.DESCRIPTION }}" | head -n 1 | cut -c 1-100) - [ -z "$SHORT_DESC" ] && SHORT_DESC="Docker Image for $REPO_PURE" - - echo "📦 Processing README.md (${REPO_PURE})..." - - jq -n \ - --arg desc "$SHORT_DESC" \ - --rawfile full_desc README.md \ - '{description: $desc, full_description: $full_desc}' > payload.json - - echo "📤 Sending data to Docker Hub API..." - RESPONSE=$(curl -s -w "\n%{http_code}" -X PATCH \ - "https://hub.docker.com/v2/repositories/${DH_USER}/${REPO_PURE}/" \ - -H "Authorization: JWT ${TOKEN}" \ - -H "Content-Type: application/json" \ - -d @payload.json) - - HTTP_STATUS=$(echo "$RESPONSE" | tail -n 1) - BODY=$(echo "$RESPONSE" | head -n -1) - - if [ "$HTTP_STATUS" -eq 200 ]; then - echo "✅ README update successfull (HTTP 200)." - else - echo "❌ Error on update! HTTP Status: $HTTP_STATUS" - echo "Answer from Docker Hub: $BODY" - exit 1 - fi - - - name: Commit, Tag and Push Changes - if: steps.check_changes.outputs.should_build == 'true' - run: | - git config --local user.email "action@pi-farm.de" - git config --local user.name "Gitea Action" - - git add VERSION.history README.md docker-compose.yml - - git diff --quiet && git diff --staged --quiet || git commit -m "${{ env.FINAL_MSG }} [skip ci]" - - TARGET_TAG="${{ steps.prep.outputs.docker_tag }}" - git tag -f "$TARGET_TAG" - - if [[ "${{ gitea.ref }}" == refs/tags/* ]]; then - echo "🏷️ Build aus Tag getriggert: $TARGET_TAG" - git push -f origin "$TARGET_TAG" - else - echo "🌿 Build aus Branch/Schedule getriggert: ${{ gitea.ref_name }}" - git push origin HEAD:${{ gitea.ref_name }} - git push -f origin "$TARGET_TAG" - fi + - name: Push README to Docker Hub + if: steps.check_changes.outputs.should_build == 'true' && contains(steps.prep.outputs.push_targets, 'dockerhub') + run: | + if ! command -v jq &> /dev/null; then + apt-get update && apt-get install -y jq || apk add --no-cache jq || true + fi + + echo "🚀 Starting update README on Docker Hub..." + + TOKEN=$(curl -s -X POST "https://hub.docker.com/v2/users/login/" \ + -H "Content-Type: application/json" \ + -d "{\"username\": \"${{ secrets.DOCKERHUB_USERNAME }}\", \"password\": \"${{ secrets.DOCKERHUB_TOKEN }}\"}" | jq -r .token) + + if [ "$TOKEN" == "null" ] || [ -z "$TOKEN" ]; then + echo "❌ Error: No login-token available. Check your credentials!" + exit 1 + fi + + REPO_PURE="${{ steps.prep.outputs.repo_pure }}" + DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" + + SHORT_DESC=$(echo -e "${{ env.DESCRIPTION }}" | head -n 1 | cut -c 1-100) + [ -z "$SHORT_DESC" ] && SHORT_DESC="Docker Image for $REPO_PURE" + + echo "📦 Processing README.md (${REPO_PURE})..." + + jq -n \ + --arg desc "$SHORT_DESC" \ + --rawfile full_desc README.md \ + '{description: $desc, full_description: $full_desc}' > payload.json + + echo "📤 Sending data to Docker Hub API..." + RESPONSE=$(curl -s -w "\n%{http_code}" -X PATCH \ + "https://hub.docker.com/v2/repositories/${DH_USER}/${REPO_PURE}/" \ + -H "Authorization: JWT ${TOKEN}" \ + -H "Content-Type: application/json" \ + -d @payload.json) + + HTTP_STATUS=$(echo "$RESPONSE" | tail -n 1) + BODY=$(echo "$RESPONSE" | head -n -1) + + if [ "$HTTP_STATUS" -eq 200 ]; then + echo "✅ README update successfull (HTTP 200)." + else + echo "❌ Error on update! HTTP Status: $HTTP_STATUS" + echo "Answer from Docker Hub: $BODY" + exit 1 + fi + + - name: Commit, Tag and Push Changes + if: steps.check_changes.outputs.should_build == 'true' + run: | + git config --local user.email "action@pi-farm.de" + git config --local user.name "Gitea Action" + + git add VERSION.history README.md docker-compose.yml + + git diff --quiet && git diff --staged --quiet || git commit -m "${{ env.FINAL_MSG }} [skip ci]" + + TARGET_TAG="${{ steps.prep.outputs.docker_tag }}" + git tag -f "$TARGET_TAG" + + if [[ "${{ gitea.ref }}" == refs/tags/* ]]; then + echo "🏷️ Build aus Tag getriggert: $TARGET_TAG" + git push -f origin "$TARGET_TAG" + else + echo "🌿 Build aus Branch/Schedule getriggert: ${{ gitea.ref_name }}" + git push origin HEAD:${{ gitea.ref_name }} + git push -f origin "$TARGET_TAG" + fi - name: Cleanup Temporary Tags on Docker Hub if: steps.check_changes.outputs.should_build == 'true' && contains(steps.prep.outputs.push_targets, 'dockerhub') From 3879067d9bf93ccb722625f3f712b4efef40355e Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 13:04:47 +0000 Subject: [PATCH 14/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 36 ++++++++++++++++------------ 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index fcf5ff6..32d1e8d 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -319,21 +319,27 @@ jobs: } > docker_run_block.txt DOCKERHUB_LINK_CONTENT="" - if [[ "${{ steps.prep.outputs.push_targets }}" == *"dockerhub"* ]]; then - DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" - DOCKERHUB_LINK_CONTENT="[![Docker Hub](https://img.shields.io/badge/docker-hub-blue?logo=docker&logoColor=white)](https://hub.docker.com/r/${DH_USER}/${REPO_PURE})" - fi - - process_template() { - local template=$1; local output=$2 - [ ! -f "$template" ] && return - cp "$template" "$output" - - export REPO_PURE FULL_URL BUILD_TAG BASE_IMAGE ARM_STATUS CURRENT_TIME \ - HISTORY_CONTENT DOCKERHUB_LINK_CONTENT ENV_BLOCK_CONTENT \ - PORTS_BLOCK_CONTENT VOL_BLOCK_CONTENT DESCRIPTION - - python3 -c ' + if [[ "${{ steps.prep.outputs.push_targets }}" == *"dockerhub"* ]]; then + DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" + DOCKERHUB_LINK_CONTENT="[![Docker Hub](https://img.shields.io/badge/docker-hub-blue?logo=docker&logoColor=white)](https://hub.docker.com/r/${DH_USER}/${REPO_PURE})" + fi + + # Stelle sicher, dass python3 vorhanden ist + if ! command -v python3 &> /dev/null; then + echo "📦 python3 fehlt und wird installiert..." + (apt-get update && apt-get install -y python3) || (apk add --no-cache python3) || true + fi + + process_template() { + local template=$1; local output=$2 + [ ! -f "$template" ] && return + cp "$template" "$output" + + export REPO_PURE FULL_URL BUILD_TAG BASE_IMAGE ARM_STATUS CURRENT_TIME \ + HISTORY_CONTENT DOCKERHUB_LINK_CONTENT ENV_BLOCK_CONTENT \ + PORTS_BLOCK_CONTENT VOL_BLOCK_CONTENT DESCRIPTION + + python3 -c ' import os, sys output = sys.argv[1] From 3e8726f3fb2b6e9922d31e41d1962ae8f3e52c95 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Wed, 7 Oct 2026 13:05:04 +0000 Subject: [PATCH 15/97] .gitea/workflows/build-and-push.yaml aktualisiert [skip ci] --- README.md | 40 +++++++++++++++------------------------- VERSION.history | 1 + docker-compose.yml | 6 ++++-- 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 69b363f..e9fd268 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,33 @@ # base-image-debian-rdp-ldap -Debian Desktop with LDAP-Authentication. To use behind Guacamole with LDAP-Authentication and pass-through to Debian-Desktop. +Debian Desktop with LDAP-Authentication and Pulse-Audio. To use behind Guacamole with LDAP-Authentication and pass-through to Debian-Desktop. [![Build Status](https://git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap/actions/workflows/build-and-push.yaml/badge.svg)](https://git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap/actions) [![Gitea Repo](https://img.shields.io/badge/gitea-repository-blue?logo=gitea&logoColor=white)](__REPO_URL__) This repository is built and pushed automatically. -[![Docker Hub](https://img.shields.io/badge/docker-hub-blue?logo=docker__DOCKERHUB_LINK__logoColor=white)](https://hub.docker.com/r/pifarm/base-image-debian-rdp-ldap) + ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:bookworm | 09.04.2026 15:23 | -| aarch64 (arm64) | ✅ Active | debian:bookworm | 09.04.2026 15:23 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 15:05 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 15:05 | ### 🚀 Docker Pull ```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:trixie-de ``` ### 🚀 Docker Compose ```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:trixie-de container_name: base-image-debian-rdp-ldap restart: unless-stopped ports: - - 3889 + - 3389 + environment: - SSSD_DEBUG_LEVEL=5 - LDAP_URI=ldap://YOUR-LDAP-SERVER:389 @@ -34,8 +35,10 @@ services: - LDAP_BIND_DN=cn=YOUR-BIND-USER,dc=YOUR-DOMAIN,dc=LOC - LDAP_BIND_PASSWORD=YOUR-SUPER-SECRET-BIND-PASSWORD - LDAP_SUDO_GROUP=YOUR-SUDO-USERS-GROUP + volumes: - ./YOUR-PERSISTENT-FOLDER:/home + ``` ### 🚀 Docker Run ```bash @@ -49,27 +52,14 @@ docker run -d \ -e LDAP_BIND_PASSWORD=YOUR-SUPER-SECRET-BIND-PASSWORD \ -e LDAP_SUDO_GROUP=YOUR-SUDO-USERS-GROUP \ -v ./YOUR-PERSISTENT-FOLDER:/home \ - -p 3889 \ - git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-de + -p 3389 \ + git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de + ``` -*Last updated on: 09.04.2026 15:23* +*Last updated on: 07.10.2026 15:05* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | -| **bookworm-de** | 09.04.2026 15:23 | ✅ | -| **trixie-de** | 09.04.2026 14:58 | ✅ | -| **bookworm-de** | 09.04.2026 14:13 | ✅ | -| **bookworm-de** | 09.04.2026 13:10 | ✅ | -| **bookworm-de** | 09.04.2026 11:58 | ✅ | -| **bookworm-de** | 09.04.2026 10:11 | ✅ | -| **bookworm-de** | 07.04.2026 19:27 | ✅ | -| **bookworm-de** | 07.04.2026 17:38 | ✅ | -| **bookworm-de** | 05.04.2026 11:47 | ✅ | -| **bookworm-de** | 05.04.2026 11:20 | ✅ | -| **bookworm-de** | 04.04.2026 00:31 | ✅ | -| **bookworm-de** | 02.04.2026 17:26 | ✅ | -| **bookworm-de** | 02.04.2026 16:44 | ✅ | -| **bookworm-de** | 02.04.2026 15:37 | ✅ | -| **bookworm** | 02.04.2026 14:15 | ✅ | +| **trixie-de** | 07.10.2026 15:05 | .gitea/workflows/build-and-push.yaml aktualisiert ✅ | \ No newline at end of file diff --git a/VERSION.history b/VERSION.history index e69de29..178ba55 100644 --- a/VERSION.history +++ b/VERSION.history @@ -0,0 +1 @@ +| **trixie-de** | 07.10.2026 15:05 | .gitea/workflows/build-and-push.yaml aktualisiert ✅ | diff --git a/docker-compose.yml b/docker-compose.yml index de04786..df0b4fb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,10 +1,11 @@ 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:trixie-de container_name: base-image-debian-rdp-ldap restart: unless-stopped ports: - - 3889 + - 3389 + environment: - SSSD_DEBUG_LEVEL=5 - LDAP_URI=ldap://YOUR-LDAP-SERVER:389 @@ -12,5 +13,6 @@ services: - LDAP_BIND_DN=cn=YOUR-BIND-USER,dc=YOUR-DOMAIN,dc=LOC - LDAP_BIND_PASSWORD=YOUR-SUPER-SECRET-BIND-PASSWORD - LDAP_SUDO_GROUP=YOUR-SUDO-USERS-GROUP + volumes: - ./YOUR-PERSISTENT-FOLDER:/home From d87a0d461db4844f3a6bec10132f439cb5d41b9b Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 13:08:03 +0000 Subject: [PATCH 16/97] buildargs.env aktualisiert --- buildargs.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildargs.env b/buildargs.env index 2962fb9..94f7fc1 100644 --- a/buildargs.env +++ b/buildargs.env @@ -1,7 +1,7 @@ ## BUILD STAGE BUILD_BASE_IMAGE=debian:trixie BUILD_COUNTRY=de -BUILD_TAG=trixie-de +BUILD_TAG=trixie-de-dev BUILD_TAG_LATEST=n BUILD_LANG=de_DE.UTF-8 BUILD_LANGUAGE=de_DE:de From d12c3e57ac74fcce87ce918f9a63147f2d80be44 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Wed, 7 Oct 2026 13:08:20 +0000 Subject: [PATCH 17/97] buildargs.env aktualisiert [skip ci] --- README.md | 13 +++++++------ VERSION.history | 1 + docker-compose.yml | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e9fd268..1230cd1 100644 --- a/README.md +++ b/README.md @@ -11,18 +11,18 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 15:05 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 15:05 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 15:08 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 15:08 | ### 🚀 Docker Pull ```bash -docker pull git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de +docker pull git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev ``` ### 🚀 Docker Compose ```yaml services: base-image-debian-rdp-ldap: - image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de + image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev container_name: base-image-debian-rdp-ldap restart: unless-stopped ports: @@ -53,13 +53,14 @@ docker run -d \ -e LDAP_SUDO_GROUP=YOUR-SUDO-USERS-GROUP \ -v ./YOUR-PERSISTENT-FOLDER:/home \ -p 3389 \ - git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de + git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev ``` -*Last updated on: 07.10.2026 15:05* +*Last updated on: 07.10.2026 15:08* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 07.10.2026 15:08 | buildargs.env aktualisiert ✅ | | **trixie-de** | 07.10.2026 15:05 | .gitea/workflows/build-and-push.yaml aktualisiert ✅ | \ No newline at end of file diff --git a/VERSION.history b/VERSION.history index 178ba55..3a9e0be 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1 +1,2 @@ +| **trixie-de-dev** | 07.10.2026 15:08 | buildargs.env aktualisiert ✅ | | **trixie-de** | 07.10.2026 15:05 | .gitea/workflows/build-and-push.yaml aktualisiert ✅ | diff --git a/docker-compose.yml b/docker-compose.yml index df0b4fb..c161e2c 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:trixie-de + image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev container_name: base-image-debian-rdp-ldap restart: unless-stopped ports: From 60d1afdcb24fd33740e0cb78c07a131425affcd3 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 13:16:33 +0000 Subject: [PATCH 18/97] buildargs.env aktualisiert --- buildargs.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildargs.env b/buildargs.env index 94f7fc1..4f10051 100644 --- a/buildargs.env +++ b/buildargs.env @@ -24,4 +24,4 @@ ENV_LDAP_SUDO_GROUP=YOUR-SUDO-USERS-GROUP VOL_HOME=./YOUR-PERSISTENT-FOLDER:/home PORT_RDP=3389 -DESCRIPTION="Debian Desktop with LDAP-Authentication and Pulse-Audio. To use behind Guacamole with LDAP-Authentication and pass-through to Debian-Desktop." \ No newline at end of file +DESCRIPTION="Debian Desktop with LDAP Authentication and PulseAudio. To use behind Guacamole with LDAP Authentication and pass-through to Debian Desktop." \ No newline at end of file From d8a2e6ef9f41ddc0927bcb2220fc44e9febbd646 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Wed, 7 Oct 2026 13:16:51 +0000 Subject: [PATCH 19/97] buildargs.env aktualisiert [skip ci] --- README.md | 9 +++++---- VERSION.history | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 1230cd1..968e1de 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # base-image-debian-rdp-ldap -Debian Desktop with LDAP-Authentication and Pulse-Audio. To use behind Guacamole with LDAP-Authentication and pass-through to Debian-Desktop. +Debian Desktop with LDAP Authentication and PulseAudio. To use behind Guacamole with LDAP Authentication and pass-through to Debian Desktop. [![Build Status](https://git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap/actions/workflows/build-and-push.yaml/badge.svg)](https://git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap/actions) [![Gitea Repo](https://img.shields.io/badge/gitea-repository-blue?logo=gitea&logoColor=white)](__REPO_URL__) @@ -11,8 +11,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 15:08 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 15:08 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 15:16 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 15:16 | ### 🚀 Docker Pull ```bash @@ -57,10 +57,11 @@ docker run -d \ ``` -*Last updated on: 07.10.2026 15:08* +*Last updated on: 07.10.2026 15:16* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 07.10.2026 15:16 | buildargs.env aktualisiert ✅ | | **trixie-de-dev** | 07.10.2026 15:08 | buildargs.env aktualisiert ✅ | | **trixie-de** | 07.10.2026 15:05 | .gitea/workflows/build-and-push.yaml aktualisiert ✅ | \ No newline at end of file diff --git a/VERSION.history b/VERSION.history index 3a9e0be..73fa710 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,2 +1,3 @@ +| **trixie-de-dev** | 07.10.2026 15:16 | buildargs.env aktualisiert ✅ | | **trixie-de-dev** | 07.10.2026 15:08 | buildargs.env aktualisiert ✅ | | **trixie-de** | 07.10.2026 15:05 | .gitea/workflows/build-and-push.yaml aktualisiert ✅ | From 75b2c50bf51463ddb7ee2a954232a200e646a2a2 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 13:22:25 +0000 Subject: [PATCH 20/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 32d1e8d..480cf70 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -8,6 +8,7 @@ on: - 'docker-compose.yml' - '*.md' - '.gitignore' + - '.gitea/workflows/build-and-push.yaml' tags: - '*' schedule: @@ -183,7 +184,7 @@ jobs: --pull --platform linux/arm64 -f Dockerfile.aarch64 \ --label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . else - echo "ℹ️ Keine Dockerfile.aarch64 gefunden. ARM64 Build wird übersprungen." + echo "Keine Dockerfile.aarch64 gefunden. ARM64 Build wird übersprungen." fi # 3. Manifest auf Gitea erstellen (nutzt nur die tatsächlich gebauten Temp-Tags) From 90f4f9fe188a49edcbf6ffe8694c78d459d58d0e Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Wed, 7 Oct 2026 13:23:08 +0000 Subject: [PATCH 21/97] [skip ci] --- README.md | 7 ++++--- VERSION.history | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 968e1de..c245508 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 15:16 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 15:16 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 15:23 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 15:23 | ### 🚀 Docker Pull ```bash @@ -57,11 +57,12 @@ docker run -d \ ``` -*Last updated on: 07.10.2026 15:16* +*Last updated on: 07.10.2026 15:23* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 07.10.2026 15:23 | ✅ | | **trixie-de-dev** | 07.10.2026 15:16 | buildargs.env aktualisiert ✅ | | **trixie-de-dev** | 07.10.2026 15:08 | buildargs.env aktualisiert ✅ | | **trixie-de** | 07.10.2026 15:05 | .gitea/workflows/build-and-push.yaml aktualisiert ✅ | \ No newline at end of file diff --git a/VERSION.history b/VERSION.history index 73fa710..934272c 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 07.10.2026 15:23 | ✅ | | **trixie-de-dev** | 07.10.2026 15:16 | buildargs.env aktualisiert ✅ | | **trixie-de-dev** | 07.10.2026 15:08 | buildargs.env aktualisiert ✅ | | **trixie-de** | 07.10.2026 15:05 | .gitea/workflows/build-and-push.yaml aktualisiert ✅ | From e0cef93e27370722aa4ac3b4850abe8227d3e050 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Wed, 7 Oct 2026 13:49:42 +0000 Subject: [PATCH 22/97] [skip ci] --- README.md | 35 ++++++++++++++++++++++++++--------- VERSION.history | 1 + 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index c245508..a56a765 100644 --- a/README.md +++ b/README.md @@ -11,14 +11,14 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 15:23 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 15:23 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 15:49 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 15:49 | -### 🚀 Docker Pull -```bash -docker pull git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev -``` -### 🚀 Docker Compose +--- + +## 🐙 Method 1: Docker Compose (Recommended) + +### 🚀 1. Create `docker-compose.yml` ```yaml services: base-image-debian-rdp-ldap: @@ -39,8 +39,24 @@ services: volumes: - ./YOUR-PERSISTENT-FOLDER:/home + +### 🚀 2. Pull & start the container +### Pull or update the image +```bash +docker compose pull ``` -### 🚀 Docker Run +### Start container in background +```bash +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:trixie-de-dev +``` +### 🚀 2. Run the container directly ```bash docker run -d \ --name base-image-debian-rdp-ldap \ @@ -57,11 +73,12 @@ docker run -d \ ``` -*Last updated on: 07.10.2026 15:23* +*Last updated on: 07.10.2026 15:49* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 07.10.2026 15:49 | ✅ | | **trixie-de-dev** | 07.10.2026 15:23 | ✅ | | **trixie-de-dev** | 07.10.2026 15:16 | buildargs.env aktualisiert ✅ | | **trixie-de-dev** | 07.10.2026 15:08 | buildargs.env aktualisiert ✅ | diff --git a/VERSION.history b/VERSION.history index 934272c..986f5ae 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 07.10.2026 15:49 | ✅ | | **trixie-de-dev** | 07.10.2026 15:23 | ✅ | | **trixie-de-dev** | 07.10.2026 15:16 | buildargs.env aktualisiert ✅ | | **trixie-de-dev** | 07.10.2026 15:08 | buildargs.env aktualisiert ✅ | From 305e5075988d2408cc97b2c7b85991bf2674616f Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Wed, 7 Oct 2026 13:52:53 +0000 Subject: [PATCH 23/97] [skip ci] --- README.md | 9 +++++---- VERSION.history | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a56a765..b17d946 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 15:49 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 15:49 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 15:52 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 15:52 | --- @@ -39,7 +39,7 @@ services: volumes: - ./YOUR-PERSISTENT-FOLDER:/home - +``` ### 🚀 2. Pull & start the container ### Pull or update the image ```bash @@ -73,11 +73,12 @@ docker run -d \ ``` -*Last updated on: 07.10.2026 15:49* +*Last updated on: 07.10.2026 15:52* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 07.10.2026 15:52 | ✅ | | **trixie-de-dev** | 07.10.2026 15:49 | ✅ | | **trixie-de-dev** | 07.10.2026 15:23 | ✅ | | **trixie-de-dev** | 07.10.2026 15:16 | buildargs.env aktualisiert ✅ | diff --git a/VERSION.history b/VERSION.history index 986f5ae..bf0359a 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 07.10.2026 15:52 | ✅ | | **trixie-de-dev** | 07.10.2026 15:49 | ✅ | | **trixie-de-dev** | 07.10.2026 15:23 | ✅ | | **trixie-de-dev** | 07.10.2026 15:16 | buildargs.env aktualisiert ✅ | From 9bfbadd89b03448527dbb911ebfe0e8dd4db2949 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 13:54:35 +0000 Subject: [PATCH 24/97] VERSION.history aktualisiert --- VERSION.history | 5 ----- 1 file changed, 5 deletions(-) diff --git a/VERSION.history b/VERSION.history index bf0359a..d1b90ad 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,6 +1 @@ | **trixie-de-dev** | 07.10.2026 15:52 | ✅ | -| **trixie-de-dev** | 07.10.2026 15:49 | ✅ | -| **trixie-de-dev** | 07.10.2026 15:23 | ✅ | -| **trixie-de-dev** | 07.10.2026 15:16 | buildargs.env aktualisiert ✅ | -| **trixie-de-dev** | 07.10.2026 15:08 | buildargs.env aktualisiert ✅ | -| **trixie-de** | 07.10.2026 15:05 | .gitea/workflows/build-and-push.yaml aktualisiert ✅ | From c1cf74e7f61b28bf303347e531f74f5136ca0741 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 14:02:37 +0000 Subject: [PATCH 25/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 34 +++++++++++++++++----------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 480cf70..b1f02f8 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -390,49 +390,57 @@ jobs: if ! command -v jq &> /dev/null; then apt-get update && apt-get install -y jq || apk add --no-cache jq || true fi - + echo "🚀 Starting update README on Docker Hub..." - + TOKEN=$(curl -s -X POST "https://hub.docker.com/v2/users/login/" \ -H "Content-Type: application/json" \ -d "{\"username\": \"${{ secrets.DOCKERHUB_USERNAME }}\", \"password\": \"${{ secrets.DOCKERHUB_TOKEN }}\"}" | jq -r .token) - + if [ "$TOKEN" == "null" ] || [ -z "$TOKEN" ]; then echo "❌ Error: No login-token available. Check your credentials!" exit 1 fi - + REPO_PURE="${{ steps.prep.outputs.repo_pure }}" DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" - + GITEA_URL="${{ steps.prep.outputs.image_name }}" + DH_URL="${DH_USER}/${REPO_PURE}" + SHORT_DESC=$(echo -e "${{ env.DESCRIPTION }}" | head -n 1 | cut -c 1-100) [ -z "$SHORT_DESC" ] && SHORT_DESC="Docker Image for $REPO_PURE" - - echo "📦 Processing README.md (${REPO_PURE})..." - + + echo "📦 Processing README.md for Docker Hub (${DH_URL})..." + + # Erstelle temporäre README für Docker Hub, in der die Gitea-URL durch den Docker Hub Image-Namen ersetzt wird + sed "s|${GITEA_URL}|${DH_URL}|g" README.md > README_DH.md + jq -n \ --arg desc "$SHORT_DESC" \ - --rawfile full_desc README.md \ + --rawfile full_desc README_DH.md \ '{description: $desc, full_description: $full_desc}' > payload.json - + echo "📤 Sending data to Docker Hub API..." RESPONSE=$(curl -s -w "\n%{http_code}" -X PATCH \ "https://hub.docker.com/v2/repositories/${DH_USER}/${REPO_PURE}/" \ -H "Authorization: JWT ${TOKEN}" \ -H "Content-Type: application/json" \ -d @payload.json) - + HTTP_STATUS=$(echo "$RESPONSE" | tail -n 1) BODY=$(echo "$RESPONSE" | head -n -1) - + if [ "$HTTP_STATUS" -eq 200 ]; then - echo "✅ README update successfull (HTTP 200)." + echo "✅ README update successful (HTTP 200)." else echo "❌ Error on update! HTTP Status: $HTTP_STATUS" echo "Answer from Docker Hub: $BODY" exit 1 fi + # Temporäre Datei aufräumen + rm -f README_DH.md + - name: Commit, Tag and Push Changes if: steps.check_changes.outputs.should_build == 'true' run: | From badbfc89c41f6edd8e8e5c9174e384b80b972510 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 14:03:44 +0000 Subject: [PATCH 26/97] buildargs.env aktualisiert --- buildargs.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildargs.env b/buildargs.env index 4f10051..71449ad 100644 --- a/buildargs.env +++ b/buildargs.env @@ -10,7 +10,7 @@ BUILD_TZ=Europe/Berlin BUILD_MAINTAINER=pi-farm BUILD_APP_NAME=base-image-debian-rdp-ldap BUILD_APP_VERSION=1.0.0-dev -PUSH=gitea +PUSH=dockerhub ## ENV STAGE ENV_SSSD_DEBUG_LEVEL=5 From 4e6e74d56c0fb39e505700cdfc47201f2edcd6cd Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 14:04:34 +0000 Subject: [PATCH 27/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index b1f02f8..98be91c 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -6,6 +6,7 @@ on: - 'README.md' - 'VERSION.history' - 'docker-compose.yml' + - 'buildargs.env' - '*.md' - '.gitignore' - '.gitea/workflows/build-and-push.yaml' From d699e10271cd3f51e4bcac7a6d196909ddf0db28 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Wed, 7 Oct 2026 14:09:21 +0000 Subject: [PATCH 28/97] [skip ci] --- README.md | 16 ++++++---------- VERSION.history | 1 + 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index b17d946..0b9cc9c 100644 --- a/README.md +++ b/README.md @@ -6,13 +6,13 @@ Debian Desktop with LDAP Authentication and PulseAudio. To use behind Guacamole This repository is built and pushed automatically. - +[![Docker Hub](https://img.shields.io/badge/docker-hub-blue?logo=docker&logoColor=white)](https://hub.docker.com/r/pifarm/base-image-debian-rdp-ldap) ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 15:52 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 15:52 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 16:09 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 16:09 | --- @@ -73,14 +73,10 @@ docker run -d \ ``` -*Last updated on: 07.10.2026 15:52* +*Last updated on: 07.10.2026 16:09* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | -| **trixie-de-dev** | 07.10.2026 15:52 | ✅ | -| **trixie-de-dev** | 07.10.2026 15:49 | ✅ | -| **trixie-de-dev** | 07.10.2026 15:23 | ✅ | -| **trixie-de-dev** | 07.10.2026 15:16 | buildargs.env aktualisiert ✅ | -| **trixie-de-dev** | 07.10.2026 15:08 | buildargs.env aktualisiert ✅ | -| **trixie-de** | 07.10.2026 15:05 | .gitea/workflows/build-and-push.yaml aktualisiert ✅ | \ No newline at end of file +| **trixie-de-dev** | 07.10.2026 16:09 | ✅ | +| **trixie-de-dev** | 07.10.2026 15:52 | ✅ | \ No newline at end of file diff --git a/VERSION.history b/VERSION.history index d1b90ad..16d4dd9 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1 +1,2 @@ +| **trixie-de-dev** | 07.10.2026 16:09 | ✅ | | **trixie-de-dev** | 07.10.2026 15:52 | ✅ | From ebba5af257b6a6c9b1633457fc490e8ea83ee77e Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 14:10:57 +0000 Subject: [PATCH 29/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 98be91c..df39991 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -321,10 +321,10 @@ jobs: } > docker_run_block.txt DOCKERHUB_LINK_CONTENT="" - if [[ "${{ steps.prep.outputs.push_targets }}" == *"dockerhub"* ]]; then - DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" - DOCKERHUB_LINK_CONTENT="[![Docker Hub](https://img.shields.io/badge/docker-hub-blue?logo=docker&logoColor=white)](https://hub.docker.com/r/${DH_USER}/${REPO_PURE})" - fi + if [[ "${{ steps.prep.outputs.push_targets }}" == *"dockerhub"* ]]; then + DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" + DOCKERHUB_LINK_CONTENT='Docker Hub' + fi # Stelle sicher, dass python3 vorhanden ist if ! command -v python3 &> /dev/null; then From 225679a316a049be1d10588a2c60ac3b692e78c2 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Wed, 7 Oct 2026 14:12:49 +0000 Subject: [PATCH 30/97] [skip ci] --- README.md | 17 +++++++++++------ VERSION.history | 1 + 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0b9cc9c..c3a32b9 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,22 @@ # base-image-debian-rdp-ldap Debian Desktop with LDAP Authentication and PulseAudio. To use behind Guacamole with LDAP Authentication and pass-through to Debian Desktop. -[![Build Status](https://git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap/actions/workflows/build-and-push.yaml/badge.svg)](https://git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap/actions) -[![Gitea Repo](https://img.shields.io/badge/gitea-repository-blue?logo=gitea&logoColor=white)](__REPO_URL__) + + Build Status + + + Gitea Repository + This repository is built and pushed automatically. -[![Docker Hub](https://img.shields.io/badge/docker-hub-blue?logo=docker&logoColor=white)](https://hub.docker.com/r/pifarm/base-image-debian-rdp-ldap) +Docker Hub ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 16:09 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 16:09 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 16:12 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 16:12 | --- @@ -73,10 +77,11 @@ docker run -d \ ``` -*Last updated on: 07.10.2026 16:09* +*Last updated on: 07.10.2026 16:12* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 07.10.2026 16:12 | ✅ | | **trixie-de-dev** | 07.10.2026 16:09 | ✅ | | **trixie-de-dev** | 07.10.2026 15:52 | ✅ | \ No newline at end of file diff --git a/VERSION.history b/VERSION.history index 16d4dd9..ce97ab0 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,2 +1,3 @@ +| **trixie-de-dev** | 07.10.2026 16:12 | ✅ | | **trixie-de-dev** | 07.10.2026 16:09 | ✅ | | **trixie-de-dev** | 07.10.2026 15:52 | ✅ | From 220767e82b818500393c37b156d916e8bc4e2b80 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Wed, 7 Oct 2026 14:21:54 +0000 Subject: [PATCH 31/97] [skip ci] --- README.md | 9 +++++---- VERSION.history | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c3a32b9..d1960c5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Debian Desktop with LDAP Authentication and PulseAudio. To use behind Guacamole with LDAP Authentication and pass-through to Debian Desktop. - Build Status + Build Status Gitea Repository @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 16:12 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 16:12 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 16:21 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 16:21 | --- @@ -77,11 +77,12 @@ docker run -d \ ``` -*Last updated on: 07.10.2026 16:12* +*Last updated on: 07.10.2026 16:21* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 07.10.2026 16:21 | ✅ | | **trixie-de-dev** | 07.10.2026 16:12 | ✅ | | **trixie-de-dev** | 07.10.2026 16:09 | ✅ | | **trixie-de-dev** | 07.10.2026 15:52 | ✅ | \ No newline at end of file diff --git a/VERSION.history b/VERSION.history index ce97ab0..89acfbb 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 07.10.2026 16:21 | ✅ | | **trixie-de-dev** | 07.10.2026 16:12 | ✅ | | **trixie-de-dev** | 07.10.2026 16:09 | ✅ | | **trixie-de-dev** | 07.10.2026 15:52 | ✅ | From a687f3f7a1f93155cb9918271f5df3ff5e06e9d9 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 14:26:34 +0000 Subject: [PATCH 32/97] Dockerfile aktualisiert --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 2ffc51a..3a51c75 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG BUILD_BASE_IMAGE=debian:trixie +ARG BUILD_BASE_IMAGE FROM ${BUILD_BASE_IMAGE} From db68aaa11a0d3ef829a736bbb4ce899974b2026e Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Wed, 7 Oct 2026 14:27:03 +0000 Subject: [PATCH 33/97] Dockerfile aktualisiert [skip ci] --- README.md | 7 ++++--- VERSION.history | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d1960c5..b56335c 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 16:21 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 16:21 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 16:27 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 16:27 | --- @@ -77,11 +77,12 @@ docker run -d \ ``` -*Last updated on: 07.10.2026 16:21* +*Last updated on: 07.10.2026 16:27* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 07.10.2026 16:27 | Dockerfile aktualisiert ✅ | | **trixie-de-dev** | 07.10.2026 16:21 | ✅ | | **trixie-de-dev** | 07.10.2026 16:12 | ✅ | | **trixie-de-dev** | 07.10.2026 16:09 | ✅ | diff --git a/VERSION.history b/VERSION.history index 89acfbb..112991b 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 07.10.2026 16:27 | Dockerfile aktualisiert ✅ | | **trixie-de-dev** | 07.10.2026 16:21 | ✅ | | **trixie-de-dev** | 07.10.2026 16:12 | ✅ | | **trixie-de-dev** | 07.10.2026 16:09 | ✅ | From 7b37b004083a97b9871e1c6adfaa2ea12d728293 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 14:49:46 +0000 Subject: [PATCH 34/97] buildargs.env aktualisiert --- buildargs.env | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/buildargs.env b/buildargs.env index 71449ad..299abbb 100644 --- a/buildargs.env +++ b/buildargs.env @@ -1,7 +1,10 @@ -## BUILD STAGE -BUILD_BASE_IMAGE=debian:trixie +## BASE CONFIG +DEBIAN_CODENAME=trixie BUILD_COUNTRY=de -BUILD_TAG=trixie-de-dev + +## BUILD STAGE +BUILD_BASE_IMAGE="debian:${DEBIAN_CODENAME}" +BUILD_TAG="${DEBIAN_CODENAME}-${BUILD_COUNTRY}" BUILD_TAG_LATEST=n BUILD_LANG=de_DE.UTF-8 BUILD_LANGUAGE=de_DE:de @@ -9,7 +12,7 @@ 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_VERSION=1.0.0-dev +BUILD_APP_VERSION=1.0.0 PUSH=dockerhub ## ENV STAGE @@ -22,6 +25,6 @@ ENV_LDAP_SUDO_GROUP=YOUR-SUDO-USERS-GROUP ## DOCKER / COMPOSE CONFIG VOL_HOME=./YOUR-PERSISTENT-FOLDER:/home -PORT_RDP=3389 +PORT_RDP=3389:3389 DESCRIPTION="Debian Desktop with LDAP Authentication and PulseAudio. To use behind Guacamole with LDAP Authentication and pass-through to Debian Desktop." \ No newline at end of file From 7ef83dfce55c2ae3b0a634880d48f5bb03e46984 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 14:55:47 +0000 Subject: [PATCH 35/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 39 ++++++++++------------------ 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index df39991..2963331 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -35,33 +35,34 @@ jobs: id: prep run: | export TZ=Europe/Berlin - - # FIX 1: Stellt sicher, dass die Datei mit einem Zeilenumbruch endet. - # Das verhindert, dass Bash die letzte Zeile beim Einlesen verschluckt. sed -i -e '$a\' buildargs.env - set -a source <(grep -v '^#' buildargs.env | sed 's/\r$//') set +a - + echo "push_targets=$PUSH" >> $GITHUB_OUTPUT ARGS_HASH=$(grep "^BUILD_" buildargs.env | sha256sum | cut -d' ' -f1) echo "build_args_hash=$ARGS_HASH" >> $GITHUB_OUTPUT echo "event_name=${{ gitea.event_name }}" >> $GITHUB_OUTPUT - - # FIX 2: Kugelsicheres Auslesen des Tags direkt aus der Datei. - # Trimm-Befehle (tr) entfernen eventuelle unsichtbare Zeichen oder Anführungszeichen. - SAFE_BUILD_TAG=$(grep "^BUILD_TAG=" buildargs.env | cut -d'=' -f2 | tr -d '\r' | tr -d '"' | xargs) - if [[ "${{ gitea.ref }}" == refs/tags/* ]]; then CLEAN_TAG=${{ gitea.ref_name }} - echo "docker_tag=${CLEAN_TAG#v}" >> $GITHUB_OUTPUT + FINAL_TAG="${CLEAN_TAG#v}" else - # Nutzt jetzt garantiert den direkt extrahierten Wert - echo "docker_tag=${SAFE_BUILD_TAG:-latest}" >> $GITHUB_OUTPUT + BASE_TAG="${BUILD_TAG:-${DEBIAN_CODENAME}-${BUILD_COUNTRY}}" + if [[ "${{ gitea.ref_name }}" == "dev" ]]; then + if [[ "$BASE_TAG" != *-dev ]]; then + FINAL_TAG="${BASE_TAG}-dev" + else + FINAL_TAG="$BASE_TAG" + fi + else + FINAL_TAG="${BASE_TAG%-dev}" + fi fi + + echo "docker_tag=${FINAL_TAG:-latest}" >> $GITHUB_OUTPUT OWNER=$(echo "${{ gitea.repository }}" | cut -d'/' -f1 | tr '[:upper:]' '[:lower:]') REPO_NAME=$(echo "${{ gitea.repository }}" | cut -d'/' -f2 | tr '[:upper:]' '[:lower:]') @@ -151,7 +152,6 @@ jobs: BASE_SHA=$(docker buildx imagetools inspect $BASE --format '{{json .Manifest.Digest}}' 2>/dev/null | tr -d '"' || echo "unknown") - # AMD64 ist immer das primäre Target AMD_TAGS=("-t" "$IMAGE_GITEA:tmp-amd64") GITEA_SOURCES=("$IMAGE_GITEA:tmp-amd64") @@ -160,14 +160,12 @@ jobs: DH_SOURCES=("$DOCKERHUB_REPO:tmp-amd64") fi - # 1. Build AMD64 & Push docker buildx build "${DOCKER_ARGS[@]}" "${AMD_TAGS[@]}" \ --cache-from "type=registry,ref=$IMAGE_GITEA:buildcache-amd64" \ --cache-to "type=registry,ref=$IMAGE_GITEA:buildcache-amd64,mode=max" \ --pull --platform linux/amd64 -f Dockerfile \ --label "pi_farm.base_digest=$BASE_SHA" --label "pi_farm.args_hash=$ARGS_HASH" --push . - # 2. Prüfung auf ARM64 Dockerfile if [ -f "Dockerfile.aarch64" ]; then echo "⚙️ Dockerfile.aarch64 gefunden. Baue ARM64 Image..." @@ -188,7 +186,6 @@ jobs: echo "Keine Dockerfile.aarch64 gefunden. ARM64 Build wird übersprungen." fi - # 3. Manifest auf Gitea erstellen (nutzt nur die tatsächlich gebauten Temp-Tags) GITEA_MANIFEST_TAGS=("-t" "$IMAGE_GITEA:$TAG") if [[ "$BUILD_TAG_LATEST" == "y" ]]; then GITEA_MANIFEST_TAGS+=("-t" "$IMAGE_GITEA:latest") @@ -198,7 +195,6 @@ jobs: --annotation "index:pi_farm.base_digest=$BASE_SHA" --annotation "index:pi_farm.args_hash=$ARGS_HASH" \ "${GITEA_MANIFEST_TAGS[@]}" "${GITEA_SOURCES[@]}" - # 4. Manifest auf Docker Hub erstellen if [[ "$PUSH" == *"dockerhub"* ]]; then DH_MANIFEST_TAGS=("-t" "$DOCKERHUB_REPO:$TAG") if [[ "$BUILD_TAG_LATEST" == "y" ]]; then @@ -232,11 +228,9 @@ jobs: if [ -f "Dockerfile.aarch64" ]; then ARM_STATUS="✅ Active"; else ARM_STATUS="❌ Not supported"; fi - # Commit-Message ohne fehleranfälliges Here-Doc einlesen RAW_COMMIT_MSG="${{ gitea.event.head_commit.message }}" COMMIT_MSG=$(echo "$RAW_COMMIT_MSG" | sed 's/\[skip ci\]//g' | tr -d '\r\n' | xargs) - # 1. Authentifizierter Download der Templates TOKEN="${{ secrets.RUNNER_TOKEN }}" curl -sSLf -H "Authorization: token $TOKEN" \ "https://git.pi-farm.de/pi-farm/templates/raw/branch/main/README.template" \ @@ -246,7 +240,6 @@ jobs: "https://git.pi-farm.de/pi-farm/templates/raw/branch/main/docker-compose.template" \ -o docker-compose.template || echo "Warnung: Compose Template konnte nicht geladen werden" - # 2. Sicherheitsprüfung auf HTML-Login-Seite for t_file in README.template docker-compose.template; do if [ -f "$t_file" ] && grep -qi "" "$t_file"; then echo "❌ FEHLER: $t_file ist eine HTML-Loginseite! Download verworfen." @@ -326,7 +319,6 @@ jobs: DOCKERHUB_LINK_CONTENT='Docker Hub' fi - # Stelle sicher, dass python3 vorhanden ist if ! command -v python3 &> /dev/null; then echo "📦 python3 fehlt und wird installiert..." (apt-get update && apt-get install -y python3) || (apk add --no-cache python3) || true @@ -413,7 +405,6 @@ jobs: echo "📦 Processing README.md for Docker Hub (${DH_URL})..." - # Erstelle temporäre README für Docker Hub, in der die Gitea-URL durch den Docker Hub Image-Namen ersetzt wird sed "s|${GITEA_URL}|${DH_URL}|g" README.md > README_DH.md jq -n \ @@ -439,7 +430,6 @@ jobs: exit 1 fi - # Temporäre Datei aufräumen rm -f README_DH.md - name: Commit, Tag and Push Changes @@ -481,7 +471,6 @@ jobs: REPO_PURE=${{ steps.prep.outputs.repo_pure }} DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" - # Nur existierende Tags löschen CLEAN_TAGS=("tmp-amd64") if [ -f "Dockerfile.aarch64" ]; then CLEAN_TAGS+=("tmp-arm64") From db03c9f5e8795899c4a3d4499e5ae737a95f6330 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Wed, 7 Oct 2026 14:58:21 +0000 Subject: [PATCH 36/97] [skip ci] --- README.md | 17 +++++++++-------- VERSION.history | 1 + docker-compose.yml | 4 ++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index b56335c..ea73771 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 16:27 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 16:27 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 16:58 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 16:58 | --- @@ -26,11 +26,11 @@ 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:trixie-de-dev + image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de container_name: base-image-debian-rdp-ldap restart: unless-stopped ports: - - 3389 + - 3389:3389 environment: - SSSD_DEBUG_LEVEL=5 @@ -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:trixie-de-dev +docker pull git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de ``` ### 🚀 2. Run the container directly ```bash @@ -72,16 +72,17 @@ docker run -d \ -e LDAP_BIND_PASSWORD=YOUR-SUPER-SECRET-BIND-PASSWORD \ -e LDAP_SUDO_GROUP=YOUR-SUDO-USERS-GROUP \ -v ./YOUR-PERSISTENT-FOLDER:/home \ - -p 3389 \ - git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev + -p 3389:3389 \ + git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de ``` -*Last updated on: 07.10.2026 16:27* +*Last updated on: 07.10.2026 16:58* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de** | 07.10.2026 16:58 | ✅ | | **trixie-de-dev** | 07.10.2026 16:27 | Dockerfile aktualisiert ✅ | | **trixie-de-dev** | 07.10.2026 16:21 | ✅ | | **trixie-de-dev** | 07.10.2026 16:12 | ✅ | diff --git a/VERSION.history b/VERSION.history index 112991b..581a19c 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de** | 07.10.2026 16:58 | ✅ | | **trixie-de-dev** | 07.10.2026 16:27 | Dockerfile aktualisiert ✅ | | **trixie-de-dev** | 07.10.2026 16:21 | ✅ | | **trixie-de-dev** | 07.10.2026 16:12 | ✅ | diff --git a/docker-compose.yml b/docker-compose.yml index c161e2c..d5cf369 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,10 +1,10 @@ services: base-image-debian-rdp-ldap: - image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev + image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de container_name: base-image-debian-rdp-ldap restart: unless-stopped ports: - - 3389 + - 3389:3389 environment: - SSSD_DEBUG_LEVEL=5 From ee6a954dde09b53c4832e47d1b76f795f5c0b021 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 15:01:52 +0000 Subject: [PATCH 37/97] buildargs.env aktualisiert --- buildargs.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildargs.env b/buildargs.env index 299abbb..3f2a1e5 100644 --- a/buildargs.env +++ b/buildargs.env @@ -1,5 +1,5 @@ ## BASE CONFIG -DEBIAN_CODENAME=trixie +DEBIAN_CODENAME=bookworm BUILD_COUNTRY=de ## BUILD STAGE From 3bc5199462bc2fdea366b64433002ee3ead049fb Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 15:08:03 +0000 Subject: [PATCH 38/97] Dockerfile.aarch64 aktualisiert --- Dockerfile.aarch64 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 01e5b3c..26fdc0b 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,4 @@ -ARG BUILD_BASE_IMAGE=debian:bookworm +ARG BUILD_BASE_IMAGE FROM ${BUILD_BASE_IMAGE} From 43ddf5f96c43d6380c3fab29b7300acc623b905f Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 15:19:59 +0000 Subject: [PATCH 39/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 2963331..5073be4 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -145,10 +145,11 @@ jobs: set +a DOCKER_ARGS=() - keys=$(grep -v '^#' buildargs.env | cut -d'=' -f1 | tr -d '\r') - for k in $keys; do - DOCKER_ARGS+=("--build-arg" "$k=${!k}") - done + while IFS='=' read -r key val || [ -n "$key" ]; do + [[ "$key" =~ ^#.*$ || -z "$key" ]] && continue + eval "RESOLVED_VAL=\"$val\"" + DOCKER_ARGS+=("--build-arg" "$key=$RESOLVED_VAL") + done < <(grep -v '^#' buildargs.env | sed 's/\r$//') BASE_SHA=$(docker buildx imagetools inspect $BASE --format '{{json .Manifest.Digest}}' 2>/dev/null | tr -d '"' || echo "unknown") From d75868f2f81897753e2bc3e70b83efd43055519a Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 15:28:10 +0000 Subject: [PATCH 40/97] revert 43ddf5f96c43d6380c3fab29b7300acc623b905f revert .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 5073be4..2963331 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -145,11 +145,10 @@ jobs: set +a DOCKER_ARGS=() - while IFS='=' read -r key val || [ -n "$key" ]; do - [[ "$key" =~ ^#.*$ || -z "$key" ]] && continue - eval "RESOLVED_VAL=\"$val\"" - DOCKER_ARGS+=("--build-arg" "$key=$RESOLVED_VAL") - done < <(grep -v '^#' buildargs.env | sed 's/\r$//') + keys=$(grep -v '^#' buildargs.env | cut -d'=' -f1 | tr -d '\r') + for k in $keys; do + DOCKER_ARGS+=("--build-arg" "$k=${!k}") + done BASE_SHA=$(docker buildx imagetools inspect $BASE --format '{{json .Manifest.Digest}}' 2>/dev/null | tr -d '"' || echo "unknown") From 234298718b2ab2c07fa34bdd6cab1acdc30c4da0 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Wed, 7 Oct 2026 15:28:54 +0000 Subject: [PATCH 41/97] [skip ci] --- README.md | 13 +++++++------ VERSION.history | 1 + docker-compose.yml | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ea73771..8307306 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 16:58 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 16:58 | +| x86_64 (amd64) | ✅ Active | debian:bookworm | 07.10.2026 17:28 | +| aarch64 (arm64) | ✅ Active | debian:bookworm | 07.10.2026 17:28 | --- @@ -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:trixie-de + image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-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:trixie-de +docker pull git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-de ``` ### 🚀 2. Run the container directly ```bash @@ -73,15 +73,16 @@ 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:trixie-de + git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-de ``` -*Last updated on: 07.10.2026 16:58* +*Last updated on: 07.10.2026 17:28* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **bookworm-de** | 07.10.2026 17:28 | ✅ | | **trixie-de** | 07.10.2026 16:58 | ✅ | | **trixie-de-dev** | 07.10.2026 16:27 | Dockerfile aktualisiert ✅ | | **trixie-de-dev** | 07.10.2026 16:21 | ✅ | diff --git a/VERSION.history b/VERSION.history index 581a19c..9b77dd8 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **bookworm-de** | 07.10.2026 17:28 | ✅ | | **trixie-de** | 07.10.2026 16:58 | ✅ | | **trixie-de-dev** | 07.10.2026 16:27 | Dockerfile aktualisiert ✅ | | **trixie-de-dev** | 07.10.2026 16:21 | ✅ | diff --git a/docker-compose.yml b/docker-compose.yml index d5cf369..c8be77f 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:trixie-de + image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-de container_name: base-image-debian-rdp-ldap restart: unless-stopped ports: From e0c4a93176e31451db9c50ed6ac1c5c084d598fa Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 15:39:22 +0000 Subject: [PATCH 42/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 47 ++++++++++++++++++---------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 2963331..d5add28 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -210,26 +210,39 @@ jobs: id: update_doc if: steps.check_changes.outputs.should_build == 'true' run: | - set -x - - export TZ=Europe/Berlin - CURRENT_TIME=$(date '+%d.%m.%Y %H:%M') - BUILD_TAG="${{ steps.prep.outputs.docker_tag }}" - FULL_URL="${{ steps.prep.outputs.image_name }}" - REPO_PURE="${{ steps.prep.outputs.repo_pure }}" - BASE_IMAGE="${{ steps.prep.outputs.base_image }}" + set -x - if [ ! -f "buildargs.env" ]; then echo "❌ buildargs.env missing!"; exit 1; fi + export TZ=Europe/Berlin + CURRENT_TIME=$(date '+%d.%m.%Y %H:%M') + FULL_URL="${{ steps.prep.outputs.image_name }}" + REPO_PURE="${{ steps.prep.outputs.repo_pure }}" + BASE_IMAGE="${{ steps.prep.outputs.base_image }}" + + if [ ! -f "buildargs.env" ]; then echo "❌ buildargs.env missing!"; exit 1; fi - grep -v '^#' buildargs.env | sed 's/\r$//' > cleaned_env.sh - set -a - source ./cleaned_env.sh - set +a + # 1. buildargs.env einlesen + grep -v '^#' buildargs.env | sed 's/\r$//' > cleaned_env.sh + set -a + source ./cleaned_env.sh + set +a - if [ -f "Dockerfile.aarch64" ]; then ARM_STATUS="✅ Active"; else ARM_STATUS="❌ Not supported"; fi - - RAW_COMMIT_MSG="${{ gitea.event.head_commit.message }}" - COMMIT_MSG=$(echo "$RAW_COMMIT_MSG" | sed 's/\[skip ci\]//g' | tr -d '\r\n' | xargs) + # WICHTIG: Nach dem Sourcing den dynamischen Tag (inkl. -dev falls dev-Branch) erzwingen! + BUILD_TAG="${{ steps.prep.outputs.docker_tag }}" + + if [ -f "Dockerfile.aarch64" ]; then ARM_STATUS="✅ Active"; else ARM_STATUS="❌ Not supported"; fi + + RAW_COMMIT_MSG="${{ gitea.event.head_commit.message }}" + COMMIT_MSG=$(echo "$RAW_COMMIT_MSG" | sed 's/\[skip ci\]//g' | tr -d '\r\n' | xargs) + + # ... (restlicher Skriptverlauf bleibt unverändert) + + # WICHTIG: Nach dem Sourcing den dynamischen Tag (inkl. -dev falls dev-Branch) erzwingen! + BUILD_TAG="${{ steps.prep.outputs.docker_tag }}" + + if [ -f "Dockerfile.aarch64" ]; then ARM_STATUS="✅ Active"; else ARM_STATUS="❌ Not supported"; fi + + RAW_COMMIT_MSG="${{ gitea.event.head_commit.message }}" + COMMIT_MSG=$(echo "$RAW_COMMIT_MSG" | sed 's/\[skip ci\]//g' | tr -d '\r\n' | xargs) TOKEN="${{ secrets.RUNNER_TOKEN }}" curl -sSLf -H "Authorization: token $TOKEN" \ From 48c5573992dd90a0195b47b96a17b30116ed8242 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 15:44:38 +0000 Subject: [PATCH 43/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 84 ++++++++++++++-------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index d5add28..71fdc5c 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -337,48 +337,48 @@ jobs: (apt-get update && apt-get install -y python3) || (apk add --no-cache python3) || true fi - process_template() { - local template=$1; local output=$2 - [ ! -f "$template" ] && return - cp "$template" "$output" - - export REPO_PURE FULL_URL BUILD_TAG BASE_IMAGE ARM_STATUS CURRENT_TIME \ - HISTORY_CONTENT DOCKERHUB_LINK_CONTENT ENV_BLOCK_CONTENT \ - PORTS_BLOCK_CONTENT VOL_BLOCK_CONTENT DESCRIPTION - - python3 -c ' - import os, sys - - output = sys.argv[1] - - with open(output, "r", encoding="utf-8") as f: - content = f.read() - - content = content.replace("__REPO_NAME__", os.environ.get("REPO_PURE", "")) - content = content.replace("__FULL_URL__", os.environ.get("FULL_URL", "")) - content = content.replace("__BUILD_TAG__", os.environ.get("BUILD_TAG", "")) - content = content.replace("__BASE_IMAGE__", os.environ.get("BASE_IMAGE", "")) - content = content.replace("__ARM_STATUS__", os.environ.get("ARM_STATUS", "")) - content = content.replace("__CURRENT_DATE__", os.environ.get("CURRENT_TIME", "")) - content = content.replace("__HISTORY_CONTENT__", os.environ.get("HISTORY_CONTENT", "")) - content = content.replace("__DOCKERHUB_LINK__", os.environ.get("DOCKERHUB_LINK_CONTENT", "")) - content = content.replace("__ENV_BLOCK__", os.environ.get("ENV_BLOCK_CONTENT", "").replace("\\n", "\n")) - content = content.replace("__PORTS_BLOCK__", os.environ.get("PORTS_BLOCK_CONTENT", "").replace("\\n", "\n")) - content = content.replace("__VOL_BLOCK__", os.environ.get("VOL_BLOCK_CONTENT", "").replace("\\n", "\n")) - content = content.replace("__DESCRIPTION__", os.environ.get("DESCRIPTION", "Keine Beschreibung.")) - - if "__DOCKER_RUN__" in content and os.path.exists("docker_run_block.txt"): - with open("docker_run_block.txt", "r", encoding="utf-8") as f: - content = content.replace("__DOCKER_RUN__", f.read()) - - if "__COMPOSE_BLOCK__" in content and os.path.exists("docker-compose.yml"): - with open("docker-compose.yml", "r", encoding="utf-8") as f: - content = content.replace("__COMPOSE_BLOCK__", f.read()) - - with open(output, "w", encoding="utf-8") as f: - f.write(content) - ' "$output" - } + process_template() { + local template=$1; local output=$2 + [ ! -f "$template" ] && return + cp "$template" "$output" + + export REPO_PURE FULL_URL BUILD_TAG BASE_IMAGE ARM_STATUS CURRENT_TIME \ + HISTORY_CONTENT DOCKERHUB_LINK_CONTENT ENV_BLOCK_CONTENT \ + PORTS_BLOCK_CONTENT VOL_BLOCK_CONTENT DESCRIPTION + + python3 -c ' +import os, sys + +output = sys.argv[1] + +with open(output, "r", encoding="utf-8") as f: + content = f.read() + +content = content.replace("__REPO_NAME__", os.environ.get("REPO_PURE", "")) +content = content.replace("__FULL_URL__", os.environ.get("FULL_URL", "")) +content = content.replace("__BUILD_TAG__", os.environ.get("BUILD_TAG", "")) +content = content.replace("__BASE_IMAGE__", os.environ.get("BASE_IMAGE", "")) +content = content.replace("__ARM_STATUS__", os.environ.get("ARM_STATUS", "")) +content = content.replace("__CURRENT_DATE__", os.environ.get("CURRENT_TIME", "")) +content = content.replace("__HISTORY_CONTENT__", os.environ.get("HISTORY_CONTENT", "")) +content = content.replace("__DOCKERHUB_LINK__", os.environ.get("DOCKERHUB_LINK_CONTENT", "")) +content = content.replace("__ENV_BLOCK__", os.environ.get("ENV_BLOCK_CONTENT", "").replace("\\n", "\n")) +content = content.replace("__PORTS_BLOCK__", os.environ.get("PORTS_BLOCK_CONTENT", "").replace("\\n", "\n")) +content = content.replace("__VOL_BLOCK__", os.environ.get("VOL_BLOCK_CONTENT", "").replace("\\n", "\n")) +content = content.replace("__DESCRIPTION__", os.environ.get("DESCRIPTION", "Keine Beschreibung.")) + +if "__DOCKER_RUN__" in content and os.path.exists("docker_run_block.txt"): + with open("docker_run_block.txt", "r", encoding="utf-8") as f: + content = content.replace("__DOCKER_RUN__", f.read()) + +if "__COMPOSE_BLOCK__" in content and os.path.exists("docker-compose.yml"): + with open("docker-compose.yml", "r", encoding="utf-8") as f: + content = content.replace("__COMPOSE_BLOCK__", f.read()) + +with open(output, "w", encoding="utf-8") as f: + f.write(content) +' "$output" + } process_template "docker-compose.template" "docker-compose.yml" process_template "README.template" "README.md" From faec5655ff8eea613349300ba2ae9e049971d413 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 15:45:42 +0000 Subject: [PATCH 44/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 60 ++++++++++++++-------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 71fdc5c..7ac50c7 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -347,38 +347,38 @@ jobs: PORTS_BLOCK_CONTENT VOL_BLOCK_CONTENT DESCRIPTION python3 -c ' -import os, sys + import os, sys -output = sys.argv[1] + output = sys.argv[1] -with open(output, "r", encoding="utf-8") as f: - content = f.read() - -content = content.replace("__REPO_NAME__", os.environ.get("REPO_PURE", "")) -content = content.replace("__FULL_URL__", os.environ.get("FULL_URL", "")) -content = content.replace("__BUILD_TAG__", os.environ.get("BUILD_TAG", "")) -content = content.replace("__BASE_IMAGE__", os.environ.get("BASE_IMAGE", "")) -content = content.replace("__ARM_STATUS__", os.environ.get("ARM_STATUS", "")) -content = content.replace("__CURRENT_DATE__", os.environ.get("CURRENT_TIME", "")) -content = content.replace("__HISTORY_CONTENT__", os.environ.get("HISTORY_CONTENT", "")) -content = content.replace("__DOCKERHUB_LINK__", os.environ.get("DOCKERHUB_LINK_CONTENT", "")) -content = content.replace("__ENV_BLOCK__", os.environ.get("ENV_BLOCK_CONTENT", "").replace("\\n", "\n")) -content = content.replace("__PORTS_BLOCK__", os.environ.get("PORTS_BLOCK_CONTENT", "").replace("\\n", "\n")) -content = content.replace("__VOL_BLOCK__", os.environ.get("VOL_BLOCK_CONTENT", "").replace("\\n", "\n")) -content = content.replace("__DESCRIPTION__", os.environ.get("DESCRIPTION", "Keine Beschreibung.")) - -if "__DOCKER_RUN__" in content and os.path.exists("docker_run_block.txt"): - with open("docker_run_block.txt", "r", encoding="utf-8") as f: - content = content.replace("__DOCKER_RUN__", f.read()) - -if "__COMPOSE_BLOCK__" in content and os.path.exists("docker-compose.yml"): - with open("docker-compose.yml", "r", encoding="utf-8") as f: - content = content.replace("__COMPOSE_BLOCK__", f.read()) - -with open(output, "w", encoding="utf-8") as f: - f.write(content) -' "$output" - } + with open(output, "r", encoding="utf-8") as f: + content = f.read() + + content = content.replace("__REPO_NAME__", os.environ.get("REPO_PURE", "")) + content = content.replace("__FULL_URL__", os.environ.get("FULL_URL", "")) + content = content.replace("__BUILD_TAG__", os.environ.get("BUILD_TAG", "")) + content = content.replace("__BASE_IMAGE__", os.environ.get("BASE_IMAGE", "")) + content = content.replace("__ARM_STATUS__", os.environ.get("ARM_STATUS", "")) + content = content.replace("__CURRENT_DATE__", os.environ.get("CURRENT_TIME", "")) + content = content.replace("__HISTORY_CONTENT__", os.environ.get("HISTORY_CONTENT", "")) + content = content.replace("__DOCKERHUB_LINK__", os.environ.get("DOCKERHUB_LINK_CONTENT", "")) + content = content.replace("__ENV_BLOCK__", os.environ.get("ENV_BLOCK_CONTENT", "").replace("\\n", "\n")) + content = content.replace("__PORTS_BLOCK__", os.environ.get("PORTS_BLOCK_CONTENT", "").replace("\\n", "\n")) + content = content.replace("__VOL_BLOCK__", os.environ.get("VOL_BLOCK_CONTENT", "").replace("\\n", "\n")) + content = content.replace("__DESCRIPTION__", os.environ.get("DESCRIPTION", "Keine Beschreibung.")) + + if "__DOCKER_RUN__" in content and os.path.exists("docker_run_block.txt"): + with open("docker_run_block.txt", "r", encoding="utf-8") as f: + content = content.replace("__DOCKER_RUN__", f.read()) + + if "__COMPOSE_BLOCK__" in content and os.path.exists("docker-compose.yml"): + with open("docker-compose.yml", "r", encoding="utf-8") as f: + content = content.replace("__COMPOSE_BLOCK__", f.read()) + + with open(output, "w", encoding="utf-8") as f: + f.write(content) + ' "$output" + } process_template "docker-compose.template" "docker-compose.yml" process_template "README.template" "README.md" From d194e1fa435bf43a4747d4e1d9cf348a9e0a7c86 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 15:51:23 +0000 Subject: [PATCH 45/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 258 +++++++++++++-------------- 1 file changed, 124 insertions(+), 134 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 7ac50c7..f37eb62 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -226,7 +226,7 @@ jobs: source ./cleaned_env.sh set +a - # WICHTIG: Nach dem Sourcing den dynamischen Tag (inkl. -dev falls dev-Branch) erzwingen! + # Nach dem Sourcing den dynamischen Tag (inkl. -dev falls dev-Branch) erzwingen BUILD_TAG="${{ steps.prep.outputs.docker_tag }}" if [ -f "Dockerfile.aarch64" ]; then ARM_STATUS="✅ Active"; else ARM_STATUS="❌ Not supported"; fi @@ -234,110 +234,100 @@ jobs: RAW_COMMIT_MSG="${{ gitea.event.head_commit.message }}" COMMIT_MSG=$(echo "$RAW_COMMIT_MSG" | sed 's/\[skip ci\]//g' | tr -d '\r\n' | xargs) - # ... (restlicher Skriptverlauf bleibt unverändert) + TOKEN="${{ secrets.RUNNER_TOKEN }}" + curl -sSLf -H "Authorization: token $TOKEN" \ + "https://git.pi-farm.de/pi-farm/templates/raw/branch/main/README.template" \ + -o README.template || echo "Warnung: README Template konnte nicht geladen werden" - # WICHTIG: Nach dem Sourcing den dynamischen Tag (inkl. -dev falls dev-Branch) erzwingen! - BUILD_TAG="${{ steps.prep.outputs.docker_tag }}" + curl -sSLf -H "Authorization: token $TOKEN" \ + "https://git.pi-farm.de/pi-farm/templates/raw/branch/main/docker-compose.template" \ + -o docker-compose.template || echo "Warnung: Compose Template konnte nicht geladen werden" - if [ -f "Dockerfile.aarch64" ]; then ARM_STATUS="✅ Active"; else ARM_STATUS="❌ Not supported"; fi - - RAW_COMMIT_MSG="${{ gitea.event.head_commit.message }}" - COMMIT_MSG=$(echo "$RAW_COMMIT_MSG" | sed 's/\[skip ci\]//g' | tr -d '\r\n' | xargs) - - TOKEN="${{ secrets.RUNNER_TOKEN }}" - curl -sSLf -H "Authorization: token $TOKEN" \ - "https://git.pi-farm.de/pi-farm/templates/raw/branch/main/README.template" \ - -o README.template || echo "Warnung: README Template konnte nicht geladen werden" - - curl -sSLf -H "Authorization: token $TOKEN" \ - "https://git.pi-farm.de/pi-farm/templates/raw/branch/main/docker-compose.template" \ - -o docker-compose.template || echo "Warnung: Compose Template konnte nicht geladen werden" - - for t_file in README.template docker-compose.template; do - if [ -f "$t_file" ] && grep -qi "" "$t_file"; then - echo "❌ FEHLER: $t_file ist eine HTML-Loginseite! Download verworfen." - rm -f "$t_file" - fi - done - - NEW_ROW="| **$BUILD_TAG** | $CURRENT_TIME | $COMMIT_MSG ✅ |" - if [ -f "VERSION.history" ]; then - grep -v "| **$BUILD_TAG** |" VERSION.history > VERSION.history.tmp || true - echo "$NEW_ROW" > VERSION.history - cat VERSION.history.tmp >> VERSION.history - rm VERSION.history.tmp - else - echo "$NEW_ROW" > VERSION.history + for t_file in README.template docker-compose.template; do + if [ -f "$t_file" ] && grep -qi "" "$t_file"; then + echo "❌ FEHLER: $t_file ist eine HTML-Loginseite! Download verworfen." + rm -f "$t_file" fi - HISTORY_CONTENT=$(cat VERSION.history) + done - ENV_BLOCK_CONTENT="" - env_vars=$(grep '^ENV_' buildargs.env | grep -v '^#' | tr -d '\r' || true) - if [ -n "$env_vars" ]; then - ENV_BLOCK_CONTENT=" environment:\n" + NEW_ROW="| **$BUILD_TAG** | $CURRENT_TIME | $COMMIT_MSG ✅ |" + if [ -f "VERSION.history" ]; then + grep -v "| **$BUILD_TAG** |" VERSION.history > VERSION.history.tmp || true + echo "$NEW_ROW" > VERSION.history + cat VERSION.history.tmp >> VERSION.history + rm VERSION.history.tmp + else + echo "$NEW_ROW" > VERSION.history + fi + HISTORY_CONTENT=$(cat VERSION.history) + + ENV_BLOCK_CONTENT="" + env_vars=$(grep '^ENV_' buildargs.env | grep -v '^#' | tr -d '\r' || true) + if [ -n "$env_vars" ]; then + ENV_BLOCK_CONTENT=" environment:\n" + while read -r line; do + [ -z "$line" ] && continue + key=$(echo "$line" | cut -d= -f1); val=$(echo "$line" | cut -d= -f2-); clean_key=${key#ENV_} + ENV_BLOCK_CONTENT="${ENV_BLOCK_CONTENT} - ${clean_key}=${val}\n" + done <<< "$env_vars" + fi + + PORTS_BLOCK_CONTENT="" + port_vars=$(grep '^PORT_' buildargs.env | grep -v '^#' | tr -d '\r' || true) + if [ -n "$port_vars" ]; then + PORTS_BLOCK_CONTENT=" ports:\n" + while read -r line; do + [ -z "$line" ] && continue + val=$(echo "$line" | cut -d= -f2-); PORTS_BLOCK_CONTENT="${PORTS_BLOCK_CONTENT} - ${val}\n" + done <<< "$port_vars" + fi + + VOL_BLOCK_CONTENT="" + vol_vars=$(grep '^VOL_' buildargs.env | grep -v '^#' | tr -d '\r' || true) + if [ -n "$vol_vars" ]; then + VOL_BLOCK_CONTENT=" volumes:\n" + while read -r line; do + [ -z "$line" ] && continue + val=$(echo "$line" | cut -d= -f2-); VOL_BLOCK_CONTENT="${VOL_BLOCK_CONTENT} - ${val}\n" + done <<< "$vol_vars" + fi + + { + echo "docker run -d \\" + echo " --name $REPO_PURE \\" + echo " --restart unless-stopped \\" + + all_params=$(grep -E '^(PORT_|ENV_|VOL_)' buildargs.env | grep -v '^#' | sed 's/\r$//' || true) + if [ -n "$all_params" ]; then while read -r line; do [ -z "$line" ] && continue - key=$(echo "$line" | cut -d= -f1); val=$(echo "$line" | cut -d= -f2-); clean_key=${key#ENV_} - ENV_BLOCK_CONTENT="${ENV_BLOCK_CONTENT} - ${clean_key}=${val}\n" - done <<< "$env_vars" + if [[ "$line" =~ ^PORT_ ]]; then + val=$(echo "$line" | cut -d= -f2-) + echo " -p ${val} \\" + elif [[ "$line" =~ ^ENV_ ]]; then + key=$(echo "$line" | cut -d= -f1); clean_key=${key#ENV_}; val=$(echo "$line" | cut -d= -f2-) + echo " -e ${clean_key}=${val} \\" + elif [[ "$line" =~ ^VOL_ ]]; then + val=$(echo "$line" | cut -d= -f2-) + echo " -v ${val} \\" + fi + done <<< "$all_params" fi + echo " $FULL_URL:$BUILD_TAG" + } > docker_run_block.txt - PORTS_BLOCK_CONTENT="" - port_vars=$(grep '^PORT_' buildargs.env | grep -v '^#' | tr -d '\r' || true) - if [ -n "$port_vars" ]; then - PORTS_BLOCK_CONTENT=" ports:\n" - while read -r line; do - [ -z "$line" ] && continue - val=$(echo "$line" | cut -d= -f2-); PORTS_BLOCK_CONTENT="${PORTS_BLOCK_CONTENT} - ${val}\n" - done <<< "$port_vars" - fi + DOCKERHUB_LINK_CONTENT="" + if [[ "${{ steps.prep.outputs.push_targets }}" == *"dockerhub"* ]]; then + DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" + DOCKERHUB_LINK_CONTENT='Docker Hub' + fi - VOL_BLOCK_CONTENT="" - vol_vars=$(grep '^VOL_' buildargs.env | grep -v '^#' | tr -d '\r' || true) - if [ -n "$vol_vars" ]; then - VOL_BLOCK_CONTENT=" volumes:\n" - while read -r line; do - [ -z "$line" ] && continue - val=$(echo "$line" | cut -d= -f2-); VOL_BLOCK_CONTENT="${VOL_BLOCK_CONTENT} - ${val}\n" - done <<< "$vol_vars" - fi + if ! command -v python3 &> /dev/null; then + echo "📦 python3 fehlt und wird installiert..." + (apt-get update && apt-get install -y python3) || (apk add --no-cache python3) || true + fi - { - echo "docker run -d \\" - echo " --name $REPO_PURE \\" - echo " --restart unless-stopped \\" - - all_params=$(grep -E '^(PORT_|ENV_|VOL_)' buildargs.env | grep -v '^#' | sed 's/\r$//' || true) - if [ -n "$all_params" ]; then - while read -r line; do - [ -z "$line" ] && continue - if [[ "$line" =~ ^PORT_ ]]; then - val=$(echo "$line" | cut -d= -f2-) - echo " -p ${val} \\" - elif [[ "$line" =~ ^ENV_ ]]; then - key=$(echo "$line" | cut -d= -f1); clean_key=${key#ENV_}; val=$(echo "$line" | cut -d= -f2-) - echo " -e ${clean_key}=${val} \\" - elif [[ "$line" =~ ^VOL_ ]]; then - val=$(echo "$line" | cut -d= -f2-) - echo " -v ${val} \\" - fi - done <<< "$all_params" - fi - echo " $FULL_URL:$BUILD_TAG" - } > docker_run_block.txt - - DOCKERHUB_LINK_CONTENT="" - if [[ "${{ steps.prep.outputs.push_targets }}" == *"dockerhub"* ]]; then - DH_USER="${{ secrets.DOCKERHUB_USERNAME }}" - DOCKERHUB_LINK_CONTENT='Docker Hub' - fi - - if ! command -v python3 &> /dev/null; then - echo "📦 python3 fehlt und wird installiert..." - (apt-get update && apt-get install -y python3) || (apk add --no-cache python3) || true - fi - - process_template() { + process_template() { local template=$1; local output=$2 [ ! -f "$template" ] && return cp "$template" "$output" @@ -347,48 +337,48 @@ jobs: PORTS_BLOCK_CONTENT VOL_BLOCK_CONTENT DESCRIPTION python3 -c ' - import os, sys +import os, sys - output = sys.argv[1] +output = sys.argv[1] - with open(output, "r", encoding="utf-8") as f: - content = f.read() - - content = content.replace("__REPO_NAME__", os.environ.get("REPO_PURE", "")) - content = content.replace("__FULL_URL__", os.environ.get("FULL_URL", "")) - content = content.replace("__BUILD_TAG__", os.environ.get("BUILD_TAG", "")) - content = content.replace("__BASE_IMAGE__", os.environ.get("BASE_IMAGE", "")) - content = content.replace("__ARM_STATUS__", os.environ.get("ARM_STATUS", "")) - content = content.replace("__CURRENT_DATE__", os.environ.get("CURRENT_TIME", "")) - content = content.replace("__HISTORY_CONTENT__", os.environ.get("HISTORY_CONTENT", "")) - content = content.replace("__DOCKERHUB_LINK__", os.environ.get("DOCKERHUB_LINK_CONTENT", "")) - content = content.replace("__ENV_BLOCK__", os.environ.get("ENV_BLOCK_CONTENT", "").replace("\\n", "\n")) - content = content.replace("__PORTS_BLOCK__", os.environ.get("PORTS_BLOCK_CONTENT", "").replace("\\n", "\n")) - content = content.replace("__VOL_BLOCK__", os.environ.get("VOL_BLOCK_CONTENT", "").replace("\\n", "\n")) - content = content.replace("__DESCRIPTION__", os.environ.get("DESCRIPTION", "Keine Beschreibung.")) - - if "__DOCKER_RUN__" in content and os.path.exists("docker_run_block.txt"): - with open("docker_run_block.txt", "r", encoding="utf-8") as f: - content = content.replace("__DOCKER_RUN__", f.read()) - - if "__COMPOSE_BLOCK__" in content and os.path.exists("docker-compose.yml"): - with open("docker-compose.yml", "r", encoding="utf-8") as f: - content = content.replace("__COMPOSE_BLOCK__", f.read()) - - with open(output, "w", encoding="utf-8") as f: - f.write(content) - ' "$output" - } +with open(output, "r", encoding="utf-8") as f: + content = f.read() - process_template "docker-compose.template" "docker-compose.yml" - process_template "README.template" "README.md" - - echo "FINAL_MSG=$COMMIT_MSG" >> $GITHUB_ENV - { - echo "DESCRIPTION<> $GITHUB_ENV +content = content.replace("__REPO_NAME__", os.environ.get("REPO_PURE", "")) +content = content.replace("__FULL_URL__", os.environ.get("FULL_URL", "")) +content = content.replace("__BUILD_TAG__", os.environ.get("BUILD_TAG", "")) +content = content.replace("__BASE_IMAGE__", os.environ.get("BASE_IMAGE", "")) +content = content.replace("__ARM_STATUS__", os.environ.get("ARM_STATUS", "")) +content = content.replace("__CURRENT_DATE__", os.environ.get("CURRENT_TIME", "")) +content = content.replace("__HISTORY_CONTENT__", os.environ.get("HISTORY_CONTENT", "")) +content = content.replace("__DOCKERHUB_LINK__", os.environ.get("DOCKERHUB_LINK_CONTENT", "")) +content = content.replace("__ENV_BLOCK__", os.environ.get("ENV_BLOCK_CONTENT", "").replace("\\n", "\n")) +content = content.replace("__PORTS_BLOCK__", os.environ.get("PORTS_BLOCK_CONTENT", "").replace("\\n", "\n")) +content = content.replace("__VOL_BLOCK__", os.environ.get("VOL_BLOCK_CONTENT", "").replace("\\n", "\n")) +content = content.replace("__DESCRIPTION__", os.environ.get("DESCRIPTION", "Keine Beschreibung.")) + +if "__DOCKER_RUN__" in content and os.path.exists("docker_run_block.txt"): + with open("docker_run_block.txt", "r", encoding="utf-8") as f: + content = content.replace("__DOCKER_RUN__", f.read()) + +if "__COMPOSE_BLOCK__" in content and os.path.exists("docker-compose.yml"): + with open("docker-compose.yml", "r", encoding="utf-8") as f: + content = content.replace("__COMPOSE_BLOCK__", f.read()) + +with open(output, "w", encoding="utf-8") as f: + f.write(content) +' "$output" + } + + process_template "docker-compose.template" "docker-compose.yml" + process_template "README.template" "README.md" + + echo "FINAL_MSG=$COMMIT_MSG" >> $GITHUB_ENV + { + echo "DESCRIPTION<> $GITHUB_ENV - name: Push README to Docker Hub if: steps.check_changes.outputs.should_build == 'true' && contains(steps.prep.outputs.push_targets, 'dockerhub') From 964dacdbd10f3df513b40d6cdbaa92696d440545 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 15:52:55 +0000 Subject: [PATCH 46/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index f37eb62..90919db 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -220,13 +220,11 @@ jobs: if [ ! -f "buildargs.env" ]; then echo "❌ buildargs.env missing!"; exit 1; fi - # 1. buildargs.env einlesen grep -v '^#' buildargs.env | sed 's/\r$//' > cleaned_env.sh set -a source ./cleaned_env.sh set +a - # Nach dem Sourcing den dynamischen Tag (inkl. -dev falls dev-Branch) erzwingen BUILD_TAG="${{ steps.prep.outputs.docker_tag }}" if [ -f "Dockerfile.aarch64" ]; then ARM_STATUS="✅ Active"; else ARM_STATUS="❌ Not supported"; fi @@ -338,12 +336,9 @@ jobs: python3 -c ' import os, sys - output = sys.argv[1] - with open(output, "r", encoding="utf-8") as f: content = f.read() - content = content.replace("__REPO_NAME__", os.environ.get("REPO_PURE", "")) content = content.replace("__FULL_URL__", os.environ.get("FULL_URL", "")) content = content.replace("__BUILD_TAG__", os.environ.get("BUILD_TAG", "")) @@ -356,15 +351,12 @@ content = content.replace("__ENV_BLOCK__", os.environ.get("ENV_BLOCK_CONTENT", " content = content.replace("__PORTS_BLOCK__", os.environ.get("PORTS_BLOCK_CONTENT", "").replace("\\n", "\n")) content = content.replace("__VOL_BLOCK__", os.environ.get("VOL_BLOCK_CONTENT", "").replace("\\n", "\n")) content = content.replace("__DESCRIPTION__", os.environ.get("DESCRIPTION", "Keine Beschreibung.")) - if "__DOCKER_RUN__" in content and os.path.exists("docker_run_block.txt"): with open("docker_run_block.txt", "r", encoding="utf-8") as f: content = content.replace("__DOCKER_RUN__", f.read()) - if "__COMPOSE_BLOCK__" in content and os.path.exists("docker-compose.yml"): with open("docker-compose.yml", "r", encoding="utf-8") as f: content = content.replace("__COMPOSE_BLOCK__", f.read()) - with open(output, "w", encoding="utf-8") as f: f.write(content) ' "$output" From 7276600c539fc4931651f2ec3a88a86c9640b46f Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 15:55:12 +0000 Subject: [PATCH 47/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 79 +++++++++++++++------------- 1 file changed, 43 insertions(+), 36 deletions(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 90919db..c82c376 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -325,45 +325,52 @@ jobs: (apt-get update && apt-get install -y python3) || (apk add --no-cache python3) || true fi - process_template() { - local template=$1; local output=$2 - [ ! -f "$template" ] && return - cp "$template" "$output" + # Python-Skript sauber als eigene Datei erstellen (vermeidet YAML-Syntaxfehler) + cat << 'EOF' > update_script.py + import os, sys - export REPO_PURE FULL_URL BUILD_TAG BASE_IMAGE ARM_STATUS CURRENT_TIME \ - HISTORY_CONTENT DOCKERHUB_LINK_CONTENT ENV_BLOCK_CONTENT \ - PORTS_BLOCK_CONTENT VOL_BLOCK_CONTENT DESCRIPTION + def process(output_file): + if not os.path.exists(output_file.replace('.md', '.template').replace('.yml', '.template')): + return + + template_name = output_file.replace('.md', '.template').replace('.yml', '.template') + with open(template_name, "r", encoding="utf-8") as f: + content = f.read() - python3 -c ' -import os, sys -output = sys.argv[1] -with open(output, "r", encoding="utf-8") as f: - content = f.read() -content = content.replace("__REPO_NAME__", os.environ.get("REPO_PURE", "")) -content = content.replace("__FULL_URL__", os.environ.get("FULL_URL", "")) -content = content.replace("__BUILD_TAG__", os.environ.get("BUILD_TAG", "")) -content = content.replace("__BASE_IMAGE__", os.environ.get("BASE_IMAGE", "")) -content = content.replace("__ARM_STATUS__", os.environ.get("ARM_STATUS", "")) -content = content.replace("__CURRENT_DATE__", os.environ.get("CURRENT_TIME", "")) -content = content.replace("__HISTORY_CONTENT__", os.environ.get("HISTORY_CONTENT", "")) -content = content.replace("__DOCKERHUB_LINK__", os.environ.get("DOCKERHUB_LINK_CONTENT", "")) -content = content.replace("__ENV_BLOCK__", os.environ.get("ENV_BLOCK_CONTENT", "").replace("\\n", "\n")) -content = content.replace("__PORTS_BLOCK__", os.environ.get("PORTS_BLOCK_CONTENT", "").replace("\\n", "\n")) -content = content.replace("__VOL_BLOCK__", os.environ.get("VOL_BLOCK_CONTENT", "").replace("\\n", "\n")) -content = content.replace("__DESCRIPTION__", os.environ.get("DESCRIPTION", "Keine Beschreibung.")) -if "__DOCKER_RUN__" in content and os.path.exists("docker_run_block.txt"): - with open("docker_run_block.txt", "r", encoding="utf-8") as f: - content = content.replace("__DOCKER_RUN__", f.read()) -if "__COMPOSE_BLOCK__" in content and os.path.exists("docker-compose.yml"): - with open("docker-compose.yml", "r", encoding="utf-8") as f: - content = content.replace("__COMPOSE_BLOCK__", f.read()) -with open(output, "w", encoding="utf-8") as f: - f.write(content) -' "$output" - } + content = content.replace("__REPO_NAME__", os.environ.get("REPO_PURE", "")) + content = content.replace("__FULL_URL__", os.environ.get("FULL_URL", "")) + content = content.replace("__BUILD_TAG__", os.environ.get("BUILD_TAG", "")) + content = content.replace("__BASE_IMAGE__", os.environ.get("BASE_IMAGE", "")) + content = content.replace("__ARM_STATUS__", os.environ.get("ARM_STATUS", "")) + content = content.replace("__CURRENT_DATE__", os.environ.get("CURRENT_TIME", "")) + content = content.replace("__HISTORY_CONTENT__", os.environ.get("HISTORY_CONTENT", "")) + content = content.replace("__DOCKERHUB_LINK__", os.environ.get("DOCKERHUB_LINK_CONTENT", "")) + content = content.replace("__ENV_BLOCK__", os.environ.get("ENV_BLOCK_CONTENT", "").replace("\\n", "\n")) + content = content.replace("__PORTS_BLOCK__", os.environ.get("PORTS_BLOCK_CONTENT", "").replace("\\n", "\n")) + content = content.replace("__VOL_BLOCK__", os.environ.get("VOL_BLOCK_CONTENT", "").replace("\\n", "\n")) + content = content.replace("__DESCRIPTION__", os.environ.get("DESCRIPTION", "Keine Beschreibung.")) - process_template "docker-compose.template" "docker-compose.yml" - process_template "README.template" "README.md" + if "__DOCKER_RUN__" in content and os.path.exists("docker_run_block.txt"): + with open("docker_run_block.txt", "r", encoding="utf-8") as f: + content = content.replace("__DOCKER_RUN__", f.read()) + + if "__COMPOSE_BLOCK__" in content and os.path.exists("docker-compose.yml"): + with open("docker-compose.yml", "r", encoding="utf-8") as f: + content = content.replace("__COMPOSE_BLOCK__", f.read()) + + with open(output_file, "w", encoding="utf-8") as f: + f.write(content) + + process("docker-compose.yml") + process("README.md") + EOF + + export REPO_PURE FULL_URL BUILD_TAG BASE_IMAGE ARM_STATUS CURRENT_TIME \ + HISTORY_CONTENT DOCKERHUB_LINK_CONTENT ENV_BLOCK_CONTENT \ + PORTS_BLOCK_CONTENT VOL_BLOCK_CONTENT DESCRIPTION + + python3 update_script.py + rm -f update_script.py echo "FINAL_MSG=$COMMIT_MSG" >> $GITHUB_ENV { From ff86386ab7152715ce5822c3e0fd868190056fc2 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Wed, 7 Oct 2026 15:55:53 +0000 Subject: [PATCH 48/97] [skip ci] --- README.md | 13 +++++++------ VERSION.history | 1 + docker-compose.yml | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 8307306..0fd7e96 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:bookworm | 07.10.2026 17:28 | -| aarch64 (arm64) | ✅ Active | debian:bookworm | 07.10.2026 17:28 | +| x86_64 (amd64) | ✅ Active | debian:bookworm | 07.10.2026 17:55 | +| aarch64 (arm64) | ✅ Active | debian:bookworm | 07.10.2026 17:55 | --- @@ -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-de-dev 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-de-dev ``` ### 🚀 2. Run the container directly ```bash @@ -73,15 +73,16 @@ 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-de-dev ``` -*Last updated on: 07.10.2026 17:28* +*Last updated on: 07.10.2026 17:55* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **bookworm-de-dev** | 07.10.2026 17:55 | ✅ | | **bookworm-de** | 07.10.2026 17:28 | ✅ | | **trixie-de** | 07.10.2026 16:58 | ✅ | | **trixie-de-dev** | 07.10.2026 16:27 | Dockerfile aktualisiert ✅ | diff --git a/VERSION.history b/VERSION.history index 9b77dd8..70c7512 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **bookworm-de-dev** | 07.10.2026 17:55 | ✅ | | **bookworm-de** | 07.10.2026 17:28 | ✅ | | **trixie-de** | 07.10.2026 16:58 | ✅ | | **trixie-de-dev** | 07.10.2026 16:27 | Dockerfile aktualisiert ✅ | diff --git a/docker-compose.yml b/docker-compose.yml index c8be77f..88d8324 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-de-dev container_name: base-image-debian-rdp-ldap restart: unless-stopped ports: From 5bc3095b78d21f0af694c7476c36a9a6fb0defdb Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Wed, 7 Oct 2026 16:01:12 +0000 Subject: [PATCH 49/97] buildargs.env aktualisiert --- buildargs.env | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildargs.env b/buildargs.env index 3f2a1e5..63438d5 100644 --- a/buildargs.env +++ b/buildargs.env @@ -1,11 +1,11 @@ ## BASE CONFIG -DEBIAN_CODENAME=bookworm +DEBIAN_CODENAME=trixie BUILD_COUNTRY=de ## BUILD STAGE BUILD_BASE_IMAGE="debian:${DEBIAN_CODENAME}" BUILD_TAG="${DEBIAN_CODENAME}-${BUILD_COUNTRY}" -BUILD_TAG_LATEST=n +BUILD_TAG_LATEST=y BUILD_LANG=de_DE.UTF-8 BUILD_LANGUAGE=de_DE:de BUILD_LC_ALL=de_DE.UTF-8 From 490e6ddbd2f65b47b290675ecae754a25470ad1b Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Wed, 7 Oct 2026 16:27:45 +0000 Subject: [PATCH 50/97] [skip ci] --- README.md | 13 +++++++------ VERSION.history | 1 + docker-compose.yml | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 0fd7e96..c0047d0 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:bookworm | 07.10.2026 17:55 | -| aarch64 (arm64) | ✅ Active | debian:bookworm | 07.10.2026 17:55 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 18:27 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 18:27 | --- @@ -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-dev + image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev 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-dev +docker pull git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev ``` ### 🚀 2. Run the container directly ```bash @@ -73,15 +73,16 @@ 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-dev + git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev ``` -*Last updated on: 07.10.2026 17:55* +*Last updated on: 07.10.2026 18:27* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 07.10.2026 18:27 | ✅ | | **bookworm-de-dev** | 07.10.2026 17:55 | ✅ | | **bookworm-de** | 07.10.2026 17:28 | ✅ | | **trixie-de** | 07.10.2026 16:58 | ✅ | diff --git a/VERSION.history b/VERSION.history index 70c7512..b909254 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 07.10.2026 18:27 | ✅ | | **bookworm-de-dev** | 07.10.2026 17:55 | ✅ | | **bookworm-de** | 07.10.2026 17:28 | ✅ | | **trixie-de** | 07.10.2026 16:58 | ✅ | diff --git a/docker-compose.yml b/docker-compose.yml index 88d8324..1ee3cec 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-dev + image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev container_name: base-image-debian-rdp-ldap restart: unless-stopped ports: From 438d8bfa4250fd4e744935cc72c6caf24870e5d7 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 07:52:49 +0000 Subject: [PATCH 51/97] add dialog and whiptail --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 3a51c75..f8529b8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -59,7 +59,9 @@ RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.s p7zip-full \ tar \ gzip \ - bzip2 && \ + bzip2 \ + dialog \ + whiptail && \ apt-get build-dep -y pulseaudio && \ cd /tmp && \ apt-get source pulseaudio && \ From fb37dbaa5f43daaf48bd205a02b879290c282806 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 07:53:32 +0000 Subject: [PATCH 52/97] add dialog and whiptail --- Dockerfile.aarch64 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 26fdc0b..c448d44 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -59,7 +59,9 @@ RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.s p7zip-full \ tar \ gzip \ - bzip2 && \ + bzip2 \ + dialog \ + whiptail && \ apt-get build-dep -y pulseaudio && \ cd /tmp && \ apt-get source pulseaudio && \ From 6983500190b623ab44ffa8b08450a75cd5fff4a2 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 08:08:44 +0000 Subject: [PATCH 53/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index c82c376..456052b 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -4,6 +4,7 @@ on: - 'dev' paths-ignore: - 'README.md' + - 'Dockerfile*' - 'VERSION.history' - 'docker-compose.yml' - 'buildargs.env' From cf82b0dae2850ecedb34cf775e4b643a6bb7043a Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 08:23:06 +0000 Subject: [PATCH 54/97] buildargs.env aktualisiert --- buildargs.env | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/buildargs.env b/buildargs.env index 63438d5..beb6879 100644 --- a/buildargs.env +++ b/buildargs.env @@ -14,6 +14,46 @@ BUILD_MAINTAINER=pi-farm BUILD_APP_NAME=base-image-debian-rdp-ldap BUILD_APP_VERSION=1.0.0 PUSH=dockerhub +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-${COUNTRY} \ + thunderbird \ + thunderbird-l10n-${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 ## ENV STAGE ENV_SSSD_DEBUG_LEVEL=5 From cfbe309e38e93590eb106fa8adb0678b378388eb Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 08:25:51 +0000 Subject: [PATCH 55/97] Dockerfile aktualisiert --- Dockerfile | 43 +++---------------------------------------- 1 file changed, 3 insertions(+), 40 deletions(-) diff --git a/Dockerfile b/Dockerfile index f8529b8..f6ffe60 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,7 @@ ARG BUILD_LANG ARG BUILD_LANGUAGE ARG BUILD_LC_ALL ARG BUILD_COUNTRY +ARG BUILD_BASE_PACKAGES LABEL maintainer="${BUILD_MAINTAINER}" LABEL org.opencontainers.image.title="${BUILD_APP_NAME}" @@ -19,49 +20,11 @@ ENV LANGUAGE=${BUILD_LANGUAGE} ENV LC_ALL=${BUILD_LC_ALL} ENV COUNTRY=${BUILD_COUNTRY} ENV DEBIAN_FRONTEND=noninteractive +ENV BASE_PACKAGES=$(BUILD_BASE_PACKAGES) RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.sources && \ apt-get update && apt-get install -y \ - 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-${COUNTRY} \ - thunderbird \ - thunderbird-l10n-${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 && \ + BASE_PACKAGES && \ apt-get build-dep -y pulseaudio && \ cd /tmp && \ apt-get source pulseaudio && \ From 1f89d4f495f5ebc4f42e20f173dd1ebf55ca8c34 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 08:27:05 +0000 Subject: [PATCH 56/97] add BASE_PACKAGES from buildargs.env --- Dockerfile.aarch64 | 43 +++---------------------------------------- 1 file changed, 3 insertions(+), 40 deletions(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index c448d44..737362f 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -9,6 +9,7 @@ ARG BUILD_LANG ARG BUILD_LANGUAGE ARG BUILD_LC_ALL ARG BUILD_COUNTRY +ARG BUILD_BASE_PACKAGES LABEL maintainer="${BUILD_MAINTAINER}" LABEL org.opencontainers.image.title="${BUILD_APP_NAME}" @@ -19,49 +20,11 @@ ENV LANGUAGE=${BUILD_LANGUAGE} ENV LC_ALL=${BUILD_LC_ALL} ENV COUNTRY=${BUILD_COUNTRY} ENV DEBIAN_FRONTEND=noninteractive +ENV BASE_PACKAGES=$(BUILD_BASE_PACKAGES) RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.sources && \ apt-get update && apt-get install -y \ - 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-${COUNTRY} \ - thunderbird \ - thunderbird-l10n-${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 && \ + BASE_PACKAGES && \ apt-get build-dep -y pulseaudio && \ cd /tmp && \ apt-get source pulseaudio && \ From 5ccdbead000e47200c19a2e0c9ffcc8b0fecd8b8 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 08:32:06 +0000 Subject: [PATCH 57/97] fix format BUILD_BASE_PACKAGES --- buildargs.env | 43 +++---------------------------------------- 1 file changed, 3 insertions(+), 40 deletions(-) diff --git a/buildargs.env b/buildargs.env index beb6879..7ab9628 100644 --- a/buildargs.env +++ b/buildargs.env @@ -14,46 +14,9 @@ BUILD_MAINTAINER=pi-farm BUILD_APP_NAME=base-image-debian-rdp-ldap BUILD_APP_VERSION=1.0.0 PUSH=dockerhub -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-${COUNTRY} \ - thunderbird \ - thunderbird-l10n-${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 + +## 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" ## ENV STAGE ENV_SSSD_DEBUG_LEVEL=5 From 46a5d290c11ff4294b7634d276f3ff7857d8a510 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 08:35:55 +0000 Subject: [PATCH 58/97] fix BASE_PACKAGES --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index f6ffe60..4bc15d0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,8 +23,8 @@ ENV DEBIAN_FRONTEND=noninteractive ENV BASE_PACKAGES=$(BUILD_BASE_PACKAGES) RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.sources && \ - apt-get update && apt-get install -y \ - BASE_PACKAGES && \ + apt-get update && apt-get install -y --no-install-recommends \ + $BASE_PACKAGES && \ apt-get build-dep -y pulseaudio && \ cd /tmp && \ apt-get source pulseaudio && \ From d53e5149e3d6d6cd32e84c508600045a66253a28 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 08:36:27 +0000 Subject: [PATCH 59/97] fix BASE_PACKAGES --- Dockerfile.aarch64 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 737362f..2bd6bde 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -23,8 +23,8 @@ ENV DEBIAN_FRONTEND=noninteractive ENV BASE_PACKAGES=$(BUILD_BASE_PACKAGES) RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.sources && \ - apt-get update && apt-get install -y \ - BASE_PACKAGES && \ + apt-get update && apt-get install -y --no-install-recommends \ + $BASE_PACKAGES && \ apt-get build-dep -y pulseaudio && \ cd /tmp && \ apt-get source pulseaudio && \ From 3e6dabb93fdb74a8f45e032190ae3f80e2f99553 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 08:53:32 +0000 Subject: [PATCH 60/97] fix ENV format --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4bc15d0..0a46bde 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ ENV LANGUAGE=${BUILD_LANGUAGE} ENV LC_ALL=${BUILD_LC_ALL} ENV COUNTRY=${BUILD_COUNTRY} ENV DEBIAN_FRONTEND=noninteractive -ENV BASE_PACKAGES=$(BUILD_BASE_PACKAGES) +ENV BASE_PACKAGES=${BUILD_BASE_PACKAGES} RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.sources && \ apt-get update && apt-get install -y --no-install-recommends \ From fb61f145cfb354915a4bf5f45b71fb7cbb89b037 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 08:53:58 +0000 Subject: [PATCH 61/97] fix ENV format --- Dockerfile.aarch64 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 2bd6bde..11f72a1 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -20,7 +20,7 @@ ENV LANGUAGE=${BUILD_LANGUAGE} ENV LC_ALL=${BUILD_LC_ALL} ENV COUNTRY=${BUILD_COUNTRY} ENV DEBIAN_FRONTEND=noninteractive -ENV BASE_PACKAGES=$(BUILD_BASE_PACKAGES) +ENV BASE_PACKAGES=${BUILD_BASE_PACKAGES} RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.sources && \ apt-get update && apt-get install -y --no-install-recommends \ From a5f653c9597f58bfaf978b60dc887f4544380e15 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Thu, 8 Oct 2026 09:12:51 +0000 Subject: [PATCH 62/97] [skip ci] --- README.md | 7 ++++--- VERSION.history | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c0047d0..609f568 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 07.10.2026 18:27 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 07.10.2026 18:27 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 11:12 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 11:12 | --- @@ -77,11 +77,12 @@ docker run -d \ ``` -*Last updated on: 07.10.2026 18:27* +*Last updated on: 08.10.2026 11:12* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 08.10.2026 11:12 | ✅ | | **trixie-de-dev** | 07.10.2026 18:27 | ✅ | | **bookworm-de-dev** | 07.10.2026 17:55 | ✅ | | **bookworm-de** | 07.10.2026 17:28 | ✅ | diff --git a/VERSION.history b/VERSION.history index b909254..95db584 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 08.10.2026 11:12 | ✅ | | **trixie-de-dev** | 07.10.2026 18:27 | ✅ | | **bookworm-de-dev** | 07.10.2026 17:55 | ✅ | | **bookworm-de** | 07.10.2026 17:28 | ✅ | From 4bea97d738122ec76c35c4bfd1af45cd6cd5bf3d Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 09:54:03 +0000 Subject: [PATCH 63/97] =?UTF-8?q?packages.txt=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit add packages.txt --- packages.txt | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 packages.txt diff --git a/packages.txt b/packages.txt new file mode 100644 index 0000000..31e436f --- /dev/null +++ b/packages.txt @@ -0,0 +1,38 @@ +xrdp +sssd +sssd-tools +libpam-sss +libnss-sss +libsss-sudo +ldap-utils +ca-certificates +dbus-x11 +xfce4 +xfce4-terminal +sudo +firefox-esr +thunderbird +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 \ No newline at end of file From 8e8555dc637f52b50c2a711efe740667e5ba1775 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 09:54:52 +0000 Subject: [PATCH 64/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 456052b..048ca40 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -5,6 +5,7 @@ on: paths-ignore: - 'README.md' - 'Dockerfile*' + - 'packages.txt' - 'VERSION.history' - 'docker-compose.yml' - 'buildargs.env' From 11d2880e45c36b59dc535e68107f174db988a1da Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 10:00:02 +0000 Subject: [PATCH 65/97] Dockerfile aktualisiert --- Dockerfile | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0a46bde..e05baae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,6 @@ ARG BUILD_LANG ARG BUILD_LANGUAGE ARG BUILD_LC_ALL ARG BUILD_COUNTRY -ARG BUILD_BASE_PACKAGES LABEL maintainer="${BUILD_MAINTAINER}" LABEL org.opencontainers.image.title="${BUILD_APP_NAME}" @@ -20,11 +19,15 @@ ENV LANGUAGE=${BUILD_LANGUAGE} ENV LC_ALL=${BUILD_LC_ALL} ENV COUNTRY=${BUILD_COUNTRY} ENV DEBIAN_FRONTEND=noninteractive -ENV BASE_PACKAGES=${BUILD_BASE_PACKAGES} + +COPY packages.txt /tmp/packages.txt RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.sources && \ apt-get update && apt-get install -y --no-install-recommends \ - $BASE_PACKAGES && \ + $(cat /tmp/packages.txt) \ + firefox-esr-l10n-${BUILD_COUNTRY} \ + thunderbird-l10n-${BUILD_COUNTRY} \ + && rm -rf /var/lib/apt/lists/* /tmp/packages.txt && \ apt-get build-dep -y pulseaudio && \ cd /tmp && \ apt-get source pulseaudio && \ From 4999a09728e74a0655687f0cd5638d7397440f93 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 10:00:34 +0000 Subject: [PATCH 66/97] Dockerfile.aarch64 aktualisiert --- Dockerfile.aarch64 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 11f72a1..66acbdc 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -22,9 +22,14 @@ ENV COUNTRY=${BUILD_COUNTRY} ENV DEBIAN_FRONTEND=noninteractive ENV BASE_PACKAGES=${BUILD_BASE_PACKAGES} +COPY packages.txt /tmp/packages.txt + RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.sources && \ apt-get update && apt-get install -y --no-install-recommends \ - $BASE_PACKAGES && \ + $(cat /tmp/packages.txt) \ + firefox-esr-l10n-${BUILD_COUNTRY} \ + thunderbird-l10n-${BUILD_COUNTRY} \ + && rm -rf /var/lib/apt/lists/* /tmp/packages.txt && \ apt-get build-dep -y pulseaudio && \ cd /tmp && \ apt-get source pulseaudio && \ From f92516e04e46c46bdf6c87e2d11a4d35e293e17a Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 10:01:00 +0000 Subject: [PATCH 67/97] Dockerfile.aarch64 aktualisiert --- Dockerfile.aarch64 | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 66acbdc..9c615ff 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -9,7 +9,6 @@ ARG BUILD_LANG ARG BUILD_LANGUAGE ARG BUILD_LC_ALL ARG BUILD_COUNTRY -ARG BUILD_BASE_PACKAGES LABEL maintainer="${BUILD_MAINTAINER}" LABEL org.opencontainers.image.title="${BUILD_APP_NAME}" @@ -20,7 +19,6 @@ ENV LANGUAGE=${BUILD_LANGUAGE} ENV LC_ALL=${BUILD_LC_ALL} ENV COUNTRY=${BUILD_COUNTRY} ENV DEBIAN_FRONTEND=noninteractive -ENV BASE_PACKAGES=${BUILD_BASE_PACKAGES} COPY packages.txt /tmp/packages.txt From 31579e259c380e434b762c8f86cf9f07f4bdca84 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 10:07:28 +0000 Subject: [PATCH 68/97] Dockerfile.aarch64 aktualisiert --- Dockerfile.aarch64 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 9c615ff..f89b7e1 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -26,8 +26,7 @@ RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.s apt-get update && apt-get install -y --no-install-recommends \ $(cat /tmp/packages.txt) \ firefox-esr-l10n-${BUILD_COUNTRY} \ - thunderbird-l10n-${BUILD_COUNTRY} \ - && rm -rf /var/lib/apt/lists/* /tmp/packages.txt && \ + thunderbird-l10n-${BUILD_COUNTRY} && \ apt-get build-dep -y pulseaudio && \ cd /tmp && \ apt-get source pulseaudio && \ @@ -55,7 +54,8 @@ RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.s ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime && \ 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 + 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 From be7454650c58083034915b5ffbe73a084f0330c3 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 10:08:57 +0000 Subject: [PATCH 69/97] Dockerfile aktualisiert --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index e05baae..0f212f2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,8 +26,7 @@ RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.s apt-get update && apt-get install -y --no-install-recommends \ $(cat /tmp/packages.txt) \ firefox-esr-l10n-${BUILD_COUNTRY} \ - thunderbird-l10n-${BUILD_COUNTRY} \ - && rm -rf /var/lib/apt/lists/* /tmp/packages.txt && \ + thunderbird-l10n-${BUILD_COUNTRY} && \ apt-get build-dep -y pulseaudio && \ cd /tmp && \ apt-get source pulseaudio && \ @@ -55,7 +54,8 @@ RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.s ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime && \ 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 + dpkg-reconfigure -f noninteractive keyboard-configuration && \ + rm -rf /var/lib/apt/lists/* /tmp/packages.txt RUN sed -i '/%users/s/^/# /' /etc/sudoers && \ echo "sudoers: files sss" >> /etc/nsswitch.conf && \ From 209a921ad8c438d2f11cf95914ee3719d1f42314 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Thu, 8 Oct 2026 10:27:06 +0000 Subject: [PATCH 70/97] [skip ci] --- README.md | 7 ++++--- VERSION.history | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 609f568..7ca6eb0 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 11:12 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 11:12 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 12:27 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 12:27 | --- @@ -77,11 +77,12 @@ docker run -d \ ``` -*Last updated on: 08.10.2026 11:12* +*Last updated on: 08.10.2026 12:27* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 08.10.2026 12:27 | ✅ | | **trixie-de-dev** | 08.10.2026 11:12 | ✅ | | **trixie-de-dev** | 07.10.2026 18:27 | ✅ | | **bookworm-de-dev** | 07.10.2026 17:55 | ✅ | diff --git a/VERSION.history b/VERSION.history index 95db584..8d952a4 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 08.10.2026 12:27 | ✅ | | **trixie-de-dev** | 08.10.2026 11:12 | ✅ | | **trixie-de-dev** | 07.10.2026 18:27 | ✅ | | **bookworm-de-dev** | 07.10.2026 17:55 | ✅ | From 5a72ebe7db46b109f8dbc67fee88d4a6be8b85a4 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 10:32:01 +0000 Subject: [PATCH 71/97] VERSION.history aktualisiert --- VERSION.history | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/VERSION.history b/VERSION.history index 8d952a4..2af0264 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,11 +1 @@ -| **trixie-de-dev** | 08.10.2026 12:27 | ✅ | -| **trixie-de-dev** | 08.10.2026 11:12 | ✅ | -| **trixie-de-dev** | 07.10.2026 18:27 | ✅ | -| **bookworm-de-dev** | 07.10.2026 17:55 | ✅ | -| **bookworm-de** | 07.10.2026 17:28 | ✅ | -| **trixie-de** | 07.10.2026 16:58 | ✅ | -| **trixie-de-dev** | 07.10.2026 16:27 | Dockerfile aktualisiert ✅ | -| **trixie-de-dev** | 07.10.2026 16:21 | ✅ | -| **trixie-de-dev** | 07.10.2026 16:12 | ✅ | -| **trixie-de-dev** | 07.10.2026 16:09 | ✅ | -| **trixie-de-dev** | 07.10.2026 15:52 | ✅ | +| **trixie-de-dev** | 08.10.2026 12:27 | ✅ | \ No newline at end of file From 0b9383b571f7cd9e272ae82a35a8f15f6cbb5d77 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Thu, 8 Oct 2026 10:32:56 +0000 Subject: [PATCH 72/97] [skip ci] --- README.md | 19 +++++-------------- VERSION.history | 3 ++- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 7ca6eb0..ebe60c0 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 12:27 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 12:27 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 12:32 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 12:32 | --- @@ -77,19 +77,10 @@ docker run -d \ ``` -*Last updated on: 08.10.2026 12:27* +*Last updated on: 08.10.2026 12:32* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | -| **trixie-de-dev** | 08.10.2026 12:27 | ✅ | -| **trixie-de-dev** | 08.10.2026 11:12 | ✅ | -| **trixie-de-dev** | 07.10.2026 18:27 | ✅ | -| **bookworm-de-dev** | 07.10.2026 17:55 | ✅ | -| **bookworm-de** | 07.10.2026 17:28 | ✅ | -| **trixie-de** | 07.10.2026 16:58 | ✅ | -| **trixie-de-dev** | 07.10.2026 16:27 | Dockerfile aktualisiert ✅ | -| **trixie-de-dev** | 07.10.2026 16:21 | ✅ | -| **trixie-de-dev** | 07.10.2026 16:12 | ✅ | -| **trixie-de-dev** | 07.10.2026 16:09 | ✅ | -| **trixie-de-dev** | 07.10.2026 15:52 | ✅ | \ No newline at end of file +| **trixie-de-dev** | 08.10.2026 12:32 | ✅ | +| **trixie-de-dev** | 08.10.2026 12:27 | ✅ | \ No newline at end of file diff --git a/VERSION.history b/VERSION.history index 2af0264..ae67074 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1 +1,2 @@ -| **trixie-de-dev** | 08.10.2026 12:27 | ✅ | \ No newline at end of file +| **trixie-de-dev** | 08.10.2026 12:32 | ✅ | +| **trixie-de-dev** | 08.10.2026 12:27 | ✅ | From b289f3bcfccad037e6eed1eaa2019e85416ea253 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 10:36:15 +0000 Subject: [PATCH 73/97] build bookworm --- buildargs.env | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildargs.env b/buildargs.env index 7ab9628..bf1a8da 100644 --- a/buildargs.env +++ b/buildargs.env @@ -1,11 +1,11 @@ ## BASE CONFIG -DEBIAN_CODENAME=trixie +DEBIAN_CODENAME=bookworm BUILD_COUNTRY=de ## BUILD STAGE BUILD_BASE_IMAGE="debian:${DEBIAN_CODENAME}" BUILD_TAG="${DEBIAN_CODENAME}-${BUILD_COUNTRY}" -BUILD_TAG_LATEST=y +BUILD_TAG_LATEST=n BUILD_LANG=de_DE.UTF-8 BUILD_LANGUAGE=de_DE:de BUILD_LC_ALL=de_DE.UTF-8 From 9228e0098512d7dc6a45d35f1a933d670b06b989 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Thu, 8 Oct 2026 10:51:28 +0000 Subject: [PATCH 74/97] [skip ci] --- README.md | 13 +++++++------ VERSION.history | 1 + docker-compose.yml | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ebe60c0..83f8ab5 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 12:32 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 12:32 | +| x86_64 (amd64) | ✅ Active | debian:bookworm | 08.10.2026 12:51 | +| aarch64 (arm64) | ✅ Active | debian:bookworm | 08.10.2026 12:51 | --- @@ -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:trixie-de-dev + image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-de-dev 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:trixie-de-dev +docker pull git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-de-dev ``` ### 🚀 2. Run the container directly ```bash @@ -73,14 +73,15 @@ 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:trixie-de-dev + git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-de-dev ``` -*Last updated on: 08.10.2026 12:32* +*Last updated on: 08.10.2026 12:51* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **bookworm-de-dev** | 08.10.2026 12:51 | ✅ | | **trixie-de-dev** | 08.10.2026 12:32 | ✅ | | **trixie-de-dev** | 08.10.2026 12:27 | ✅ | \ No newline at end of file diff --git a/VERSION.history b/VERSION.history index ae67074..4af7ab9 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,2 +1,3 @@ +| **bookworm-de-dev** | 08.10.2026 12:51 | ✅ | | **trixie-de-dev** | 08.10.2026 12:32 | ✅ | | **trixie-de-dev** | 08.10.2026 12:27 | ✅ | diff --git a/docker-compose.yml b/docker-compose.yml index 1ee3cec..88d8324 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:trixie-de-dev + image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:bookworm-de-dev container_name: base-image-debian-rdp-ldap restart: unless-stopped ports: From fd5c9e53cc95917e47f798a711dcec9ccef87d05 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Thu, 8 Oct 2026 11:52:24 +0000 Subject: [PATCH 75/97] [skip ci] --- README.md | 10 ++++------ VERSION.history | 1 + 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 83f8ab5..c51a680 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,6 @@ # base-image-debian-rdp-ldap Debian Desktop with LDAP Authentication and PulseAudio. To use behind Guacamole with LDAP Authentication and pass-through to Debian Desktop. - - Build Status - Gitea Repository @@ -15,8 +12,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:bookworm | 08.10.2026 12:51 | -| aarch64 (arm64) | ✅ Active | debian:bookworm | 08.10.2026 12:51 | +| x86_64 (amd64) | ✅ Active | debian:bookworm | 08.10.2026 13:52 | +| aarch64 (arm64) | ✅ Active | debian:bookworm | 08.10.2026 13:52 | --- @@ -77,11 +74,12 @@ docker run -d \ ``` -*Last updated on: 08.10.2026 12:51* +*Last updated on: 08.10.2026 13:52* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **bookworm-de-dev** | 08.10.2026 13:52 | ✅ | | **bookworm-de-dev** | 08.10.2026 12:51 | ✅ | | **trixie-de-dev** | 08.10.2026 12:32 | ✅ | | **trixie-de-dev** | 08.10.2026 12:27 | ✅ | \ No newline at end of file diff --git a/VERSION.history b/VERSION.history index 4af7ab9..c0ce5c1 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **bookworm-de-dev** | 08.10.2026 13:52 | ✅ | | **bookworm-de-dev** | 08.10.2026 12:51 | ✅ | | **trixie-de-dev** | 08.10.2026 12:32 | ✅ | | **trixie-de-dev** | 08.10.2026 12:27 | ✅ | From 45f0d5e927c69d218948d67fd5046ba46b6d9710 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 11:58:52 +0000 Subject: [PATCH 76/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 048ca40..9f883ae 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -409,7 +409,9 @@ jobs: echo "📦 Processing README.md for Docker Hub (${DH_URL})..." - sed "s|${GITEA_URL}|${DH_URL}|g" README.md > README_DH.md + # Ersetzt die Image-URL NUR dann, wenn kein http:// oder https:// davor steht + export GITEA_URL DH_URL + python3 -c 'import os, re; content = open("README.md", "r", encoding="utf-8").read(); new_content = re.sub(r"(? Date: Thu, 8 Oct 2026 12:01:46 +0000 Subject: [PATCH 77/97] [skip ci] --- README.md | 10 +++++++--- VERSION.history | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c51a680..1d17d29 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ # base-image-debian-rdp-ldap Debian Desktop with LDAP Authentication and PulseAudio. To use behind Guacamole with LDAP Authentication and pass-through to Debian Desktop. + + Build Status + Gitea Repository @@ -12,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:bookworm | 08.10.2026 13:52 | -| aarch64 (arm64) | ✅ Active | debian:bookworm | 08.10.2026 13:52 | +| x86_64 (amd64) | ✅ Active | debian:bookworm | 08.10.2026 14:01 | +| aarch64 (arm64) | ✅ Active | debian:bookworm | 08.10.2026 14:01 | --- @@ -74,11 +77,12 @@ docker run -d \ ``` -*Last updated on: 08.10.2026 13:52* +*Last updated on: 08.10.2026 14:01* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **bookworm-de-dev** | 08.10.2026 14:01 | ✅ | | **bookworm-de-dev** | 08.10.2026 13:52 | ✅ | | **bookworm-de-dev** | 08.10.2026 12:51 | ✅ | | **trixie-de-dev** | 08.10.2026 12:32 | ✅ | diff --git a/VERSION.history b/VERSION.history index c0ce5c1..1bef4b4 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **bookworm-de-dev** | 08.10.2026 14:01 | ✅ | | **bookworm-de-dev** | 08.10.2026 13:52 | ✅ | | **bookworm-de-dev** | 08.10.2026 12:51 | ✅ | | **trixie-de-dev** | 08.10.2026 12:32 | ✅ | From 9682aeb843d209d21fc0dee2b28c0026aeab8ff2 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 12:02:56 +0000 Subject: [PATCH 78/97] buildargs.env aktualisiert --- buildargs.env | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildargs.env b/buildargs.env index bf1a8da..7ab9628 100644 --- a/buildargs.env +++ b/buildargs.env @@ -1,11 +1,11 @@ ## BASE CONFIG -DEBIAN_CODENAME=bookworm +DEBIAN_CODENAME=trixie BUILD_COUNTRY=de ## BUILD STAGE BUILD_BASE_IMAGE="debian:${DEBIAN_CODENAME}" BUILD_TAG="${DEBIAN_CODENAME}-${BUILD_COUNTRY}" -BUILD_TAG_LATEST=n +BUILD_TAG_LATEST=y BUILD_LANG=de_DE.UTF-8 BUILD_LANGUAGE=de_DE:de BUILD_LC_ALL=de_DE.UTF-8 From f914c67f1c03367be3c931d0d3e21795f310d5b6 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Thu, 8 Oct 2026 12:21:22 +0000 Subject: [PATCH 79/97] [skip ci] --- README.md | 13 +++++++------ VERSION.history | 1 + docker-compose.yml | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 1d17d29..c4bb1fe 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:bookworm | 08.10.2026 14:01 | -| aarch64 (arm64) | ✅ Active | debian:bookworm | 08.10.2026 14:01 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 14:21 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 14:21 | --- @@ -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-dev + image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev 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-dev +docker pull git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev ``` ### 🚀 2. Run the container directly ```bash @@ -73,15 +73,16 @@ 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-dev + git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev ``` -*Last updated on: 08.10.2026 14:01* +*Last updated on: 08.10.2026 14:21* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 08.10.2026 14:21 | ✅ | | **bookworm-de-dev** | 08.10.2026 14:01 | ✅ | | **bookworm-de-dev** | 08.10.2026 13:52 | ✅ | | **bookworm-de-dev** | 08.10.2026 12:51 | ✅ | diff --git a/VERSION.history b/VERSION.history index 1bef4b4..a3d968c 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 08.10.2026 14:21 | ✅ | | **bookworm-de-dev** | 08.10.2026 14:01 | ✅ | | **bookworm-de-dev** | 08.10.2026 13:52 | ✅ | | **bookworm-de-dev** | 08.10.2026 12:51 | ✅ | diff --git a/docker-compose.yml b/docker-compose.yml index 88d8324..1ee3cec 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-dev + image: git.pi-farm.de/pi-farm/base-image-debian-rdp-ldap:trixie-de-dev container_name: base-image-debian-rdp-ldap restart: unless-stopped ports: From 6cd87232635097f2faab58cd155f5e62a5b9cd57 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 13:16:38 +0000 Subject: [PATCH 80/97] fix dbus container-restart --- entrypoint.sh | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index f882fe6..15d40d5 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -33,7 +33,6 @@ ldap_group_member = uniqueMember ldap_id_use_start_tls = false ldap_tls_reqcert = never -ldap_auth_disable_tls_never_use_in_production = true cache_credentials = true enumerate = false @@ -51,17 +50,19 @@ if [ -f /etc/xrdp/xrdp.ini ]; then sed -i 's/^security_layer=.*/security_layer=tls/' /etc/xrdp/xrdp.ini fi -echo ">>> Bereinige SSSD Cache..." +echo ">>> Bereinige alte PID-Dateien und SSSD Cache..." +rm -f /var/run/dbus/pid /run/dbus/dbus.pid /var/run/xrdp/*.pid /var/run/xrdp/xrdp-sesman.pid rm -f /var/lib/sss/db/* rm -f /var/lib/sss/mc/* -echo ">>> Starte Dienste..." -# 1. D-Bus MUSS zwingend vor SSSD starten -service dbus start +echo ">>> Starte D-Bus..." +mkdir -p /var/run/dbus /run/dbus +dbus-uuidgen --ensure +dbus-daemon --system --fork[cite: 1] -# 2. SSSD starten +echo ">>> Starte SSSD..." sssd -D --debug-level=${SSSD_DEBUG} -# 3. xrdp-Dienste starten +echo ">>> Starte XRDP..." xrdp-sesman -exec xrdp -n +exec xrdp -n \ No newline at end of file From a25b8f09328855c3b927c344dd1af190039bb2e1 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Thu, 8 Oct 2026 13:17:37 +0000 Subject: [PATCH 81/97] fix dbus container-restart [skip ci] --- README.md | 7 ++++--- VERSION.history | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c4bb1fe..503ebf6 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 14:21 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 14:21 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 15:17 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 15:17 | --- @@ -77,11 +77,12 @@ docker run -d \ ``` -*Last updated on: 08.10.2026 14:21* +*Last updated on: 08.10.2026 15:17* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 08.10.2026 15:17 | fix dbus container-restart ✅ | | **trixie-de-dev** | 08.10.2026 14:21 | ✅ | | **bookworm-de-dev** | 08.10.2026 14:01 | ✅ | | **bookworm-de-dev** | 08.10.2026 13:52 | ✅ | diff --git a/VERSION.history b/VERSION.history index a3d968c..7d3a138 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 08.10.2026 15:17 | fix dbus container-restart ✅ | | **trixie-de-dev** | 08.10.2026 14:21 | ✅ | | **bookworm-de-dev** | 08.10.2026 14:01 | ✅ | | **bookworm-de-dev** | 08.10.2026 13:52 | ✅ | From 499d7cfbd42416f7c852f8719f17b70f5cad8589 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 13:19:03 +0000 Subject: [PATCH 82/97] fix typo --- entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index 15d40d5..cc4c33e 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -58,7 +58,7 @@ rm -f /var/lib/sss/mc/* echo ">>> Starte D-Bus..." mkdir -p /var/run/dbus /run/dbus dbus-uuidgen --ensure -dbus-daemon --system --fork[cite: 1] +dbus-daemon --system --fork echo ">>> Starte SSSD..." sssd -D --debug-level=${SSSD_DEBUG} From 3857b83df9408abf4c86931b4ea16a1d693a9dd0 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Thu, 8 Oct 2026 13:20:02 +0000 Subject: [PATCH 83/97] fix typo [skip ci] --- README.md | 7 ++++--- VERSION.history | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 503ebf6..1d7d935 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 15:17 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 15:17 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 15:20 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 15:20 | --- @@ -77,11 +77,12 @@ docker run -d \ ``` -*Last updated on: 08.10.2026 15:17* +*Last updated on: 08.10.2026 15:20* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 08.10.2026 15:20 | fix typo ✅ | | **trixie-de-dev** | 08.10.2026 15:17 | fix dbus container-restart ✅ | | **trixie-de-dev** | 08.10.2026 14:21 | ✅ | | **bookworm-de-dev** | 08.10.2026 14:01 | ✅ | diff --git a/VERSION.history b/VERSION.history index 7d3a138..61a8713 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 08.10.2026 15:20 | fix typo ✅ | | **trixie-de-dev** | 08.10.2026 15:17 | fix dbus container-restart ✅ | | **trixie-de-dev** | 08.10.2026 14:21 | ✅ | | **bookworm-de-dev** | 08.10.2026 14:01 | ✅ | From d3453c6ec8e71397a5e221f07afaddd35ddb54f3 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 13:20:54 +0000 Subject: [PATCH 84/97] packages.txt aktualisiert --- packages.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages.txt b/packages.txt index 31e436f..96f7588 100644 --- a/packages.txt +++ b/packages.txt @@ -1,4 +1,3 @@ -xrdp sssd sssd-tools libpam-sss @@ -6,6 +5,9 @@ libnss-sss libsss-sudo ldap-utils ca-certificates +xrdp +xorgxrdp +dbus dbus-x11 xfce4 xfce4-terminal From d93f54617a77035ff1dcb6cef36380010814ad81 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Thu, 8 Oct 2026 13:39:02 +0000 Subject: [PATCH 85/97] [skip ci] --- README.md | 7 ++++--- VERSION.history | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1d7d935..c804bfb 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 15:20 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 15:20 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 15:39 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 15:39 | --- @@ -77,11 +77,12 @@ docker run -d \ ``` -*Last updated on: 08.10.2026 15:20* +*Last updated on: 08.10.2026 15:39* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 08.10.2026 15:39 | ✅ | | **trixie-de-dev** | 08.10.2026 15:20 | fix typo ✅ | | **trixie-de-dev** | 08.10.2026 15:17 | fix dbus container-restart ✅ | | **trixie-de-dev** | 08.10.2026 14:21 | ✅ | diff --git a/VERSION.history b/VERSION.history index 61a8713..f9c1084 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 08.10.2026 15:39 | ✅ | | **trixie-de-dev** | 08.10.2026 15:20 | fix typo ✅ | | **trixie-de-dev** | 08.10.2026 15:17 | fix dbus container-restart ✅ | | **trixie-de-dev** | 08.10.2026 14:21 | ✅ | From 3c4846216ec7fa4b1267d06da0fddf17e0dec753 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 15:03:55 +0000 Subject: [PATCH 86/97] entrypoint.sh aktualisiert --- entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index cc4c33e..377433f 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -30,7 +30,7 @@ ldap_default_authtok = ${LDAP_BIND_PASSWORD} ldap_schema = rfc2307bis ldap_group_member = uniqueMember - +ldap_auth_disable_tls_never_use_in_production = true ldap_id_use_start_tls = false ldap_tls_reqcert = never From a5842b0cb6cdf1dbfb730a9fed3f56ddbb770649 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Thu, 8 Oct 2026 15:04:53 +0000 Subject: [PATCH 87/97] entrypoint.sh aktualisiert [skip ci] --- README.md | 7 ++++--- VERSION.history | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c804bfb..82e85a9 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 15:39 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 15:39 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 17:04 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 17:04 | --- @@ -77,11 +77,12 @@ docker run -d \ ``` -*Last updated on: 08.10.2026 15:39* +*Last updated on: 08.10.2026 17:04* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 08.10.2026 17:04 | entrypoint.sh aktualisiert ✅ | | **trixie-de-dev** | 08.10.2026 15:39 | ✅ | | **trixie-de-dev** | 08.10.2026 15:20 | fix typo ✅ | | **trixie-de-dev** | 08.10.2026 15:17 | fix dbus container-restart ✅ | diff --git a/VERSION.history b/VERSION.history index f9c1084..542e37c 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 08.10.2026 17:04 | entrypoint.sh aktualisiert ✅ | | **trixie-de-dev** | 08.10.2026 15:39 | ✅ | | **trixie-de-dev** | 08.10.2026 15:20 | fix typo ✅ | | **trixie-de-dev** | 08.10.2026 15:17 | fix dbus container-restart ✅ | From fb7afb4e8f8c03cd1c0038e076c1a3b3d0a91012 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 15:11:19 +0000 Subject: [PATCH 88/97] revert d3453c6ec8e71397a5e221f07afaddd35ddb54f3 revert packages.txt aktualisiert --- packages.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages.txt b/packages.txt index 96f7588..31e436f 100644 --- a/packages.txt +++ b/packages.txt @@ -1,3 +1,4 @@ +xrdp sssd sssd-tools libpam-sss @@ -5,9 +6,6 @@ libnss-sss libsss-sudo ldap-utils ca-certificates -xrdp -xorgxrdp -dbus dbus-x11 xfce4 xfce4-terminal From ca3014de296929fc47d1f4fa0ff81a806b9cbc9b Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Thu, 8 Oct 2026 15:30:40 +0000 Subject: [PATCH 89/97] [skip ci] --- README.md | 7 ++++--- VERSION.history | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 82e85a9..e55d993 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 17:04 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 17:04 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 17:30 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 17:30 | --- @@ -77,11 +77,12 @@ docker run -d \ ``` -*Last updated on: 08.10.2026 17:04* +*Last updated on: 08.10.2026 17:30* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 08.10.2026 17:30 | ✅ | | **trixie-de-dev** | 08.10.2026 17:04 | entrypoint.sh aktualisiert ✅ | | **trixie-de-dev** | 08.10.2026 15:39 | ✅ | | **trixie-de-dev** | 08.10.2026 15:20 | fix typo ✅ | diff --git a/VERSION.history b/VERSION.history index 542e37c..1195125 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 08.10.2026 17:30 | ✅ | | **trixie-de-dev** | 08.10.2026 17:04 | entrypoint.sh aktualisiert ✅ | | **trixie-de-dev** | 08.10.2026 15:39 | ✅ | | **trixie-de-dev** | 08.10.2026 15:20 | fix typo ✅ | From 548c96a9f2d3ffc5fc2f9e26d9bc7537542f0074 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 15:37:40 +0000 Subject: [PATCH 90/97] revert fb7afb4e8f8c03cd1c0038e076c1a3b3d0a91012 revert revert d3453c6ec8e71397a5e221f07afaddd35ddb54f3 revert packages.txt aktualisiert --- packages.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages.txt b/packages.txt index 31e436f..96f7588 100644 --- a/packages.txt +++ b/packages.txt @@ -1,4 +1,3 @@ -xrdp sssd sssd-tools libpam-sss @@ -6,6 +5,9 @@ libnss-sss libsss-sudo ldap-utils ca-certificates +xrdp +xorgxrdp +dbus dbus-x11 xfce4 xfce4-terminal From 7db1355f71c8d67fd02c054efda562cd2f2c37b5 Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Thu, 8 Oct 2026 15:56:48 +0000 Subject: [PATCH 91/97] [skip ci] --- README.md | 7 ++++--- VERSION.history | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e55d993..0f0399b 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 17:30 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 17:30 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 17:56 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 17:56 | --- @@ -77,11 +77,12 @@ docker run -d \ ``` -*Last updated on: 08.10.2026 17:30* +*Last updated on: 08.10.2026 17:56* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 08.10.2026 17:56 | ✅ | | **trixie-de-dev** | 08.10.2026 17:30 | ✅ | | **trixie-de-dev** | 08.10.2026 17:04 | entrypoint.sh aktualisiert ✅ | | **trixie-de-dev** | 08.10.2026 15:39 | ✅ | diff --git a/VERSION.history b/VERSION.history index 1195125..9ad507a 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 08.10.2026 17:56 | ✅ | | **trixie-de-dev** | 08.10.2026 17:30 | ✅ | | **trixie-de-dev** | 08.10.2026 17:04 | entrypoint.sh aktualisiert ✅ | | **trixie-de-dev** | 08.10.2026 15:39 | ✅ | From 98db04d6663feed57fbc8be84c65cb13fb26cf18 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 18:37:27 +0000 Subject: [PATCH 92/97] add xdg-user-dirs --- packages.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/packages.txt b/packages.txt index 96f7588..6508b10 100644 --- a/packages.txt +++ b/packages.txt @@ -11,6 +11,7 @@ dbus dbus-x11 xfce4 xfce4-terminal +xdg-user-dirs sudo firefox-esr thunderbird From b79d5a8b73b7e77ec13b5d585b87857ef25c61be Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Thu, 8 Oct 2026 18:57:21 +0000 Subject: [PATCH 93/97] [skip ci] --- README.md | 7 ++++--- VERSION.history | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0f0399b..72a326c 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 17:56 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 17:56 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 20:57 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 20:57 | --- @@ -77,11 +77,12 @@ docker run -d \ ``` -*Last updated on: 08.10.2026 17:56* +*Last updated on: 08.10.2026 20:57* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 08.10.2026 20:57 | ✅ | | **trixie-de-dev** | 08.10.2026 17:56 | ✅ | | **trixie-de-dev** | 08.10.2026 17:30 | ✅ | | **trixie-de-dev** | 08.10.2026 17:04 | entrypoint.sh aktualisiert ✅ | diff --git a/VERSION.history b/VERSION.history index 9ad507a..7cfebe1 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 08.10.2026 20:57 | ✅ | | **trixie-de-dev** | 08.10.2026 17:56 | ✅ | | **trixie-de-dev** | 08.10.2026 17:30 | ✅ | | **trixie-de-dev** | 08.10.2026 17:04 | entrypoint.sh aktualisiert ✅ | From d945d52d70850d2517fa3c823c7644a02d1ea187 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 19:50:25 +0000 Subject: [PATCH 94/97] .gitea/workflows/build-and-push.yaml aktualisiert --- .gitea/workflows/build-and-push.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build-and-push.yaml b/.gitea/workflows/build-and-push.yaml index 9f883ae..7fd1c2b 100644 --- a/.gitea/workflows/build-and-push.yaml +++ b/.gitea/workflows/build-and-push.yaml @@ -9,6 +9,7 @@ on: - 'VERSION.history' - 'docker-compose.yml' - 'buildargs.env' + - 'entrypoint.sh' - '*.md' - '.gitignore' - '.gitea/workflows/build-and-push.yaml' From 4e406b6366e1c1ef5726c4ea89606769f6d372a1 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 19:51:48 +0000 Subject: [PATCH 95/97] add xfce4-wallpapers desktop-base --- packages.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages.txt b/packages.txt index 6508b10..a85a05a 100644 --- a/packages.txt +++ b/packages.txt @@ -12,9 +12,12 @@ dbus-x11 xfce4 xfce4-terminal xdg-user-dirs +xfce4-wallpapers +desktop-base sudo firefox-esr thunderbird +geany locales tzdata keyboard-configuration From 007066f5ffcfce6a89c1bef2c4623610f0903f21 Mon Sep 17 00:00:00 2001 From: "info@pi-farm.de" <6+pi-farm@noreply.git.pi-farm.de> Date: Thu, 8 Oct 2026 19:56:43 +0000 Subject: [PATCH 96/97] packages.txt aktualisiert --- packages.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/packages.txt b/packages.txt index a85a05a..cde159d 100644 --- a/packages.txt +++ b/packages.txt @@ -12,7 +12,6 @@ dbus-x11 xfce4 xfce4-terminal xdg-user-dirs -xfce4-wallpapers desktop-base sudo firefox-esr From a86ce056fc291a71d2583f83e18d77242e9fd79a Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Thu, 8 Oct 2026 20:15:19 +0000 Subject: [PATCH 97/97] [skip ci] --- README.md | 7 ++++--- VERSION.history | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 72a326c..398d526 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,8 @@ This repository is built and pushed automatically. ### 🏗️ Platform Support | Architecture | Status | Base Image | Build Date | | :--- | :--- | :--- | :--- | -| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 20:57 | -| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 20:57 | +| x86_64 (amd64) | ✅ Active | debian:trixie | 08.10.2026 22:15 | +| aarch64 (arm64) | ✅ Active | debian:trixie | 08.10.2026 22:15 | --- @@ -77,11 +77,12 @@ docker run -d \ ``` -*Last updated on: 08.10.2026 20:57* +*Last updated on: 08.10.2026 22:15* ### 📜 Version History | Version | Date | Status | | :--- | :--- | :--- | +| **trixie-de-dev** | 08.10.2026 22:15 | ✅ | | **trixie-de-dev** | 08.10.2026 20:57 | ✅ | | **trixie-de-dev** | 08.10.2026 17:56 | ✅ | | **trixie-de-dev** | 08.10.2026 17:30 | ✅ | diff --git a/VERSION.history b/VERSION.history index 7cfebe1..c26d860 100644 --- a/VERSION.history +++ b/VERSION.history @@ -1,3 +1,4 @@ +| **trixie-de-dev** | 08.10.2026 22:15 | ✅ | | **trixie-de-dev** | 08.10.2026 20:57 | ✅ | | **trixie-de-dev** | 08.10.2026 17:56 | ✅ | | **trixie-de-dev** | 08.10.2026 17:30 | ✅ |