74 lines
3.5 KiB
Markdown
74 lines
3.5 KiB
Markdown
# 3031023.xyz Worker cutover runbook
|
|
|
|
## Scope and safety boundary
|
|
|
|
This runbook moves only the Happy Tails apex site to the separately deployed
|
|
static Worker `3031023-xyz`. It does not change the sign-up flow, n8n, the
|
|
onboarding Worker, blog hosting, or any other site.
|
|
|
|
The Pages project `3031023-xyz` remains available as the immediate rollback
|
|
target until the new apex deployment has been accepted.
|
|
|
|
Routine preview and candidate jobs never create, delete, or change DNS records,
|
|
custom domains, routes, or redirect rules. The candidate workflow only deploys
|
|
static assets to a distinct Worker.
|
|
|
|
## Pre-cutover record
|
|
|
|
- Existing rollback project: Cloudflare Pages `3031023-xyz`.
|
|
- Existing active custom domain: `3031023.xyz`.
|
|
- Existing Pages production deployment: `2fb1b659-5928-4470-bb04-ef4c9105b843`
|
|
from the `main` branch.
|
|
- Preview Worker: `3031023-xyz-www-preview`, with no custom domains or routes.
|
|
- Production candidate Worker: `3031023-xyz-www`, deployed only through the
|
|
dedicated `Deploy primary production Worker candidate` workflow. Its push
|
|
trigger is limited to changes to that workflow file; ordinary site commits
|
|
cannot update this Worker.
|
|
|
|
## Cutover sequence (requires separate approval)
|
|
|
|
1. Confirm the candidate Worker deployment completed and record its version ID.
|
|
2. Verify its workers.dev URL for status, titles, static 404, mobile navigation,
|
|
sitemap, robots, and security headers.
|
|
3. In Cloudflare, remove `3031023.xyz` from the Pages project only after the
|
|
candidate is verified. Do not delete the Pages project or its deployment.
|
|
4. Attach `3031023.xyz` as the custom domain for the production Worker.
|
|
5. Attach `www.3031023.xyz` to the same Worker and create a Cloudflare Redirect
|
|
Rule for `www.3031023.xyz/*` to the matching `https://3031023.xyz/*` URL.
|
|
This preserves the apex canonical policy without adding hostname-routing
|
|
Worker code.
|
|
6. Re-run the production verification checklist and leave the Pages project in
|
|
place during the acceptance window.
|
|
|
|
## Rollback
|
|
|
|
1. Remove the custom domains from the production Worker and disable the `www`
|
|
redirect rule.
|
|
2. Restore `3031023.xyz` to the unchanged Pages project `3031023-xyz`.
|
|
3. Verify the known Pages deployment at its Pages URL and then at the apex.
|
|
|
|
The cutover operator records the actual Worker version ID, rule ID, time, and
|
|
verification results in the migration plan after acceptance.
|
|
|
|
## Cutover record — 2026-09-02
|
|
|
|
- Source commit: `d431e6a` (the approved candidate deployment itself is
|
|
version `7dafcabd`).
|
|
- Pages custom-domain binding removed: `3031023.xyz` was detached from Pages;
|
|
the Pages project and its `3031023-xyz.pages.dev` rollback URL were retained.
|
|
- Worker custom-domain binding added: `3031023.xyz` is attached only to
|
|
`3031023-xyz-www`.
|
|
- Canonical redirect: a proxied `www` CNAME points to `3031023.xyz`; active
|
|
redirect rule `2a0783532f464384beda9a0344352861` issues a 301 to the matching
|
|
apex path and preserves query strings.
|
|
- External verification: apex Home and Services return 200; `www` returns the
|
|
expected 301; the static 404 returns 404; production robots and sitemap are
|
|
reachable; and the Pages rollback URL returns 200.
|
|
|
|
### Acceptance follow-up
|
|
|
|
Cloudflare is appending its managed content-signals section to `robots.txt`.
|
|
That section currently disallows several AI crawlers (including Google-Extended
|
|
and GPTBot). This was an existing zone-level setting and was not changed during
|
|
the cutover. Review it with the site's AI-search policy before final acceptance.
|