Runbook — v1 launch-day cutover (2026-05-23 UTC)
Owner: operator Created: 2026-05-15 UTC Execute on: 2026-05-23 UTC (v1 launch day) Related issues: #2180 (SC-D8), #104 (docs epic), #1628 (getraxx noindex)
This runbook collects every one-line edit needed to flip pre-launch guards on launch day. Execute the steps below in order. Each step is a standalone PR that triggers a CI redeploy — no deploy ceremony required beyond merging.
Pre-flight checklist
- [ ] Confirm with operator that launch is proceeding today.
- [ ] Confirm all SC-D* cards for the docs site are merged to main.
- [ ] Verify
https://docs.raxx.app/is serving content (non-404). - [ ] Check deploy freeze status — ensure no active freeze before merging any PR.
bash curl -sI https://console.raxx.app/api/internal/deploy-freeze | grep -i "x-deploy-freeze" - [ ] Have the
getraxx-launch-day-cf-access-removal.mdrunbook open in a separate tab — that step must also run today.
§1 — docs.raxx.app: flip X-Robots-Tag to index, follow
File: frontend/docs/_headers
Time to take effect: ~2 min after CI deploy completes (CF Pages propagation is near-instant)
The one-line edit:
In frontend/docs/_headers, change:
X-Robots-Tag: noindex, nofollow
to:
X-Robots-Tag: index, follow
Full before/after for frontend/docs/_headers:
Before (pre-launch):
/*
X-Robots-Tag: noindex, nofollow
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
After (launch day):
/*
X-Robots-Tag: index, follow
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
Remove the # LAUNCH-DAY FLIP comment block at the bottom of the file as well.
Merge to main. CI workflow deploy-customer-docs.yml triggers automatically
on push to frontend/docs/_headers and redeploys in ~2 min.
Verification:
curl -sI https://docs.raxx.app/ | grep -i x-robots
Expected output:
x-robots-tag: index, follow
§2 — docs.raxx.app: flip <meta name="robots"> in build script
File: scripts/build-customer-docs.py
Note: The CF Pages _headers file (§1 above) takes precedence at the HTTP
layer. This change ensures the HTML meta tag is consistent for any browser or
scraper that reads the page source directly.
In scripts/build-customer-docs.py, in the _HTML_BOILERPLATE string, change:
<meta name="robots" content="noindex, nofollow">
<!-- LAUNCH-DAY FLIP (2026-05-23 UTC): change above to content="index, follow"
See docs/ops/runbooks/launch-day-cutover.md §2 -->
to:
<meta name="robots" content="index, follow">
This can be combined into the same PR as §1.
§3 — getraxx.com: flip X-Robots-Tag to index, follow
File: frontend/getraxx-landing/public/_headers
Note: Also remove the CF Access gate per getraxx-launch-day-cf-access-removal.md
before or alongside this step.
In frontend/getraxx-landing/public/_headers, change:
X-Robots-Tag: noindex, nofollow, noarchive, nosnippet
to:
X-Robots-Tag: index, follow
Also update deploy-getraxx.yml per the instructions in step 5 of
getraxx-launch-day-cf-access-removal.md.
Verification:
curl -sI https://getraxx.com/ | grep -i x-robots
Expected output:
x-robots-tag: index, follow
§4 — Post-cutover verification sweep
After all PRs above are merged and CI deploys have completed:
# docs.raxx.app — confirm indexing header + security headers
curl -sI https://docs.raxx.app/ | grep -i "x-robots\|x-content-type\|referrer"
# getraxx.com — confirm indexing header
curl -sI https://getraxx.com/ | grep -i "x-robots"
# Confirm no CF Access 302 on getraxx
curl -sI https://getraxx.com/ | head -3
Expected:
- docs.raxx.app → x-robots-tag: index, follow
- getraxx.com → x-robots-tag: index, follow, HTTP 200 (not 302)
References
- SC-D8 issue: #2180
- getraxx noindex PR: #1628
- getraxx CF Access removal runbook:
docs/ops/runbooks/getraxx-launch-day-cf-access-removal.md - docs deploy runbook:
docs/ops/runbooks/docs-customer-deploy.md - docs site design doc:
docs/architecture/docs-site-scaffold-2026-05-15.md - CF Pages headers reference:
https://developers.cloudflare.com/pages/configuration/headers/