updates.jakubkadlec.dev DNS points to wrong IP, blocks runbook execution #4

Open
opened 2026-04-14 12:14:00 +02:00 by jann · 0 comments
Member

Když jsme s Janem dnes rozjížděli update channel podle docs/runbook-caddy-updates.md, narazili jsme na dvě nesouvisející věci. První je blocker, druhá je dobrá zpráva.

1. updates.jakubkadlec.dev DNS míří na špatnou IP

gitea.jakubkadlec.dev  →  173.249.9.66   ✅ VPS
mt2.jakubkadlec.dev    →  173.249.9.66   ✅ VPS
updates.jakubkadlec.dev → 194.163.138.177 ❌ jiný Contabo host

194.163.138.177 je někde úplně jinde — běží tam default Apache ("Server: Apache", prázdná "It works" stránka), proto Let's Encrypt HTTP-01 challenge vrací 404 a Caddy na VPS cert nikdy nedostane.

Co jsem udělal a co ne

  • Vytvořil webroot /var/www/updates.jakubkadlec.dev/{files,manifests,launcher} s placeholder manifest.json
  • Napsal appendnutý Caddy vhost do /etc/caddy/Caddyfile, backup v /etc/caddy/Caddyfile.bak.20260414-115914
  • caddy validate prošel (po opravě bugu v docs/caddy-updates.conf — viz follow-up níže)
  • systemctl reload caddy prošel, Caddy zdravě běžel
  • LE HTTP-01 challenge failed 3x během 6 sekund s 404, důvod jsem neznal
  • Diagnostika: curl zvenčí ukázal Server: Apache — až tehdy mi došlo, že DNS míří mimo
  • Rollback: Caddyfile vrácený na původní 3-řádkový, reload, ověřeno že Gitea stále odpovídá 200. Žádný LE rate-limit nestihl nastat (3 fail/hodinu je limit, stihli jsme 3 za minutu, takže žádná sankce).

Webroot /var/www/updates.jakubkadlec.dev/ a Caddyfile backup jsou nedotčené a čekají na reapply runbooku.

Co potřebuju od tebe

V DNS panelu pro doménu jakubkadlec.dev změnit A záznam updates z 194.163.138.177 na 173.249.9.66. Nic jiného neměň.

Až se DNS propaguje (dig updates.jakubkadlec.dev vrátí 173...), stačí znovu projet docs/runbook-caddy-updates.md kroky 4-7. Webroot už je nachystaný, takže to je 2 minuty práce + čekání na LE cert.

2. Follow-up fix: bug v docs/caddy-updates.conf

Při validate Caddy narazil na:

Error: adapting config using caddyfile: parsing caddyfile tokens for 'file_server':
/etc/caddy/Caddyfile:69 - Error during parsing:
Wrong argument count or unexpected line ending after 'file_server'

Napsal jsem file_server browse off 2>/dev/null || file_server — to je bash-style fallback, ne Caddy syntax. Caddy file_server žádný browse off argument nemá (browse je defaultně off). Fix = smazat ten řádek. Otevřu k tomu mini PR.

3. A teď dobrá zpráva: server už běží 🎉

Recon na VPS ukázal, že máš již rozběhnutý celý m2 server stack:

game_auth        :11000 :12000
channel1_core1   :11011 :12011
channel1_core2   :11012 :12012
channel1_core3   :11013 :12013
channel99_core1  :11991 :12991
db               :9000

To odpovídá přesně tomu, co serverinfo.py v m2dev-client očekává (CH1 NORM na 11011, auth na 11000). Jan pod Wine v klientovi už dřív v noci viděl "CH1 NORM" v server pickeru a myslel jsem si, že to jsou loopback-init packety, ale ono to byl reálně tvůj běžící server který odpovídal.

Implikace: klient pod Wine na Linuxu je ready, server je ready — teoreticky se teď z klienta dá zaregistrovat a přihlásit. Právě to zkoušíme, ať zjistíme, jestli loginscreen → charscreen → actual gameplay prochází. Pokud ano, máme hratelný prototyp za jeden den.

Pošlu report, jak login dopadne.


TL;DR pro akci: DNS updates.jakubkadlec.dev173.249.9.66. Všechno ostatní už čeká nachystané.

Když jsme s Janem dnes rozjížděli update channel podle [`docs/runbook-caddy-updates.md`](../src/branch/main/docs/runbook-caddy-updates.md), narazili jsme na dvě nesouvisející věci. První je blocker, druhá je dobrá zpráva. ## 1. `updates.jakubkadlec.dev` DNS míří na špatnou IP ``` gitea.jakubkadlec.dev → 173.249.9.66 ✅ VPS mt2.jakubkadlec.dev → 173.249.9.66 ✅ VPS updates.jakubkadlec.dev → 194.163.138.177 ❌ jiný Contabo host ``` 194.163.138.177 je někde úplně jinde — běží tam default Apache ("Server: Apache", prázdná "It works" stránka), proto Let's Encrypt HTTP-01 challenge vrací 404 a Caddy na VPS cert nikdy nedostane. ### Co jsem udělal a co ne - ✅ Vytvořil webroot `/var/www/updates.jakubkadlec.dev/{files,manifests,launcher}` s placeholder `manifest.json` - ✅ Napsal appendnutý Caddy vhost do `/etc/caddy/Caddyfile`, backup v `/etc/caddy/Caddyfile.bak.20260414-115914` - ✅ `caddy validate` prošel (po opravě bugu v `docs/caddy-updates.conf` — viz follow-up níže) - ✅ `systemctl reload caddy` prošel, Caddy zdravě běžel - ❌ LE HTTP-01 challenge failed 3x během 6 sekund s 404, důvod jsem neznal - ✅ Diagnostika: `curl` zvenčí ukázal `Server: Apache` — až tehdy mi došlo, že DNS míří mimo - ✅ **Rollback:** Caddyfile vrácený na původní 3-řádkový, reload, ověřeno že Gitea stále odpovídá 200. Žádný LE rate-limit nestihl nastat (3 fail/hodinu je limit, stihli jsme 3 za minutu, takže žádná sankce). Webroot `/var/www/updates.jakubkadlec.dev/` a Caddyfile backup **jsou nedotčené** a čekají na reapply runbooku. ### Co potřebuju od tebe V DNS panelu pro doménu `jakubkadlec.dev` změnit A záznam `updates` z `194.163.138.177` na **`173.249.9.66`**. Nic jiného neměň. Až se DNS propaguje (dig `updates.jakubkadlec.dev` vrátí 173...), stačí znovu projet `docs/runbook-caddy-updates.md` kroky 4-7. Webroot už je nachystaný, takže to je 2 minuty práce + čekání na LE cert. ## 2. Follow-up fix: bug v `docs/caddy-updates.conf` Při validate Caddy narazil na: ``` Error: adapting config using caddyfile: parsing caddyfile tokens for 'file_server': /etc/caddy/Caddyfile:69 - Error during parsing: Wrong argument count or unexpected line ending after 'file_server' ``` Napsal jsem `file_server browse off 2>/dev/null || file_server` — to je bash-style fallback, ne Caddy syntax. Caddy `file_server` žádný `browse off` argument nemá (browse je defaultně off). Fix = smazat ten řádek. Otevřu k tomu mini PR. ## 3. A teď dobrá zpráva: **server už běží** 🎉 Recon na VPS ukázal, že máš již rozběhnutý celý m2 server stack: ``` game_auth :11000 :12000 channel1_core1 :11011 :12011 channel1_core2 :11012 :12012 channel1_core3 :11013 :12013 channel99_core1 :11991 :12991 db :9000 ``` To odpovídá přesně tomu, co `serverinfo.py` v `m2dev-client` očekává (`CH1 NORM` na 11011, auth na 11000). Jan pod Wine v klientovi už dřív v noci viděl "CH1 NORM" v server pickeru a myslel jsem si, že to jsou loopback-init packety, ale ono to byl reálně tvůj běžící server který odpovídal. **Implikace:** klient pod Wine na Linuxu je ready, server je ready — teoreticky se teď z klienta dá zaregistrovat a přihlásit. Právě to zkoušíme, ať zjistíme, jestli loginscreen → charscreen → actual gameplay prochází. Pokud ano, máme hratelný prototyp za jeden den. Pošlu report, jak login dopadne. --- **TL;DR pro akci:** DNS `updates.jakubkadlec.dev` → `173.249.9.66`. Všechno ostatní už čeká nachystané.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: metin-server/m2dev-client#4