← MasterGantt
Infrastructure

Guide de deploiement du worker MasterGantt Sync

10 min de deploiement — Avril 2026

Architecture

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.

Prerequis

Deploiement initial (10 minutes)

1. Installer Wrangler (CLI Cloudflare)

npm install -g wrangler

2. Se connecter

wrangler login

→ Ouvre le navigateur, cliquer "Allow"

3. Creer le KV namespace (stockage fallback)

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"

4. Deployer le worker

wrangler deploy

→ Affiche l'URL du worker : https://mg-sync.VOTRE-SOUS-DOMAINE.workers.dev

5. Tester

curl "https://mg-sync.VOTRE-SOUS-DOMAINE.workers.dev/room/test/presence?client=test1"
# Doit retourner : {"count":0}

6. Configurer MasterGantt

L'URL du worker est pre-remplie dans MasterGantt (Parametres → Collaboration → Serveur). Pour utiliser votre propre worker, remplacer l'URL.

Mise a jour du worker

Apres modification de sync-worker.js :

cd worker/
wrangler deploy

C'est tout — le deploiement prend ~15 secondes.

Configuration actuelle (reference)

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)

Fichiers

FichierRole
sync-worker.jsWorker principal + Durable Object SyncRoom
wrangler.tomlConfiguration deploiement (KV, DO bindings)

Architecture technique

Client A (navigateur)        Cloudflare Worker         Client B (navigateur)
     |                            |                          |
     |-- WebSocket connect ------>|                          |
     |                            |<-- WebSocket connect ----|
     |                            |                          |
     |-- WS: blob chiffre ------->|                          |
     |                       DO broadcast                    |
     |                            |---> WS: blob chiffre --->|
     |                            |          dechiffre + merge
     |                            |                          |

Couts

ComposantPlan gratuitWorkers Paid ($5/mois)
Requetes Worker100k/jour10M/jour
Durable Objects$0.15/million req
WebSocket messages$0.50/million msg
KV reads100k/jourIllimite
KV writes1k/jourIllimite

Estimation realiste : 10 utilisateurs actifs × 8h = ~$0.05/jour = ~$1.50/mois de surcout.

Domaine custom (optionnel)

Pour utiliser sync.mastergantt.com :

  1. Dashboard Cloudflare → Workers → mg-sync → Triggers
  2. Ajouter Custom Domain : sync.mastergantt.com
  3. Cloudflare gere DNS + SSL automatiquement

Pour les clients qui veulent leur propre instance

Fournir le dossier worker/ — ils deploient sur leur propre compte Cloudflare. Le worker ne voit que des blobs chiffres, aucune donnee en clair.

Troubleshooting

ProblemeSolution
500 Internal Errorwrangler tail pour voir les logs en temps reel
WebSocket ne se connecte pasVerifier que le plan est Workers Paid (DO requis)
Blobs non recusVerifier 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 echouewrangler login pour renouveler le token
🔒 Souverainete des donnees : Meme heberge chez Cloudflare ou sur votre propre compte, le worker ne voit jamais vos donnees en clair. La cle de chiffrement AES-256-GCM est detenue uniquement par les collaborateurs — pas par le serveur.

Pret a essayer la collaboration ?

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