diff --git a/deploy/docker/fs/opt/appsmith/caddy-reconfigure.mjs b/deploy/docker/fs/opt/appsmith/caddy-reconfigure.mjs index 25db18469e..4fd714fbe6 100644 --- a/deploy/docker/fs/opt/appsmith/caddy-reconfigure.mjs +++ b/deploy/docker/fs/opt/appsmith/caddy-reconfigure.mjs @@ -155,11 +155,27 @@ if (CUSTOM_DOMAIN !== "") { `) } +finalizeIndexHtml() fs.mkdirSync(dirname(CaddyfilePath), { recursive: true }) fs.writeFileSync(CaddyfilePath, parts.join("\n")) spawnSync("/opt/caddy/caddy", ["fmt", "--overwrite", CaddyfilePath]) spawnSync("/opt/caddy/caddy", ["reload", "--config", CaddyfilePath]) +function finalizeIndexHtml() { + const info = JSON.parse(fs.readFileSync("/opt/appsmith/info.json", "utf8")) + const extraEnv = { + APPSMITH_VERSION_ID: info.version ?? "", + APPSMITH_VERSION_RELEASE_DATE: info.imageBuiltAt ?? "", + } + + const content = fs.readFileSync("/opt/appsmith/editor/index.html", "utf8").replace( + /\b__(APPSMITH_[A-Z0-9_]+)__\b/g, + (_, name) => (process.env[name] || extraEnv[name] || "") + ) + + fs.writeFileSync(process.env.WWW_PATH + "/index.html", content) +} + function isCertExpired(path) { const cert = new X509Certificate(fs.readFileSync(path, "utf-8")) console.log(path, cert) diff --git a/deploy/docker/fs/opt/appsmith/run-caddy.sh b/deploy/docker/fs/opt/appsmith/run-caddy.sh index 44d500f1fd..185a01ad99 100755 --- a/deploy/docker/fs/opt/appsmith/run-caddy.sh +++ b/deploy/docker/fs/opt/appsmith/run-caddy.sh @@ -9,31 +9,12 @@ if [[ -z "${APPSMITH_DISABLE_IFRAME_WIDGET_SANDBOX-}" ]]; then export APPSMITH_DISABLE_IFRAME_WIDGET_SANDBOX="true" fi -apply-env-vars() { - original="$1" - served="$2" - node -e ' - const fs = require("fs") - try { - const info = JSON.parse(fs.readFileSync("/opt/appsmith/info.json", "utf8")) - process.env.APPSMITH_VERSION_ID = info.version || "" - process.env.APPSMITH_VERSION_RELEASE_DATE = info.imageBuiltAt || "" - } catch {} - const content = fs.readFileSync("'"$original"'", "utf8").replace( - /\b__(APPSMITH_[A-Z0-9_]+)__\b/g, - (placeholder, name) => (process.env[name] || "") - ) - fs.writeFileSync("'"$served"'", content) - ' - pushd "$(dirname "$served")" - gzip --keep --force "$(basename "$served")" - popd -} - -apply-env-vars /opt/appsmith/editor/index.html "$WWW_PATH/index.html" - node caddy-reconfigure.mjs +pushd "$(dirname "$WWW_PATH/index.html")" +gzip --keep --force "$(basename "$WWW_PATH/index.html")" +popd + # Caddy may already be running for the loading page. /opt/caddy/caddy stop --config "$TMP/Caddyfile" || true