Files
2026-03-23 12:47:30 +01:00

115 lines
3.3 KiB
Markdown

# HOW_TO_VERIFY (Caddy AutoGen)
Denna fil beskriver hur du verifierar appen i en riktig ZimaOS-miljö och vilken data som behövs vid felsökning.
## 1) Förutsättningar
- ZimaOS med appen `caddy-autogen` installerad.
- En fungerande domän i Cloudflare (publik zon).
- AdGuard Home (eller annan lokal DNS) i LAN.
- Cloudflare API-token med minst:
- `Zone.Zone:Read`
- `Zone.DNS:Edit`
- Minst en målcontainer med web UI-port.
## 2) Grundkonfiguration
Sätt appvariabler i `caddy-autogen`:
- `BASE_DOMAIN=home.example.com`
- `WILDCARD_DOMAIN=home.example.com`
- `CLOUDFLARE_API_TOKEN=<token>`
- `REQUIRE_CLOUDFLARE=true`
- `ALLOW_INTERNAL_TLS_FALLBACK=false`
Konfigurera lokal DNS (AdGuard Home):
- `A`/rewrite för `*.home.example.com` -> ZimaOS LAN-IP
- `A`/rewrite för `home.example.com` -> ZimaOS LAN-IP
## 3) Positivt test: status-UI + endpoint
1. Vänta 15-30 sekunder (default polling).
2. Öppna `http://<zima-lan-ip>:31820/`.
3. Verifiera i UI:
- `Caddy Apply = OK`
- `Cloudflare Reachability = OK`
- `Cloudflare Token = OK`
- minst en route visas under `Generated Hosts`.
4. Öppna en exponerad host, t.ex. `https://frigate.home.example.com`.
Förväntat resultat:
- UI laddar och visar aktuell status.
- Endpoint finns för web UI-hosten.
- Certifikat utfärdas via Let's Encrypt DNS-01.
## 4) Negativt test: fail-closed
Scenario A, ingen opt-in:
1. Ta bort `LABEL_CADDY_ENABLE=true` från målcontainern.
2. Vänta en polling-cykel.
3. Verifiera i status-UI att routen försvinner.
Scenario B, saknad/ogiltig Cloudflare-token:
1. Sätt `REQUIRE_CLOUDFLARE=true`.
2. Ta bort eller ogiltiggör `CLOUDFLARE_API_TOKEN`.
3. Verifiera i status-UI att Cloudflare Token inte är OK.
4. Verifiera att ingen ny extern route publiceras.
Förväntat resultat:
- Appen exponerar inte tjänster oavsiktligt.
- Loggar visar tydligt token/Cloudflare-relaterat fel.
## 5) Kommandon för snabb verifiering
Byt `<domain>`, `<host>` och `<zima-lan-ip>` enligt din miljö.
```bash
curl -sS http://<zima-lan-ip>:31820/status.json | jq .
nslookup frigate.home.example.com
curl -vk https://frigate.home.example.com/
openssl s_client -connect frigate.home.example.com:443 -servername frigate.home.example.com </dev/null
```
Containerloggar:
```bash
docker logs --tail 200 caddy-autogen-discovery
docker logs --tail 200 caddy-autogen
docker logs --tail 200 caddy-autogen-socket-proxy
```
## 6) Data att samla innan du ber en Codex-agent om hjälp
Samla detta först. Det kortar felsökningstiden avsevärt.
1. Miljöinfo:
- ZimaOS-version.
- Appens branch/commit eller zip-artefakt (filnamn + SHA256).
- Vilken DNS-server som används lokalt.
2. Appkonfiguration:
- Alla app-env-vars för `caddy-autogen` (maska secrets).
- Målcontainerns `LABEL_CADDY_*`-env-vars.
- Målcontainerns publicerade portar.
3. Nät/TLS-bevis:
- `curl -sS http://<zima-lan-ip>:31820/status.json | jq .`.
- `nslookup`-svar från en LAN-klient.
- `curl -vk` output mot endpoint.
- `openssl s_client` sammanfattning av cert/issuer.
4. Loggar:
- Senaste 200 rader från `caddy-autogen-discovery`.
- Senaste 200 rader från `caddy-autogen`.
- Senaste 200 rader från `caddy-autogen-socket-proxy`.
5. Problemdefinition:
- Exakt hostname som inte fungerar.
- Förväntat beteende och faktiskt beteende.
- Tidpunkt när felet observerades.