From 3773dcc1f84871e71b9d0ab323b93b224bc8bc2b Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Sat, 25 Apr 2026 18:25:30 +0200 Subject: [PATCH] docs(readme): add placeholder mode section Documents the deploy-placeholder workflow trigger and the recovery path back to the real site via deploy.yml. --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 06899a2..b0067dd 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,12 @@ See `.env.example`. All are `PUBLIC_*` (build-time, embedded in HTML). Rollback: trigger the deploy workflow on the previous `main` commit (Actions UI lets you pick a ref). +### Placeholder mode + +To put the site into "back shortly" mode, trigger Gitea → **Actions → deploy-placeholder → Run workflow**. To bring the real site back, trigger **Actions → deploy → Run workflow** on the desired `main` commit. Both workflows share the `deploy-production` concurrency group, so they can never run simultaneously. + +The placeholder is hand-authored static HTML in `placeholder/` and does NOT depend on `npm`/`astro build` — it is deliberately decoupled from the main build so it can ship even when that build is broken. + **Security headers** (HSTS, CSP, X-Frame-Options, etc.) are owned by **Cloudflare Transform Rules**, not by anything in this repo. Hetzner Webhosting L ignores file-based `.htaccess` (`AllowOverride None`), so origin-side header config is impossible from code. See `OPERATOR-CHECKLIST.md` §2. See [`OPERATOR-CHECKLIST.md`](./OPERATOR-CHECKLIST.md) for the one-time Hetzner + Cloudflare setup.