Runbooks OrbitRunbook — Changer de domaine

Runbook — Changer de domaine


title: Runbook — Changer de domaine description: Procédure pour changer le domaine d’Orbit : un seul fichier de code, de la configuration et du DNS.

Orbit vit aujourd'hui sur orbit.easyconnector.app (app, API, MCP) et docs.easyconnector.app (docs). Le domaine n'est écrit qu'à un seul endroit du code : apps/web/src/config/domains.ts. Le test apps/web/src/test/domains.test.ts refuse qu'on l'écrive ailleurs.

Changer de domaine est donc une affaire de configuration. Compte une journée, surtout pour le DNS et la vérification.

1. Préparer (avant le jour J)

  • Acheter le domaine, le placer chez le registrar de ton choix.
  • Vercel → projet Orbit → Domains : ajouter orbit.ai (et www.orbit.ai en redirection), suivre les enregistrements DNS demandés.
  • Resend : ajouter le domaine d'envoi (orbit.ai) et ses enregistrements SPF / DKIM ; attendre « Verified ».
  • Documentation.AI : ajouter le domaine personnalisé docs.orbit.ai.
  • Stripe (compte Orbit) : préparer la nouvelle URL des webhooks (https://orbit.ai/api/webhooks/stripe) sans supprimer l'ancienne.

2. Le changement (une PR)

  1. apps/web/src/config/domains.ts : CANONICAL_APP_ORIGIN = "https://orbit.ai", DOCS_ORIGIN = "https://docs.orbit.ai".
  2. Les données qui citent le domaine (hors code) : l'expéditeur des e-mails (products/connectors.json, mailer.config.from), les valeurs par défaut des gabarits de rendu (templates.json, champ CTA) et les fichiers de marque (products/orbit/design/orbit.assets.json). grep -rn "easyconnector.app" products apps/web/src packages les liste.
  3. Les docs (docs.easyconnector.app → docs.orbit.ai) et AGENTS.md (section « Canonical URLs »).
  4. pnpm check, pnpm build, pnpm e2e, puis merge.

3. Le jour J (Vercel, sans CLI)

  • Variables d'environnement de production :
    • ORBIT_PUBLIC_URL=https://orbit.ai
    • NEXTAUTH_URL=https://orbit.ai
    • ORBIT_PREVIOUS_ORIGINS=https://orbit.easyconnector.app : les jetons OAuth / MCP émis pour l'ancien domaine restent valides pendant la transition, et les liens vers lui restent « à nous ».
  • Redéployer, puis dans Domains : orbit.easyconnector.app redirige en 308 vers orbit.ai (le référencement suit).

4. Ce que vivent les utilisateurs

  • Connexion : les sessions sont liées au domaine. Chacun se reconnecte une fois avec son code. Rien n'est perdu.
  • Clés API orb_… : inchangées, elles ne dépendent pas du domaine.
  • Clients MCP (Claude, ChatGPT, plateformes tierces) : ils continuent de fonctionner tant que ORBIT_PREVIOUS_ORIGINS contient l'ancien domaine ; prévenir qu'il faudra mettre à jour l'adresse du serveur (https://orbit.ai/api/mcp) et reconnecter.

5. Plus tard (quelques mois après)

Quand plus aucun client n'appelle l'ancien domaine (journaux Vercel), vider ORBIT_PREVIOUS_ORIGINS, garder la redirection 308 aussi longtemps que possible.