Files
automations/deployments/beszel
57_WolveandClaude Opus 5 79db4d1e29 fix(beszel): apply BESZEL_DOMAIN passed to a re-run
Same defect as webfinger, and the typo case makes it concrete. A first deploy
with monitroing.example.com never gets an ACME certificate. The operator spots
it and re-runs with the correct hostname -- .env still holds the typo, so
Caddy still has only that site block, still fails ACME, and the endpoint still
does not work, while the script exits 0 printing
"URL: https://monitoring.example.com".

The two sources disagree and nothing compares them: validation greps .env for
non-empty (a typo passes), while the confirmation prompt and the DEPLOYED
banner expand this shell's variable. Interactively the prompted value is not
exported, so compose produces a byte-identical config and does not even
recreate the container -- nothing happens at all.

Fixed with the same idiom as webfinger and d654299.

Verified: a corrected BESZEL_DOMAIN lands in .env and is logged; a re-run
passing nothing leaves .env untouched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 14:21:35 -05:00
..

beszel

Beszel monitoring hub behind Caddy. Agents push metrics to the hub; OIDC sign-in is configured in the admin UI after first deploy.

Required .env values

Variable Notes
BESZEL_DOMAIN Public hostname (e.g. monitoring.example.com).
ACME_EMAIL Let's Encrypt registration email.
USER_CREATION true lets OIDC auto-create accounts on first login.

See .env.example for image tags.

Deploy

./automations.sh        # Deploy on this host → deploy: beszel

Or build + run the self-contained artifact:

./build.sh
scp deploy.sh root@host:
ssh root@host 'bash deploy.sh'
# non-interactive:
#   BESZEL_DOMAIN=monitoring.example.com ACME_EMAIL=me@example.com SKIP_PROMPTS=1 bash deploy.sh

Unattended provisioning: cloud-init.yml.

Notes

  • No Anubis PoW gate here — it would break agent connections.
  • For OIDC login, point Beszel at your pocket-id in the admin UI.
  • DNS for BESZEL_DOMAIN must resolve to the host and 80/443 be reachable before deploy.