From c0260fa55f2bd89a3a9caa23a70e7ba92bff4b45 Mon Sep 17 00:00:00 2001 From: Till Date: Thu, 14 May 2026 20:52:13 +0200 Subject: [PATCH] docs: Cloudflare-TODO (DNS-CNAME + CNAME-Cleanup) + PLAN.md externe Blocker --- PLAN.md | 13 +++++ docs/CLOUDFLARE_TODO.md | 106 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 docs/CLOUDFLARE_TODO.md diff --git a/PLAN.md b/PLAN.md index 2796a16..1886595 100644 --- a/PLAN.md +++ b/PLAN.md @@ -72,6 +72,19 @@ in [`../mana/docs/playbooks/ZITARE_NATIVE_GREENFIELD.md`](../mana/docs/playbooks | ζ-5 | Polish (Theme-Sync, iPad, A11y) | Eine Woche ohne Safari-Tab nutzbar | ⏳ | | ζ-6 | App-Store-Submission | Approved | ⏳ | +## Externe Blocker (nicht von Native-Code lösbar) + +- [ ] **Apple-Dev-Portal: App-Group `group.ev.mana.zitare`** registrieren + — sonst kein macOS-Build und kein Widget auf realem Gerät. Selbe + Aktion wie für cards-/memoro-native nötig. +- [ ] **Cloudflare:** DNS-CNAME für `zitare.com` (Apex) auf + `1435166a-0e3f-4222-8de6-744f32cea5c9.cfargotunnel.com` + proxied. Plus Cleanup des versehentlichen + `zitare.com.mana.how`-CNAME. Vollständige Anleitung in + [`docs/CLOUDFLARE_TODO.md`](docs/CLOUDFLARE_TODO.md). +- [ ] **Forgejo-Repo `git.mana.how/till/zitare-native`** anlegen + + Push — ✅ erledigt 2026-05-14, 5 Commits live. + ## Web-Vorbedingungen (Aufgabe an `../zitare/`) - [ ] AASA-Eintrag auf `https://zitare.com/.well-known/apple-app-site-association` diff --git a/docs/CLOUDFLARE_TODO.md b/docs/CLOUDFLARE_TODO.md new file mode 100644 index 0000000..d9c8b1d --- /dev/null +++ b/docs/CLOUDFLARE_TODO.md @@ -0,0 +1,106 @@ +# Cloudflare-Aufgaben (manuell, browser-basiert) + +Stand 2026-05-14. + +Diese zwei Tasks brauchen Zugang zum **Cloudflare-Dashboard** +(`https://dash.cloudflare.com`) oder einen Cloudflare-API-Token mit +`Zone:DNS:Edit` für die Zone `zitare.com`. Beides ist in der Memory +heute nicht hinterlegt — daher muss das ein Mensch erledigen. + +## Task 1 — DNS-CNAME für `zitare.com` setzen (production-blocker) + +**Symptom:** `dig +short zitare.com @1.1.1.1` → leer. Die Domain ist +in Cloudflare als Zone registriert, aber kein DNS-Record zeigt auf +den cloudflared-Tunnel. Deshalb läuft heute alles über +`zitare.mana.how` (Workaround in `Sources/Core/Auth/AppConfig.swift`, +`webBaseURL = appBaseURL`). + +**Variante A — Dashboard (empfohlen):** + +1. https://dash.cloudflare.com → Zone `zitare.com` → DNS +2. „Add record": + - Type: **CNAME** + - Name: **@** (apex) bzw. **zitare.com** + - Target: **`1435166a-0e3f-4222-8de6-744f32cea5c9.cfargotunnel.com`** + - Proxy status: **Proxied (orange)** + - TTL: Auto +3. Save → Propagation < 60s + +**Variante B — `cloudflared tunnel login` auf dem Mac Mini:** + +Würde einen neuen `cert.pem` erzeugen, der auch für die Zone +`zitare.com` autorisiert ist. Browser-Flow auf dem Mac Mini: + +```bash +ssh mana-server +/opt/homebrew/bin/cloudflared tunnel login +# → Browser öffnet sich, Zone zitare.com auswählen +/opt/homebrew/bin/cloudflared tunnel route dns \ + 1435166a-0e3f-4222-8de6-744f32cea5c9 zitare.com +``` + +**Verifikation nach Setup:** + +```bash +dig +short zitare.com @1.1.1.1 +# → Cloudflare-IPs (188.114.96.x / 97.x) + +curl -sI https://zitare.com/ | head -3 +# → HTTP/2 200, cloudflared liefert zitare-com:3085 aus + +curl -sI https://zitare.com/.well-known/apple-app-site-association | grep -i content-type +# → content-type: application/json +``` + +**Danach im Native-Code:** + +`Sources/Core/Auth/AppConfig.swift` umstellen: + +```swift +- static let webBaseURL = appBaseURL ++ static let webBaseURL = publicWebURL +``` + +Optional: `applinks:zitare.mana.how` aus `project.yml` entfernen, wenn +die Staging-Domain nicht mehr gebraucht wird. Schadet aber nicht, sie +drin zu lassen. + +## Task 2 — Versehentlichen CNAME `zitare.com.mana.how` entfernen + +**Symptom:** `dig +short zitare.com.mana.how @1.1.1.1` → +`188.114.96.12 / 97.12`. Wurde versehentlich am 2026-05-14 angelegt, +als der Versuch `cloudflared tunnel route dns ... zitare.com` mit dem +auf `mana.how` beschränkten Cert lief — cloudflared hat den Hostname +als Subdomain unter `mana.how` interpretiert und einen CNAME angelegt. + +Harmlos (cloudflared-config.yml hat keine Route für +`zitare.com.mana.how`, also würde der Tunnel mit 404 antworten), aber +unsauber. + +**Cleanup:** + +1. https://dash.cloudflare.com → Zone `mana.how` → DNS +2. Filter auf „zitare.com.mana.how" — sollte ein CNAME-Record sein, + Target `…cfargotunnel.com` +3. Edit → Delete + +## Verifikation E2E nach beiden Tasks + +```bash +# 1. zitare.com auflösbar +dig +short zitare.com @1.1.1.1 + +# 2. AASA + index-min.json über zitare.com +curl -sI https://zitare.com/.well-known/apple-app-site-association +curl -sI https://zitare.com/index-min.json + +# 3. Versehentlicher CNAME weg +dig +short zitare.com.mana.how @1.1.1.1 # → leer +``` + +Dann im Simulator: + +```bash +xcrun simctl openurl booted https://zitare.com/q/spitteler-schweizer-bleiben +# → App öffnet auf der Quote-Page (statt Safari) +```