In one line: the website and all fire-door quotes now run on Cloudflare (Pages + serverless Functions); DNS is on Cloudflare; the domain is registered at 123-reg; email stays on Microsoft 365. Wix is no longer in the path for the domain, DNS, website or email.
| Function | Before | Now |
|---|---|---|
| Website hosting | Wix | Cloudflare Pages (static + serverless Functions) |
| DNS / nameservers | Wix (ns8/ns9.wixdns.net) | Cloudflare (jake / poppy.ns.cloudflare.com) |
| Domain registrar | Wix | 123-reg |
| Fire-door quotes & payments | Wix (Velo + Wix payments) | Cloudflare Pages (static quotes + serverless Stripe checkout) |
| Microsoft 365 (unchanged) | Microsoft 365 (unchanged) |
The migration was done with no downtime: DNS records were pre-staged identically on Cloudflare, so the nameserver cutover was a seamless overlap.
123-REG)jake.ns.cloudflare.com poppy.ns.cloudflare.comRegistrar login is the 123-reg account (also holds amsbm-docs.co.uk). Nameservers must remain the two Cloudflare ones — do not change them or DNS breaks.
0ece22403c49af193e70f60ceae4e751559e7a74f5a55f1c9a394be5a9f67a51| Type | Name | Value | Purpose |
|---|---|---|---|
| CNAME | www | amsbm.pages.dev | Primary website (Cloudflare Pages) |
| CNAME | amsbm.co.uk (apex) | amsbm.pages.dev | Bare domain → 301 redirect to www |
| Type | Name | Value |
|---|---|---|
| MX | amsbm.co.uk | amsbm-co-uk.mail.protection.outlook.com (pri 10) |
| TXT (SPF) | amsbm.co.uk | v=spf1 include:spf.protection.outlook.com -all |
| TXT | amsbm.co.uk | MS=ms26803028 (M365 domain verification) |
| TXT | _dmarc | DMARC policy |
| CNAME | autodiscover | autodiscover.outlook.com |
| CNAME | selector1 / selector2 ._domainkey | M365 DKIM (…onmicrosoft.com) |
| CNAME | msoid / enterpriseenrollment / enterpriseregistration | M365 / Intune endpoints |
| CNAME / SRV | lyncdiscover / sip / _sip._tls / _sipfederationtls._tcp | Teams / Skype for Business |
| TXT | amsbm.co.uk | google-site-verification=… (Search Console) |
| Type | Name | Value | |
|---|---|---|---|
| A | make-a-payment | 79.170.44.218 | external service |
| A | quickquote | 79.170.44.218 | external service |
| A | beta | 91.212.182.95 | external service |
| CNAME | s1/s2/sel1/sel2 ._domainkey, sg, en, m | Wix (Ascend/legacy) | retire-able |
The Wix-legacy records (last row) relate to old Wix email/marketing and can be removed once confirmed unused.
amsbm (default URL amsbm.pages.dev)www.amsbm.co.uk (primary) & amsbm.co.uk (apex, redirects to www)\\amssrv01\c$\AM Apps\site-preview (on the office server)The site is a static build (hand-maintained HTML/CSS/assets) plus a set of Pages Functions (serverless code running on Cloudflare's edge):
| Function | Role |
|---|---|
functions/_middleware.js | 301-redirects the bare apex to www |
functions/q/[[path]].js, functions/qc/[[path]].js | Serve fire-door quote pages; normalise any legacy quote URL (incl. old %2F/dotted refs) to a clean slug |
functions/api/checkout.js | Creates the Stripe Checkout session for a quote |
functions/api/confirm.js | Verifies the paid session, sends the customer receipt + internal alert emails, de-duplicates |
Edit files under site-preview, then from that folder run:
wrangler pages deploy . --project-name amsbm --branch production
Must be run from inside site-preview so the Functions compile. Requires env vars CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID. A scoped API token is held securely on the server for deployments (ask Matt for its current location). Recommend rotating it and keeping it in your own secrets manager.
amsbm.co.uk/q/{reference} — the same URLs customers were originally sent, so every existing quote link still works.\\amssrv01\c$\AM Apps\amfiredoors\data\quotes.json; pages are generated by prerender-quotes.js and a bundled data file feeds the payment Functions.noindex (contain customer PII).[email protected] via the Microsoft Graph API.Payment/email secrets live as encrypted environment variables on the Cloudflare Pages project (Settings → Variables): the Stripe secret key and the Microsoft Graph tenant/client/secret + sender config. They are also mirrored in a protected .env.local file on the server. No secrets are stored in the website source.
Windows Server 2012 R2. It is no longer required to serve the public website or take payments (those are fully on Cloudflare). Its remaining roles:
site-preview) and the quote data, and is where Wrangler deploys run from./book-online meeting types, and sends the meeting-booking confirmation emails.AMFireDoorsServer, port 8099) is now redundant and can be retired.site-preview/_redirects): 133 old Wix URLs 301-redirect to their new pages — no broken links from historic links or search results.www.amsbm.co.uk; the bare domain 301s to it.www.amsbm.co.uk/sitemap.xml submitted to Google Search Console (same property; no address change needed)./book-online) send a branded confirmation email alongside the Microsoft Bookings calendar invite.| System | What / where |
|---|---|
| Cloudflare | Account [email protected] — DNS, Pages, SSL, the API token |
| 123-reg | Registrar account — domain renewal & nameservers |
| Stripe | AM's live account — fire-door payments |
| Microsoft 365 | Email/DNS records source of truth; firedoors@ send-as; Graph app registration |
| Office server | amssrv01 — site source, deploy origin, WebServe app |