G2.3: Windy Git branding — and get it out of one host's disk into the repo
The front end was 100% stock Gitea: green teacup, "Gitea: Git with a cup of tea", "A painless, self-hosted Git service". G2.3 was specified in the plan with an acceptance test and never executed, and nothing enforced it. Now: Windy Git name, wind-mark logo, brand-blue accent, and a landing page that says what this actually is. Uses Gitea's SUPPORTED surface (custom templates + public assets) so upstream upgrades keep arriving — no source modified (D-2/I-1). Two traps this cost, both now documented and tested: 1. GITEA__DEFAULT__APP_NAME does not work. Gitea reads APP_NAME from the TOP LEVEL of app.ini; the env var created a literal [default] section that Gitea ignores, so the installer's stock APP_NAME kept winning while the config looked correct. The env-to-ini pass also APPENDED a second APP_NAME rather than replacing the first — a new variant of the documented G4A.3 trap. 2. Cloudflare caches /assets/* for 6h and no token in this stack can purge, so the new logo and CSS were invisible while being correct at origin. Brand assets now carry a VERSION IN THE FILENAME; bump it on every change. Committed with an idempotent apply.sh, because applying it straight to Veron's disk first was itself the config-drift trap this project documents: a rebuild would have silently reverted to stock Gitea. 85 tests green. Co-Authored-By: Claude (Fable 5) <noreply@anthropic.com>
This commit is contained in:
28
deploy/branding/README.md
Normal file
28
deploy/branding/README.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# Windy Git branding (G2.3)
|
||||
|
||||
Gitea's **supported** customisation surface: custom templates and public assets.
|
||||
No Gitea source is modified, so upstream upgrades keep arriving (D-2, I-1).
|
||||
|
||||
deploy/branding/ → $GITEA_CUSTOM (/data/gitea) in the container
|
||||
→ /srv/windygit/git/gitea/ on Veron 1
|
||||
|
||||
Apply with `./deploy/branding/apply.sh`.
|
||||
|
||||
## Two traps this cost, both worth knowing
|
||||
|
||||
**1. `GITEA__DEFAULT__APP_NAME` does not work.** Gitea reads `APP_NAME` from the
|
||||
*top level* of `app.ini` (before any `[section]`). The env var instead created a
|
||||
literal `[default]` section, which Gitea ignores — and the installer's stock
|
||||
`APP_NAME` kept winning, so the site said "Gitea: Git with a cup of tea" while
|
||||
the config looked correct. Worse, the env-to-ini pass **appended** a second
|
||||
`APP_NAME` rather than replacing the first. `apply.sh` sets it at the top level
|
||||
directly.
|
||||
|
||||
**2. Cloudflare caches `/assets/*` for 6 hours and no token in this stack can
|
||||
purge.** Editing a fixed filename leaves the old bytes live for hours — the new
|
||||
logo and CSS were both invisible while being correct at origin. **Version the
|
||||
filename** (`theme-windy.v2.css`) on every brand change; a `?query` is not
|
||||
enough because some caches ignore it.
|
||||
|
||||
The nav logo is swapped in CSS rather than by overriding Gitea's navbar
|
||||
template — a one-line rule instead of a forked template that would drift.
|
||||
Reference in New Issue
Block a user