← MasterGantt
Infrastructure

Leitfaden zur Bereitstellung des MasterGantt Sync-Workers

10 Min. Bereitstellung — April 2026

Architektur

Der Worker nutzt Cloudflare Durable Objects für den Echtzeit-WebSocket. Jeder „Raum" für die Zusammenarbeit entspricht einem Durable Object mit persistenten WebSocket-Verbindungen. Änderungen werden sofort (<1 Sekunde) an alle Mitarbeiter übertragen.

Der Server sieht nur AES-256-GCM-verschlüsselte Blobs — keine Kenntnis der Daten.

Voraussetzungen

Erstinstallation (10 Minuten)

1. Wrangler (Cloudflare-CLI) installieren

npm install -g wrangler

2. Anmelden

wrangler login

→ Öffne den Browser und klicke auf „Allow"

3. KV-Namespace erstellen (Fallback-Speicher)

cd worker/
wrangler kv namespace create ROOMS

→ Der Befehl zeigt eine ID an. Aktualisieren Sie wrangler.toml:

[[kv_namespaces]]
binding = "ROOMS"
id = "IHRE_ID_HIER"

4. Den Worker bereitstellen

wrangler deploy

→ Zeigt die URL des Workers an: https://mg-sync.IHR-SUBDOMAIN.workers.dev

5. Testen

curl "https://mg-sync.IHR-SUBDOMAIN.workers.dev/room/test/presence?client=test1"
# Sollte zurückgeben: {"count":0}

6. MasterGantt konfigurieren

Die URL des Workers ist in MasterGantt bereits vorausgefüllt (Einstellungen → Zusammenarbeit → Server). Um Ihren eigenen Worker zu verwenden, ersetzen Sie die URL.

Worker aktualisieren

Nach der Änderung von sync-worker.js:

cd worker/
wrangler deploy

Das war's schon — die Bereitstellung dauert ca. 15 Sekunden.

Aktuelle Konfiguration (Referenz)

Cloudflare-Konto   : steevebecker
Subdomain          : mastergantt.workers.dev
Worker-URL         : https://mg-sync.mastergantt.workers.dev
KV-Namespace-ID    : c2fe1889c94b4d55ad68f9d244bd812f
Tarif              : Workers Paid ($5/Monat)

Dateien

DateiRolle
sync-worker.jsHaupt-Worker + Durable Object SyncRoom
wrangler.tomlBereitstellungskonfiguration (KV, DO-Bindungen)

Technische Architektur

Client A (Browser)           Cloudflare Worker         Client B (Browser)
     |                            |                          |
     |-- WebSocket connect ------>|                          |
     |                            |<-- WebSocket connect ----|
     |                            |                          |
     |-- WS: encrypted blob ----->|                          |
     |                       DO broadcast                    |
     |                            |---> WS: encrypted blob ->|
     |                            |     entschlüsseln + merge
     |                            |                          |

Kosten

KomponenteKostenloser TarifWorkers Paid ($5/Monat)
Worker-Anfragen100.000/Tag10 Mio./Tag
Durable Objects0,15 $/Mio. Anfragen
WebSocket-Nachrichten0,50 $/Mio. Nachrichten
KV-Lesevorgänge100.000/TagUnbegrenzt
KV-Schreibvorgänge1.000/TagUnbegrenzt

Realistische Schätzung: 10 aktive Nutzer × 8 Std. = ~0,05 $/Tag = ~1,50 $/Monat an zusätzlichen Kosten.

Benutzerdefinierte Domain (optional)

Um sync.mastergantt.com zu verwenden:

  1. Cloudflare-Dashboard → Workers → mg-sync → Triggers
  2. Custom Domain hinzufügen: sync.mastergantt.com
  3. Cloudflare verwaltet DNS + SSL automatisch

Für Kunden, die eine eigene Instanz wünschen

Stellen Sie den Ordner worker/ bereit — sie stellen ihn auf ihrem eigenen Cloudflare-Konto bereit. Der Worker sieht nur verschlüsselte Blobs, keine unverschlüsselten Daten.

Fehlerbehebung

ProblemLösung
500 Internal Errorwrangler tail, um die Logs in Echtzeit anzuzeigen
WebSocket stellt keine Verbindung herÜberprüfen Sie, ob der Tarif Workers Paid ist (DO erforderlich)
Blobs nicht empfangenÜberprüfen Sie, ob beide Clients denselben Raum/dasselbe Passwort verwenden
„KV put limit exceeded"Wechseln Sie zum Paid-Tarif oder warten Sie auf den täglichen Reset
Bereitstellung fehlgeschlagenwrangler login, um das Token zu erneuern
🔒 Datensouveränität: Ob auf Cloudflare oder auf Ihrem eigenen Konto gehostet, der Worker sieht Ihre Daten niemals im Klartext. Der AES-256-GCM-Verschlüsselungsschlüssel liegt ausschließlich bei den Mitarbeitern — nicht beim Server.

Bereit, die Zusammenarbeit auszuprobieren?

Der Standardserver ist einsatzbereit. Die Bereitstellung eines eigenen Workers ist nur bei besonderen Souveränitätsanforderungen sinnvoll.

MasterGantt herunterladen