When a site is down
Use this when a saxobroko.com URL fails in the browser — timeout, 502, 403, or blank page. Work top-down: is it one app, all homelab sites, or everything including SaxDocs?
Step 1 — Identify scope
| Symptom | Likely layer |
|---|---|
| Only one app (e.g. Jellyfin) | That Docker app or its tunnel hostname |
| All tunnel apps (stream, dash, vault, dsm, …) down | cloudflared on NAS or Cloudflare Tunnel |
| docs.saxobroko.com down but home apps work | Cloudflare Pages or GitHub deploy |
| Nothing resolves | DNS or domain expiry |
| 403 from outside Australia | Expected WAF — not an outage — WAF rules |
Check status.saxobroko.com for public sites (main site, blog, share).
Step 2 — Test from home vs internet
- On home Wi‑Fi, try the LAN URL if you know it — e.g.
https://192.168.2.203for TrueNAS. - Try the public URL — e.g. stream.saxobroko.com.
| LAN works, public fails | Public and LAN both fail |
|---|---|
| Cloudflare Tunnel, DNS, or WAF | NAS app, NAS power, or pool issue |
Step 3 — One app down (LAN works)
- TrueNAS → Restart the Docker app for that service.
- Cloudflare → Zero Trust → Tunnels → your tunnel → Public Hostnames — confirm hostname points at correct internal URL (e.g.
http://192.168.2.203:PORT). - Read app logs in TrueNAS Apps → Logs.
Step 4 — All tunnel sites down
- On LAN, open TrueNAS — if unreachable, Turn everything on.
- TrueNAS → Apps → restart cloudflared (or the tunnel app name).
- Cloudflare → Zero Trust → Tunnels — tunnel should show Healthy / connected.
- If tunnel shows Down after NAS restart, wait 2–5 minutes, then restart cloudflared again.
Tunnel config reference: cloudflared.
Step 5 — docs.saxobroko.com down
SaxDocs is on Cloudflare Pages, not the NAS.
- Open github.com/saxobroko/SaxDocs/actions — last deploy green?
- Cloudflare → Workers & Pages → saxdocs → Deployments — latest success?
- If deploy failed: read the log — often missing GitHub secret or build error.
- DNS: Websites → saxobroko.com → DNS —
docsshould point at Pages, not old home IP.
Deploy flow: This docs site.
Step 6 — DNS / SSL errors
- Log in to Cloudflare — Cloudflare account access.
- DNS — records exist for the subdomain?
- SSL/TLS — for tunnel hosts, localnet full strict ssl rule applies — WAF reference.
- Domain expiry — Renew the domain.
Step 7 — Access / login loop (site "works" but no content)
Symptoms: endless redirect, JavaScript challenge instead of Authentik login.
- Confirm Bot Fight Mode is off — Authentik troubleshooting.
- Test auth.saxobroko.com loads (must not be behind Access itself).
- Last resort only: Disable Cloudflare Access temporarily.
Step 8 — NAS storage emergency
If TrueNAS dashboard shows DEGRADED pool, fix storage first — When the pool is degraded. Apps will behave badly until the pool is healthy.
Quick reference table
| URL | Host | First fix |
|---|---|---|
| stream.saxobroko.com | Jellyfin on NAS | Restart Jellyfin app |
| docs.saxobroko.com | Cloudflare Pages | Check GitHub Actions deploy |
| dash.saxobroko.com | Homepage on NAS | Restart app + Authentik |
| vault.saxobroko.com | Vaultwarden on NAS | Restart app |
| saxobroko.com | Pages / static | SaxoStatus + Pages deploy |
Full URL list: Network.
When to stop guessing
- Pool DEGRADED or FAULTED
- Multiple drives failed
- Unsure which DNS record to delete
Get help — document what you tried and screenshots of Cloudflare + TrueNAS alerts.