Le worker utilise Cloudflare Durable Objects pour le WebSocket temps reel. Chaque "room" de collaboration = 1 Durable Object avec connexions WebSocket persistantes. Les modifications sont broadcastees instantanement (<1 seconde) a tous les collaborateurs.
Le serveur ne voit que des blobs chiffres AES-256-GCM — zero connaissance des donnees.
npm install -g wrangler
wrangler login
→ Ouvre le navigateur, cliquer "Allow"
cd worker/
wrangler kv namespace create ROOMS
→ La commande affiche un ID. Mettre a jour wrangler.toml :
[[kv_namespaces]]
binding = "ROOMS"
id = "VOTRE_ID_ICI"
wrangler deploy
→ Affiche l'URL du worker : https://mg-sync.VOTRE-SOUS-DOMAINE.workers.dev
curl "https://mg-sync.VOTRE-SOUS-DOMAINE.workers.dev/room/test/presence?client=test1"
# Doit retourner : {"count":0}
L'URL du worker est pre-remplie dans MasterGantt (Parametres → Collaboration → Serveur). Pour utiliser votre propre worker, remplacer l'URL.
Apres modification de sync-worker.js :
cd worker/
wrangler deploy
C'est tout — le deploiement prend ~15 secondes.
Compte Cloudflare : steevebecker
Sous-domaine : mastergantt.workers.dev
Worker URL : https://mg-sync.mastergantt.workers.dev
KV namespace ID : c2fe1889c94b4d55ad68f9d244bd812f
Plan : Workers Paid ($5/mois)
| Fichier | Role |
|---|---|
sync-worker.js | Worker principal + Durable Object SyncRoom |
wrangler.toml | Configuration deploiement (KV, DO bindings) |
Client A (navigateur) Cloudflare Worker Client B (navigateur)
| | |
|-- WebSocket connect ------>| |
| |<-- WebSocket connect ----|
| | |
|-- WS: blob chiffre ------->| |
| DO broadcast |
| |---> WS: blob chiffre --->|
| | dechiffre + merge
| | |
| Composant | Plan gratuit | Workers Paid ($5/mois) |
|---|---|---|
| Requetes Worker | 100k/jour | 10M/jour |
| Durable Objects | — | $0.15/million req |
| WebSocket messages | — | $0.50/million msg |
| KV reads | 100k/jour | Illimite |
| KV writes | 1k/jour | Illimite |
Estimation realiste : 10 utilisateurs actifs × 8h = ~$0.05/jour = ~$1.50/mois de surcout.
Pour utiliser sync.mastergantt.com :
sync.mastergantt.comFournir le dossier worker/ — ils deploient sur leur propre compte Cloudflare. Le worker ne voit que des blobs chiffres, aucune donnee en clair.
| Probleme | Solution |
|---|---|
| 500 Internal Error | wrangler tail pour voir les logs en temps reel |
| WebSocket ne se connecte pas | Verifier que le plan est Workers Paid (DO requis) |
| Blobs non recus | Verifier que les 2 clients sont sur la meme room/mot de passe |
| "KV put limit exceeded" | Passer au plan Paid ou attendre le reset quotidien |
| Deploiement echoue | wrangler login pour renouveler le token |
Le serveur par defaut est pret a l'emploi. Deployer votre propre worker ne devient utile que pour des besoins specifiques de souverainete.
Telecharger MasterGantt