Release v0.9.6, deploy it, and submit both pages to Google and Bing #217

Open
opened 2026-09-10 04:13:32 -05:00 by null · 2 comments
Owner

Ships Batch 17 and Batch 18 together.

Order, and why it matters.

  1. Build git archive HEAD in a scratch directory first. docker build . packs the working tree, so an image can work while its tagged commit cannot build.
  2. npm run release -- --dry-run, then npm run release (0.9.5 to 0.9.6).
  3. npm run deploy -- --tag v0.9.6 --dry-run, then the deploy, only with Null's explicit go. It recreates the production container and both front doors (queuenorth.com and qn.isnull.dev) go down together.
  4. Live checks: node scripts/audit-html.js --url against both origins (once per crawler: OAI-SearchBot, PerplexityBot, ClaudeBot, Googlebot, bingbot), qa-browser against production, the running image digest equals the one release.sh pushed, and the sitemap carries lastmod values.
  5. Google Search Console: Test Live URL, then Request Indexing, for both pages. Bing Webmaster Tools: submit both URLs. Bing's index also feeds Copilot and ChatGPT search.

Why owner-input. Step 3 needs Null's go, and step 5 needs whoever holds the Search Console and Bing accounts, Null or Levi.

Verify: bash scripts/status.sh --deployed-version prints 0.9.6, node scripts/audit-html.js --url https://queuenorth.com exits 0, and both URLs show as submitted in Search Console and Bing Webmaster Tools.

Ships Batch 17 and Batch 18 together. **Order, and why it matters.** 1. Build `git archive HEAD` in a scratch directory first. `docker build .` packs the working tree, so an image can work while its tagged commit cannot build. 2. `npm run release -- --dry-run`, then `npm run release` (0.9.5 to 0.9.6). 3. `npm run deploy -- --tag v0.9.6 --dry-run`, then the deploy, **only with Null's explicit go**. It recreates the production container and both front doors (queuenorth.com and qn.isnull.dev) go down together. 4. Live checks: `node scripts/audit-html.js --url` against both origins (once per crawler: OAI-SearchBot, PerplexityBot, ClaudeBot, Googlebot, bingbot), qa-browser against production, the running image digest equals the one release.sh pushed, and the sitemap carries `lastmod` values. 5. Google Search Console: Test Live URL, then Request Indexing, for both pages. Bing Webmaster Tools: submit both URLs. Bing's index also feeds Copilot and ChatGPT search. **Why owner-input.** Step 3 needs Null's go, and step 5 needs whoever holds the Search Console and Bing accounts, Null or Levi. Verify: `bash scripts/status.sh --deployed-version` prints 0.9.6, `node scripts/audit-html.js --url https://queuenorth.com` exits 0, and both URLs show as submitted in Search Console and Bing Webmaster Tools.
null added this to the Batch 17: Long-form Unified Communications and Contact Center pages milestone 2026-09-10 04:13:32 -05:00
null added the
infra
owner-input
seo
labels 2026-09-10 04:13:32 -05:00
Author
Owner

Released and deployed on 2026-09-10. What is done, and what is not.

Done. v0.9.6 published to the registry and deployed to Portainer stack 58, moving production from v0.9.5. The deploy took a verified database backup first (28.0 KiB, 2 tables), preserved all 12 stack environment variables, and both front doors answered afterwards.

Live evidence:

  • /services/unified-communications serves the approved title, H1 and 164-character description, 12 h2 and 11 section anchors, 1,152 words.
  • /services/contact-center serves its approved title, H1 and 191-character description, 14 h2 and 13 anchors, 2,529 words, with no 99.999% claim.
  • bash scripts/status.sh reports running, healthy, image v0.9.6, version 0.9.6, restarts 0.
  • node scripts/audit-html.js --url https://queuenorth.com exits 0 across all 18 pages as OAI-SearchBot, PerplexityBot, ClaudeBot, Googlebot and bingbot.
  • The sitemap carries 18 lastmod entries, where it carried none this morning.

Not done, and this issue stays open for it: submitting both URLs to Google Search Console (Test Live URL, then Request Indexing) and to Bing Webmaster Tools. Both need account access that this session does not have. Bing matters as much as Google here, since its index feeds Copilot and ChatGPT search.

Two findings from the deploy itself are filed separately: #236 (deploy.sh printed the digest and version from before the recreate, so a successful deploy read as a no-op) and #237 (Cloudflare rewrites the privacy email on the second front door).

Released and deployed on 2026-09-10. What is done, and what is not. **Done.** v0.9.6 published to the registry and deployed to Portainer stack 58, moving production from v0.9.5. The deploy took a verified database backup first (28.0 KiB, 2 tables), preserved all 12 stack environment variables, and both front doors answered afterwards. Live evidence: - `/services/unified-communications` serves the approved title, H1 and 164-character description, 12 h2 and 11 section anchors, 1,152 words. - `/services/contact-center` serves its approved title, H1 and 191-character description, 14 h2 and 13 anchors, 2,529 words, with no 99.999% claim. - `bash scripts/status.sh` reports running, healthy, image v0.9.6, version 0.9.6, restarts 0. - `node scripts/audit-html.js --url https://queuenorth.com` exits 0 across all 18 pages as OAI-SearchBot, PerplexityBot, ClaudeBot, Googlebot and bingbot. - The sitemap carries 18 lastmod entries, where it carried none this morning. **Not done, and this issue stays open for it:** submitting both URLs to Google Search Console (Test Live URL, then Request Indexing) and to Bing Webmaster Tools. Both need account access that this session does not have. Bing matters as much as Google here, since its index feeds Copilot and ChatGPT search. Two findings from the deploy itself are filed separately: #236 (deploy.sh printed the digest and version from before the recreate, so a successful deploy read as a no-op) and #237 (Cloudflare rewrites the privacy email on the second front door).
Author
Owner

Release and deploy are done, at v0.9.8 rather than the v0.9.6 this issue was written against: 0.9.6 never went out before Batch 19 landed, and deploying it would have put the header, Cisco logo and tap-target defects live alongside the wording change.

Deployed from 0e47183 to Portainer stack 58. Checked independently of deploy.sh, which reported 0.9.6 -> 0.9.6 and an unchanged digest because of #236:

  • scripts/status.sh: qn-website-dev healthy on v0.9.8, 0 restarts, image id 62d076e3800d, which is the id of the image release.sh built
  • both front doors answer {"status":"ok","db":"ok"}
  • node scripts/audit-html.js --url https://queuenorth.com: 18 pages as all 5 crawlers, nothing wrong
  • node scripts/device-sweep.mjs --url https://queuenorth.com: 190 page loads across 10 devices, zero findings
  • 18 sitemap entries carry a lastmod
  • qn.isnull.dev reports one finding, the already-filed #237

What is left is the half that needs an account: submitting both service URLs to Google Search Console (Test Live URL, then Request Indexing) and to Bing Webmaster Tools. Staying open for that.

Release and deploy are done, at v0.9.8 rather than the v0.9.6 this issue was written against: 0.9.6 never went out before Batch 19 landed, and deploying it would have put the header, Cisco logo and tap-target defects live alongside the wording change. Deployed from 0e47183 to Portainer stack 58. Checked independently of deploy.sh, which reported `0.9.6 -> 0.9.6` and an unchanged digest because of #236: - `scripts/status.sh`: qn-website-dev healthy on v0.9.8, 0 restarts, image id 62d076e3800d, which is the id of the image release.sh built - both front doors answer `{"status":"ok","db":"ok"}` - `node scripts/audit-html.js --url https://queuenorth.com`: 18 pages as all 5 crawlers, nothing wrong - `node scripts/device-sweep.mjs --url https://queuenorth.com`: 190 page loads across 10 devices, zero findings - 18 sitemap entries carry a lastmod - qn.isnull.dev reports one finding, the already-filed #237 What is left is the half that needs an account: submitting both service URLs to Google Search Console (Test Live URL, then Request Indexing) and to Bing Webmaster Tools. Staying open for that.
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: null/Queue-North-Website#217
No description provided.