Files
dogfather-universe/DEPLOY.md
T
DogFatherGitandClaude Opus 5 541a91d9e2 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]>
2026-08-22 15:27:08 +02:00

5.6 KiB
Raw Blame History

DOGFATHER UNIVERSE — Go-Live-Anleitung

⚠️ ZUERST LESEN: Die echte Seite läuft auf dem NETCUP-SERVER, nicht auf Cloudflare

Seit dem öffentlichen Start (21.08.2026) wird dogfather-universe.com vom eigenen 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.

Das ist die gefährlichste Stelle im ganzen Projekt: npx wrangler deploy läuft ohne Fehler durch und meldet „Deployed", die Änderung ist danach auf …workers.dev sichtbar — und auf dogfather-universe.com passiert nichts. Genau so ist es am 22.08.2026 beim Sprachfenster- Fix passiert (siehe unten). Wer nur die Erfolgsmeldung von Wrangler liest, meldet „ist live", obwohl Filipe auf dem Handy weiterhin den kaputten Stand sieht.

Adresse Läuft wo Wird von wo beliefert
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
www.dogfather-universe.com dasselbe (Caddy nimmt beide Namen) dasselbe
dogfather-universe.dogfather1608.workers.dev Cloudflare Worker (Altbestand) npx wrangler deploy

Erkennungsmerkmal im Zweifel: curl -sI https://dogfather-universe.com/ | grep -i via → zeigt via: 1.1 Caddy, also Netcup. Käme die Seite von Cloudflare, stünde da kein Caddy.

So wird eine Änderung wirklich live (der einzige gültige Weg)

cd ~/Documents/Obelix/DogiHompage
# 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"

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/):

ssh dogfather-server "sudo systemctl restart dogiweb.service"     # öffentliche Seite
ssh dogfather-server "sudo systemctl restart dogiintern.service"  # interner Bereich

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.

Pflicht-Prüfung nach JEDEM Deploy

Nicht auf die Erfolgsmeldung des Deploy-Befehls verlassen, sondern die echte Domain fragen:

# Kommt meine Änderung wirklich auf der Seite an, die Filipe benutzt?
curl -s https://dogfather-universe.com/assets/css/main.css | grep "<mein Merkmal>"

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.

Der Cloudflare-Worker (Altbestand)

Bleibt vorerst bestehen, liefert aber nur noch …workers.dev aus. Ein Deploy dorthin ändert an der echten Seite nichts. Der Versuch, die Domain per wrangler wieder anzubinden, schlägt 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.