Cloudflare héberge six Workers, D1, les Queues, Analytics Engine et les trois sites Pages. Le workflow crée les ressources manquantes ; tu dois seulement fournir le compte, deux tokens et rattacher les domaines après le premier déploiement.
1. Récupérer l’Account ID
- Connecte-toi à Cloudflare.Ouvre le compte qui hébergera le projet.
- Copie l’Account ID.Il est affiché dans l’aperçu du compte ou dans l’URL du dashboard.
-
Ajoute-le dans GitHub.Crée le Repository secret
CLOUDFLARE_ACCOUNT_ID.
2. Créer le token de déploiement
- Ouvre My Profile → API Tokens.Clique sur Create Token puis Create Custom Token.
-
Nomme-le.Par exemple
zevent-bot-github-deploy. - Ajoute les permissions.Account → Workers Scripts → Edit, D1 → Edit, Workers Queues → Edit et Cloudflare Pages → Edit.
- Limite les ressources.Sélectionne uniquement le compte Cloudflare du projet.
-
Crée et copie le token.Cloudflare ne l’affiche qu’une fois. Enregistre-le dans le secret GitHub
CLOUDFLARE_API_TOKEN.
3. Créer le token Analytics
- Crée un second Custom Token.Ne réutilise pas le token de déploiement dans les Workers.
- Ajoute une seule permission.Account → Account Analytics → Read.
-
Limite-le au même compte.Enregistre sa valeur dans
ANALYTICS_READ_TOKENsur GitHub.
L’API publique et l’API admin utilisent ce token en lecture. Le token de déploiement ne doit jamais être injecté dans une application.
4. Laisser GitHub créer les ressources
Au premier lancement, le workflow prépare automatiquement :
- D1
zevent-botet toutes ses migrations ; - Queues
zevent-notificationsetzevent-notifications-dlq; -
Workers
zevent-discord-bot,zevent-public-api,zevent-admin-api,zevent-source-zevent,zevent-source-gdocetzevent-source-twitch; - projets Pages public, admin et documentation ;
- Durable Objects, Crons et bindings Analytics Engine.
Ne crée pas manuellement CLOUDFLARE_D1_DATABASE_ID : le workflow le découvre et
génère la configuration Wrangler de production.
5. Rattacher les domaines
| Domaine | Type | Ressource |
|---|---|---|
https://bot.zevent.app/ |
Worker Custom Domain | zevent-discord-bot |
https://api.zevent.app/ |
Worker Custom Domain | zevent-public-api |
https://admin-api.zevent.app/ |
Worker Custom Domain | zevent-admin-api |
https://zevent.app/ |
Pages Custom Domain | zevent-bot-site |
https://admin.zevent.app/ |
Pages Custom Domain | zevent-bot-admin |
docs.zevent.app |
Pages Custom Domain | zevent-bot-docs |
- Pour un Worker.Workers & Pages → Worker → Settings → Domains & Routes → Add → Custom Domain.
- Pour Pages.Workers & Pages → projet Pages → Custom domains → Set up a custom domain.
- Après changement.Corrige les variables d’URL GitHub et relance le déploiement complet.
6. Activer Web Analytics
Dans le projet Pages public, ouvre Metrics → Web Analytics et active la mesure. Aucun secret supplémentaire n’est nécessaire. Analytics Engine, utilisé pour les statistiques du bot, est différent de Cloudflare Web Analytics et est configuré par les bindings Wrangler.
7. Vérifier les services
curl https://bot.zevent.app/healthz
curl https://api.zevent.app/healthz
curl https://admin-api.zevent.app/healthz
Les trois commandes doivent retourner une réponse HTTP réussie avant de configurer les endpoints Discord.