Cloudflare Migration — Privat → MQA Organisation
Executive Overview — all summaries for decision-makers.
Status: R2 migriert ✅ · DNS-Migration offen · Priorität: Hoch
Warum
- DNS für
mqa.groupliegt am persönlichen Account → kein Team-Zugang - R2 Bucket
mqa-media+ API Keys gehören organisatorisch zu MQA - Billing, Audit, Offboarding nicht NGO-konform
Scope
| Asset | Aktuell | Ziel |
|---|---|---|
Zone mqa.group | Privat | MQA Cloudflare Org |
R2 Bucket mqa-media | Privat | MQA Org (EU) |
| DNS Records | portal, api, … | 1:1 übernehmen |
| R2 API Keys in Render | Privat-Account | Neu generieren in MQA |
DNS Records (Production)
Vor Migration exportieren (Cloudflare Dashboard → DNS → Export):
| Type | Name | Target | Proxy |
|---|---|---|---|
| CNAME | portal | Render Frontend URL | DNS only (grau) empfohlen |
| CNAME | api | Render Backend URL | DNS only (grau) |
| CNAME | governance | Legacy / Redirect | prüfen |
Wichtig: Proxy-Status (orange vs grau) 1:1 übernehmen — Render SSL bricht bei falscher Proxy-Konfiguration.
Migrations-Schritte
1. Vorbereitung (T-7 Tage)
- [ ] MQA Cloudflare Account + Team anlegen
- [ ] TTL auf 300s senken
- [ ] DNS Export aus Privat-Account
- [ ] R2: Bucket-Inventar dokumentieren
2. MQA-Zone anlegen (T-0)
- [ ] Zone
mqa.groupin MQA-Account hinzufügen - [ ] Nameserver bei Domain-Registrar noch nicht umstellen (parallel testen)
- [ ] Alle Records importieren
- [ ] Staging-Subdomains vorbereiten (optional)
3. R2 Migration ✅ (2026-08-04)
Ergebnis:
| Metrik | Wert |
|---|---|
| Bucket (MQA Org, EU) | mqa-media |
| Account ID | 441f30afc2a4a53d635f9fd3450f75e2 |
| Objekte kopiert | 4 (~404 MiB) |
| Public URL (neu) | https://pub-e40a213d0a4e48019e8d0debf3cfd6a3.r2.dev |
| Public URL (alt, Privat) | https://pub-82f40ef04199453c80f3c9316b0c272c.r2.dev |
Keys in der DB (MediaFile.r2Key) unverändert — Objekte mit identischen Keys kopiert.
Upload: 3 PDFs via wrangler r2 object put; großes Video (401 MiB) via rclone (Wrangler-Limit 300 MiB).
Render: Prod + Staging Backend — R2_*, CF_API_TOKEN auf MQA-Werte gesetzt, Redeploy ausgelöst.
Offen nach R2
- [ ] Media Hub Smoke-Test (Upload + PUBLIC/INTERNAL Download) auf Prod
- [ ] Alte R2-Keys im Privat-Account widerrufen (T+7 Tage)
- [ ] Optional: Custom Domain
media.mqa.groupstattpub-….r2.dev
Referenz-Skript (Archiv): backend/scripts/migrate-r2-to-mqa.mjs
4. DNS Cutover
- [ ] Nameserver auf MQA-Cloudflare umstellen oder Records beim Registrar auf MQA zeigen
- [ ] Propagation prüfen:
dig portal.mqa.group - [ ] Smoke-Tests → DEPLOYMENT-CHECKLIST
5. Aufräumen (T+7 Tage)
- [ ] Alte Zone im Privat-Account entfernen
- [ ] Alte R2 Keys widerrufen
- [ ] ENV-INVENTORY aktualisieren
- [ ] OPS-ROADMAP Phase 1 abhaken
Rollback
Nameserver zurück auf Privat-Account (DNS-Export vorhanden halten).
Verantwortlich
| Rolle | Aufgabe |
|---|---|
| MQA IT | Account, Nameserver, Team-Zugänge |
| Developer | R2 Sync, Render Env, Tests |