docs: Cloudflare-TODO (DNS-CNAME + CNAME-Cleanup) + PLAN.md externe Blocker

This commit is contained in:
Till 2026-05-14 20:52:13 +02:00
parent 03e2f041e5
commit c0260fa55f
2 changed files with 119 additions and 0 deletions

13
PLAN.md
View file

@ -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`

106
docs/CLOUDFLARE_TODO.md Normal file
View file

@ -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)
```