From 5981a3db71cbd22b28a144d3b23475598dca8b10 Mon Sep 17 00:00:00 2001
From: hsiegeln <37154749+hsiegeln@users.noreply.github.com>
Date: Sun, 5 Apr 2026 23:53:03 +0200
Subject: [PATCH] fix: patch server-ui entrypoint to fix sed ordering bug
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The server-ui's entrypoint inserts THEN rewrites all
href="/" — including the just-inserted base tag, causing doubling.
Patched entrypoint rewrites asset paths first, then inserts .
Co-Authored-By: Claude Opus 4.6 (1M context)
---
docker-compose.yml | 3 +++
docker/server-ui-entrypoint.sh | 20 ++++++++++++++++++++
2 files changed, 23 insertions(+)
create mode 100644 docker/server-ui-entrypoint.sh
diff --git a/docker-compose.yml b/docker-compose.yml
index 2c0ac03..ddbd2fc 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -192,9 +192,12 @@ services:
cameleer3-server-ui:
image: ${CAMELEER3_SERVER_UI_IMAGE:-gitea.siegeln.net/cameleer/cameleer3-server-ui}:${VERSION:-latest}
restart: unless-stopped
+ entrypoint: ["/bin/sh", "/cameleer-entrypoint-patched.sh"]
depends_on:
cameleer3-server:
condition: service_healthy
+ volumes:
+ - ./docker/server-ui-entrypoint.sh:/cameleer-entrypoint-patched.sh:ro
environment:
CAMELEER_API_URL: http://cameleer3-server:8081
BASE_PATH: /server
diff --git a/docker/server-ui-entrypoint.sh b/docker/server-ui-entrypoint.sh
new file mode 100644
index 0000000..328652d
--- /dev/null
+++ b/docker/server-ui-entrypoint.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+# Patched entrypoint: fixes the sed ordering bug in the server-ui image.
+# The original entrypoint inserts then rewrites ALL href="/..."
+# including the just-inserted base tag, causing /server/server/ doubling.
+
+BASE_PATH="${BASE_PATH:-/}"
+
+if [ "$BASE_PATH" != "/" ]; then
+ BASE_PATH=$(echo "$BASE_PATH" | sed 's#/*$#/#; s#^/*#/#')
+
+ INDEX="/usr/share/nginx/html/index.html"
+ # Rewrite absolute asset paths FIRST (before inserting )
+ sed -i "s|href=\"/|href=\"${BASE_PATH}|g; s|src=\"/|src=\"${BASE_PATH}|g" "$INDEX"
+ # THEN inject tag
+ sed -i "s|||" "$INDEX"
+
+ echo "BASE_PATH set to ${BASE_PATH} — rewrote index.html"
+fi
+
+exec /docker-entrypoint.sh "$@"