Deploy & ops
Deploy = push to main
Section titled “Deploy = push to main”Vercel auto-deploys every push to main (project chivalry3dconfig, team adamduce83’s
projects). There is no manual deploy step.
- Branch or edit, commit, push to
main— that is the deploy. - Watch it: Vercel dashboard →
chivalry3dconfig→ Deployments (appears ~1 min after the push, source = git).
Load-bearing config — do not undo these
Section titled “Load-bearing config — do not undo these”Each of these has bitten us before.
vercel.json→functions.includeFiles: "tenants/**"— without it the serverless functions can’t read the tenant JSON/catalogue files at runtime (they aren’t statically imported, so Vercel’s tracer misses them).middleware.jsmatcher must excludebrand.js— it’s fetched on the gate page before login; if the middleware blocks it, tenants aren’t themed. (Same reasongate.html,api/,vendor/and image types are excluded.)- Per-tenant secrets only, keyed by
_<ENV>. Never add a globalODOO_URLon Vercel — every tenant would push to the wrong Odoo. VIZ_SECRETmust be set — the gate fails closed without it (no one can log in).
Custom domains
Section titled “Custom domains”For a *.goask.com.au subdomain: add the domain in Vercel (Settings → Domains), then a Cloudflare
DNS record — A <sub> 76.76.21.21 (DNS only / grey cloud).
The Odoo backend
Section titled “The Odoo backend”Odoo runs in a separate repo/host:
goask-3d-configurator-odoo — a
Dockerfile (FROM odoo:18) + start.sh, on Railway alongside a Postgres.
- Oz Chivalry:
https://ozchivalry-odoo.up.railway.app— DBchivalry,admin/admin(demo password — secure before real use). - Odoo refuses to run as the Postgres superuser —
start.shcreates a dedicatedodoorole. - Odoo has no
--admin-passwdCLI flag — set the master password via config/env, not a flag. - Products are matched by SKU (
default_code) — seeded codes must match the tenant’scatalog.js.