Six Workers, chacun avec un environnement staging et un environnement production dans son wrangler.jsonc. Le niveau supérieur de chaque configuration correspond à l'environnement de développement local et e2e, et n'est jamais déployé. La liste de contrôle complète, avec les ressources, les liaisons et les secrets, se trouve dans docs/DEPLOY.md.
Environnements
| Worker | Préproduction | Production |
|---|---|---|
| realtime | malla-realtime-staging | malla-realtime |
| api | malla-api-staging | malla-api |
| sites | malla-sites-staging | malla-sites |
| web | malla-web-staging | malla-web |
| runner | malla-runner-staging | malla-runner |
| mcp | malla-mcp-staging | malla-mcp |
Les branches Neon correspondent aux environnements : dev sert la préproduction, main sert la production. Les liaisons de service pointent toujours vers le même environnement.
Mise en production
Secrets
Définissez les secrets de chaque Worker avec
wrangler secret put --env <env>. Les valeurs partagées (clé interne, secret des jetons temps réel) doivent être identiques entre les Workers. Les secrets ne sont jamais définis par des scripts.Migrations
Appliquez
packages/db/migrationsdans l'ordre à la branche Neon de l'environnement avant de déployer une api qui en a besoin. Les migrations vont uniquement vers l'avant.bashread -rs DATABASE_URL && export DATABASE_URL # the branch's connection string pnpm --filter @malla/db db:migrate unset DATABASE_URLDéploiement
Le script construit les packages de l'espace de travail et l'application Nuxt, puis déploie dans l'ordre des dépendances, pour que la cible de chaque liaison de service existe d'abord.
bashpnpm deploy:check # build and validate every Worker, upload nothing pnpm deploy:staging # sh scripts/deploy.sh staging pnpm deploy:production # sh scripts/deploy.sh productionOrdre de déploiement realtimerunnerapimcpsiteswebVérification rapide
Chargez l'application, connectez-vous, ouvrez un site (le socket temps réel se connecte), téléversez une image, publiez en préproduction, soumettez un formulaire, et surveillez le cron de l'api avec
wrangler tail.
Retour arrière
- Un site : les publications sont immuables, donc revenir en arrière consiste à rebasculer le pointeur vers un
publishIdantérieur. Aucun redéploiement. Utilisez Recent publishes dans la fenêtre de publication de l'éditeur, ouPOST /sites/:siteId/rollback; voir Retour arrière. - Un Worker : revenez en arrière avec Wrangler, dans l'ordre inverse du déploiement quand un changement touche plusieurs Workers. Les secrets et les liaisons ne sont pas versionnés avec le code.
- La base de données : créez une branche ou un instantané de
maindans Neon avant une migration risquée ; restaurez-le pour annuler. - Les migrations de Durable Objects ne peuvent pas être annulées ; ne revenez jamais à une version antérieure à l'une d'elles.
(cd apps/<app> && npx wrangler rollback --env <env>)
npx wrangler versions list --env <env>