DEPLOY.md korrigiert: echte Seite laeuft auf Netcup, nicht auf Cloudflare
Die Anleitung nannte als Deploy-Weg weiterhin "npx wrangler deploy". Das ist seit dem oeffentlichen Start (21.08.2026) falsch und aktiv gefaehrlich: der Befehl laeuft fehlerfrei durch und meldet Erfolg, erreicht aber nur noch ...workers.dev. Die echte Domain wird von Caddy auf dem Netcup-Server ausgeliefert (dogiweb.service, localhost:4100). Genau darauf bin ich heute beim Sprachfenster-Fix hereingefallen -- Deploy "erfolgreich", auf dem Handy aber unveraendert kaputt. Neu dokumentiert: der einzige gueltige Weg (commit -> push gitea master:main -> git pull auf dem Server), die Zweig-Falle master/main, die Pflichtpruefung gegen die echte Domain statt gegen die Deploy-Meldung, warum die wrangler-Fehlermeldung "externally managed DNS records" erwuenscht ist, und als offener Punkt: mehrere live benutzte Hintergrundbilder liegen in keiner Git-Ablage. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -1,70 +1,110 @@
|
|||||||
# DOGFATHER UNIVERSE — Go-Live-Anleitung
|
# DOGFATHER UNIVERSE — Go-Live-Anleitung
|
||||||
|
|
||||||
## ✅ Status: bereits live, eigene Domain seit 03.08.2026 angeschlossen
|
## ⚠️ ZUERST LESEN: Die echte Seite läuft auf dem NETCUP-SERVER, nicht auf Cloudflare
|
||||||
|
|
||||||
Die Website läuft — kostenlos, auf deinem eigenen Cloudflare-Account, unter drei Adressen
|
Seit dem öffentlichen Start (21.08.2026) wird `dogfather-universe.com` vom **eigenen
|
||||||
gleichzeitig (alle zeigen auf denselben Worker):
|
Netcup-Server** ausgeliefert. Der alte Cloudflare-Worker existiert zwar noch und lässt sich
|
||||||
|
auch weiterhin deployen — **er erreicht die echte Domain aber nicht mehr.**
|
||||||
|
|
||||||
- **Eigene Domain:** https://dogfather-universe.com
|
Das ist die gefährlichste Stelle im ganzen Projekt: `npx wrangler deploy` läuft ohne Fehler
|
||||||
- **www-Variante:** https://www.dogfather-universe.com
|
durch und meldet „Deployed", die Änderung ist danach auf `…workers.dev` sichtbar — und auf
|
||||||
- **workers.dev (bleibt zusätzlich aktiv):** https://dogfather-universe.dogfather1608.workers.dev
|
`dogfather-universe.com` passiert **nichts**. Genau so ist es am 22.08.2026 beim Sprachfenster-
|
||||||
- **Bewerbungs-Postfach-Worker:** https://dogfather-universe-postfach.dogfather1608.workers.dev
|
Fix passiert (siehe unten). Wer nur die Erfolgsmeldung von Wrangler liest, meldet „ist live",
|
||||||
|
obwohl Filipe auf dem Handy weiterhin den kaputten Stand sieht.
|
||||||
|
|
||||||
Domain-Anbindung lief über `routes` mit `custom_domain = true` in `wrangler.toml` — da die Zone
|
| Adresse | Läuft wo | Wird von wo beliefert |
|
||||||
`dogfather-universe.com` schon vorher auf Cloudflare lag, waren DNS + SSL-Zertifikat sofort beim
|
|---|---|---|
|
||||||
Deploy automatisch aktiv, kein manueller DNS-Schritt nötig. Alle
|
| **`dogfather-universe.com`** ← **die echte Seite** | **Netcup**, Caddy → `localhost:4100`, systemd-Dienst `dogiweb.service`, Verzeichnis `/home/dogiweb/dogfather-universe/` | Gitea `git.dogfather-universe.com/DogFatherGit/dogfather-universe`, Zweig `main` |
|
||||||
`REPLACE-WITH-YOUR-DOMAIN.tld`-Platzhalter im Code sind bereits durch die echte Domain ersetzt
|
| `www.dogfather-universe.com` | dasselbe (Caddy nimmt beide Namen) | dasselbe |
|
||||||
(Social-Media-Vorschaubilder, Sitemap, robots.txt).
|
| `dogfather-universe.dogfather1608.workers.dev` | Cloudflare Worker (Altbestand) | `npx wrangler deploy` |
|
||||||
|
|
||||||
**Noch offen:** `assets/img/og-cover.jpg` (1200×630px Social-Preview-Bild) fehlt noch — optional,
|
Erkennungsmerkmal im Zweifel: `curl -sI https://dogfather-universe.com/ | grep -i via`
|
||||||
nicht blockierend. CORS im Postfach-Worker ist weiterhin bewusst offen (`"*"`) statt auf die
|
→ zeigt `via: 1.1 Caddy`, also Netcup. Käme die Seite von Cloudflare, stünde da kein Caddy.
|
||||||
Domain eingeschränkt, siehe TODO-Kommentar in `cloudflare-worker/src/lib/http.js` (eigener,
|
|
||||||
größerer Umbau nötig, um keine Login-/Zahlungsendpunkte zu riskieren).
|
|
||||||
|
|
||||||
## Änderungen künftig live schalten
|
## So wird eine Änderung wirklich live (der einzige gültige Weg)
|
||||||
|
|
||||||
Jede Änderung an den Dateien im Ordner `DogiHompage/` wird erst live, wenn erneut deployed
|
|
||||||
wird:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd DogiHompage
|
cd ~/Documents/Obelix/DogiHompage
|
||||||
npx wrangler deploy
|
# 1. Änderung committen
|
||||||
|
git add <dateien> && git commit
|
||||||
|
# 2. In die Ablage schieben (Gitea ist die Quelle der Wahrheit)
|
||||||
|
git push gitea master:main
|
||||||
|
# 3. Auf dem Server holen
|
||||||
|
ssh dogfather-server "cd /home/dogiweb/dogfather-universe && git pull --ff-only origin main"
|
||||||
```
|
```
|
||||||
|
|
||||||
Für Änderungen am Bewerbungs-Postfach-Worker selbst (`cloudflare-worker/src/worker.js`):
|
Statische Dateien (HTML/CSS/JS/Bilder) sind damit **sofort** live — der Express-Dienst liefert
|
||||||
|
das Verzeichnis direkt aus, ein Neustart ist dafür **nicht** nötig.
|
||||||
|
|
||||||
|
Nur wenn Server-Code geändert wurde (`server/`, `server-internal/`):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd DogiHompage/cloudflare-worker
|
ssh dogfather-server "sudo systemctl restart dogiweb.service" # öffentliche Seite
|
||||||
npx wrangler deploy
|
ssh dogfather-server "sudo systemctl restart dogiintern.service" # interner Bereich
|
||||||
```
|
```
|
||||||
|
|
||||||
## Alternative Hosting-Optionen (falls du weg von Cloudflare willst)
|
**Achtung bei Zweig-Namen:** lokal heißt der Zweig `master`, auf dem Server und in Gitea `main`.
|
||||||
|
Deshalb `master:main` beim Push. Ein blankes `git push` schiebt sonst nach `gitea/master` —
|
||||||
|
einen alten, abgehängten Zweig, den niemand ausliefert.
|
||||||
|
|
||||||
Die Seite ist reines statisches HTML/CSS/JS und läuft überall. Configs liegen bereit:
|
## Pflicht-Prüfung nach JEDEM Deploy
|
||||||
|
|
||||||
- **Netlify:** `netlify.toml` liegt vor — Ordner `DogiHompage/` auf netlify.com hochladen
|
Nicht auf die Erfolgsmeldung des Deploy-Befehls verlassen, sondern **die echte Domain fragen**:
|
||||||
oder Repo verbinden.
|
|
||||||
- **GitHub Pages:** `.nojekyll` liegt vor — Repo pushen, unter **Settings → Pages** aktivieren.
|
|
||||||
|
|
||||||
In beiden Fällen bleibt der Bewerbungs-Postfach-Worker unabhängig auf Cloudflare bestehen (er ist
|
|
||||||
eine reine API, kein Teil des Frontends) — `API_BASE_URL` in `assets/js/forms.js`, `index.html`
|
|
||||||
und `postfach.html` zeigt bereits dorthin.
|
|
||||||
|
|
||||||
## Git-Repo
|
|
||||||
|
|
||||||
Bereits eingerichtet (`DogiHompage/.git`), erster Commit vorhanden. Bei Bedarf zu GitHub
|
|
||||||
pushen:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd DogiHompage
|
# Kommt meine Änderung wirklich auf der Seite an, die Filipe benutzt?
|
||||||
git remote add origin <repo-url>
|
curl -s https://dogfather-universe.com/assets/css/main.css | grep "<mein Merkmal>"
|
||||||
git push -u origin main
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Nach jedem Go-Live-Schritt prüfen
|
Erst wenn das anschlägt, gilt eine Änderung als erledigt. Bei optischen Änderungen zusätzlich
|
||||||
|
mit einem echten Browser im Handy-Format nachsehen (Playwright, Viewport 390×844) und einen
|
||||||
|
Screenshot machen — Text im Quelltext beweist noch nicht, dass es auch richtig aussieht.
|
||||||
|
|
||||||
- [ ] Website lädt: https://dogfather-universe.dogfather1608.workers.dev
|
## Der Cloudflare-Worker (Altbestand)
|
||||||
- [ ] Bewerbungsformular sendet erfolgreich (im Postfach zeigt sich ein neuer Eintrag)
|
|
||||||
- [ ] Live-Punkt auf der Startseite reagiert auf den Toggle im Postfach
|
Bleibt vorerst bestehen, liefert aber nur noch `…workers.dev` aus. Ein Deploy dorthin ändert
|
||||||
- [ ] Nach Domain-Wechsel: Link-Vorschau testen, z.B. mit dem
|
an der echten Seite nichts. Der Versuch, die Domain per `wrangler` wieder anzubinden, schlägt
|
||||||
[Facebook Sharing Debugger](https://developers.facebook.com/tools/debug/)
|
bewusst fehl:
|
||||||
|
|
||||||
|
```
|
||||||
|
Hostname 'dogfather-universe.com' already has externally managed DNS records
|
||||||
|
```
|
||||||
|
|
||||||
|
Das ist **kein Fehler, den man beheben sollte** — es ist die Schutzwirkung davon, dass die
|
||||||
|
Domain jetzt auf Netcup zeigt. `routes` mit `custom_domain = true` steht deshalb nur noch aus
|
||||||
|
historischen Gründen in `wrangler.toml`.
|
||||||
|
|
||||||
|
Der Bewerbungs-Postfach-Worker ist davon unabhängig und läuft weiter auf Cloudflare:
|
||||||
|
`https://dogfather-universe-postfach.dogfather1608.workers.dev` (`API_BASE_URL` in
|
||||||
|
`assets/js/forms.js`, `index.html`, `postfach.html`).
|
||||||
|
|
||||||
|
## Git-Ablage
|
||||||
|
|
||||||
|
- **Quelle der Wahrheit:** Gitea, `git.dogfather-universe.com/DogFatherGit/dogfather-universe`,
|
||||||
|
Zweig `main` (auf dem eigenen Server, kostenlos, in eigener Hand).
|
||||||
|
- Lokal heißt das Fernziel `gitea`, der Zweig `master`.
|
||||||
|
- Auf dem Server heißt das Fernziel `origin`, der Zweig `main`.
|
||||||
|
- `gitea/master` ist ein **alter, abgehängter Zweig** (Stand 44086b0) — nicht benutzen.
|
||||||
|
- Sicherungszweig `server-stand-vor-abgleich-22-08-2026` auf dem Server: der Stand, bevor die
|
||||||
|
beiden Fassungen am 22.08.2026 zusammengeführt wurden. Kann irgendwann weg, kostet nichts.
|
||||||
|
|
||||||
|
**Nie direkt auf dem Server Dateien bearbeiten, ohne sie danach in Gitea nachzutragen.** Genau
|
||||||
|
dadurch waren am 22.08.2026 zwei Reparaturen (Autofokus in `gate.html`, abgeschnittene
|
||||||
|
Öffnen-Knöpfe in `verwaltung.html`) nur auf dem Server vorhanden und wären beim nächsten
|
||||||
|
Deploy vom Rechner aus überschrieben worden.
|
||||||
|
|
||||||
|
## Offene Punkte
|
||||||
|
|
||||||
|
- Mehrere Hintergrundbilder liegen **nur auf dem Server und auf Filipes Rechner**, aber in
|
||||||
|
keiner Git-Ablage (`bg-bewerben-modi*.jpg`, `bg-bewerben-scout*.jpg`, `bg-links-seite*.jpg`,
|
||||||
|
`bg-medien-casper*.jpg`, `bg-medien-hasidog*.jpg`, `bg-supporter*.jpg`, `bg-modis.jpg`,
|
||||||
|
Ordner `assets/img/stimmen-avatare/`). Die Seiten `bewerben-modi.html`, `links.html`,
|
||||||
|
`medien-casper.html`, `supporter.html` u.a. benutzen sie live. Geht der Server verloren,
|
||||||
|
fehlen sie. Sie sind bewusst **nicht** in `.gitignore` — sie wurden schlicht nie hinzugefügt.
|
||||||
|
- CORS im Postfach-Worker weiterhin offen (`"*"`), siehe TODO in
|
||||||
|
`cloudflare-worker/src/lib/http.js`.
|
||||||
|
|
||||||
|
## Alternative Hosting-Optionen (nur als Notfall-Plan)
|
||||||
|
|
||||||
|
Die Seite ist reines statisches HTML/CSS/JS und läuft überall — `netlify.toml` und `.nojekyll`
|
||||||
|
liegen bereit. Relevant nur, falls der Netcup-Server einmal ausfällt.
|
||||||
|
|||||||
Reference in New Issue
Block a user