From d099d31f6a20db64983e120f4bae3b34baf1a865 Mon Sep 17 00:00:00 2001 From: Inferencebot Date: Tue, 27 Oct 2026 21:59:25 +0000 Subject: [PATCH] Cream page background end-to-end: Dockerfile PWA colors, README, verify block Follow-up to the custom.css/custom2.js change: the Dockerfile seds the web manifest theme_color/background_color and the index.html light meta to #eaf3ea, and the README's verify block asserted the green wash as correct ("an earlier version of this block asserted cream ... would have led you to fix a correct deploy"). Both are the same regression: the wash was rejected earlier, restored by accident, and then documented as intended. - Dockerfile: manifest + index meta -> #faf8f5 (cream), with an explicit "keep these three in sync" note (this sed, custom.css html:not(.dark), custom2.js COOP_BG.light). - README verify block: asserts cream again, plus a new step for the install-time colors no DOM check covers (manifest + light meta). - README palette section: hover is #f0ede6 not the wash; --presentation is cream; source of truth is the DEPLOYED CSS of dashboard/portal/panel, with the read command; records the shared 4.32:1 / 3.93:1 accessibility caveat; notes that cloudron exec silently swallows multi-line sh -c. --- Dockerfile | 15 +++++++------ README.md | 63 +++++++++++++++++++++++++++++++++++------------------- 2 files changed, 50 insertions(+), 28 deletions(-) diff --git a/Dockerfile b/Dockerfile index 55f6bf9..17ea43d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -67,12 +67,15 @@ RUN python3 /app/code/patch_index.py && \ # PWA chrome colors: LibreChat ships a teal theme_color (#009688) in the web # manifest (the bright green bar Firefox PWAs draw across the top) and black -# background_color. Point both at the light page color (#eaf3ea dashboard green -# wash — the manifest can only hold one value; custom2.js re-syncs the meta -# tags to the app's actual theme at runtime). The index.html meta gets a -# light + dark pair so browser/PWA chrome matches the phone theme natively. -RUN sed -i 's|"theme_color": *"#009688"|"theme_color":"#eaf3ea"|; s|"background_color": *"#000000"|"background_color":"#eaf3ea"|' /app/code/librechat/client/dist/manifest.webmanifest && \ - sed -i 's||\n |' /app/code/librechat/client/dist/index.html +# background_color. Point both at the light page color — CREAM #faf8f5, the +# dashboard's page background (the manifest can only hold one value; custom2.js +# re-syncs the meta tags to the app's actual theme at runtime). The index.html +# meta gets a light + dark pair so browser/PWA chrome matches the phone theme +# natively. KEEP THESE THREE IN SYNC: this sed, custom.css's html:not(.dark) +# background, and custom2.js COOP_BG.light — the green wash #eaf3ea used to sit +# in all three and made the installed app read as green. +RUN sed -i 's|"theme_color": *"#009688"|"theme_color":"#faf8f5"|; s|"background_color": *"#000000"|"background_color":"#faf8f5"|' /app/code/librechat/client/dist/manifest.webmanifest && \ + sed -i 's||\n |' /app/code/librechat/client/dist/index.html # Log ownership guard: a host-side daily job creates the next day's dated log # files in /app/data/logs as root:root at 00:00 UTC; LibreChat (cloudron user) diff --git a/README.md b/README.md index 87643fa..06c044e 100644 --- a/README.md +++ b/README.md @@ -147,14 +147,19 @@ md5sum assets/custom.css # 3. Served HTML carries the injection curl -s https://chat.inference.coop/login | grep -Eo 'assets/custom2?\.js|assets/custom\.css' # 4. Rendered DOM shows it (browser devtools or a browser tool). The DEPLOYED -# palette is the GREEN WASH with white text areas — an earlier version of this -# block asserted cream (rgb(250,248,245)), which would have led you to "fix" -# a correct deploy: -# computed background of div.bg-surface-primary == rgb(234, 243, 234); -# chat text areas / composer == rgb(255, 255, 255); +# palette is CREAM with white text areas — the dashboard's own look. (An +# intermediate version shipped the full green wash #eaf3ea as the page +# background and read as "too green" — cream is the intended value, so this +# block asserts cream; do not "fix" a cream deploy back to the wash): +# computed background of div.bg-surface-primary == rgb(250, 248, 245); +# chat text areas == rgb(255, 255, 255); composer band == cream; # dark scheme == rgb(34, 39, 31); # the "Don't have an account?"

computes display: none. -# 5. The scheduler task's script exists in THIS image — a manifest repoint +# 5. INSTALL-TIME colors, which no DOM check covers — the web manifest and the +# index.html light meta must be #faf8f5, not the wash: +curl -s https://chat.inference.coop/manifest.webmanifest | grep -o '"theme_color":"[^"]*"' +curl -s https://chat.inference.coop/ | grep -o 'media="(prefers-color-scheme: light)" content="[^"]*"' +# 6. The scheduler task's script exists in THIS image — a manifest repoint # deployed before its image lands leaves the key seed broken on schedule: cloudron --server my.inference.coop --token "$CLOUDRON_TOKEN" exec --app $APP \ -- test -f /app/data/sync-keys.js && echo "seed path present" @@ -226,15 +231,17 @@ Set via `cloudron env set` (process env): Injected into the built SPA by the Dockerfile (`` + `