boma/roles
sjat b7e919d6b3 refactor(reverse_proxy): vanilla Caddy + HTTP-01 (drop DNS-01 custom image)
Switch from a custom caddy-dns/gandi image built on-host to the official
caddy:2 image with per-host ACME HTTP-01 certificates. Removes the
Dockerfile, env.j2 (Gandi token), on-host image build/ship/load tasks,
the caddy-image Makefile target, and the wildcard DNS-01 Caddyfile.
Each route now gets its own server block and automatic certificate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 18:11:20 +02:00
..
base fix(base): propagate hardening tag to included tasks; check-mode-safe fail2ban 2026-06-14 16:54:23 +02:00
dev_env dev_env: install Node.js from pinned tarball, drop npm bloat 2026-06-11 14:21:33 +02:00
docker_host feat(docker_host): install Docker engine + compose plugin 2026-06-14 17:28:51 +02:00
public_dns fix(public_dns): index loop keys with item['key'] not item.key 2026-06-14 10:57:23 +02:00
reverse_proxy refactor(reverse_proxy): vanilla Caddy + HTTP-01 (drop DNS-01 custom image) 2026-06-14 18:11:20 +02:00
README.md fix(O1): scaffold docker_host role so make lint passes on main 2026-06-11 14:53:55 +02:00

roles/

Local Ansible roles. No Galaxy roles — every role is written and maintained here (ADR-003). Scaffold new ones with make new-role NAME=<name>; never create the directory structure by hand.

Each role must have: a molecule/default/ scenario (Debian 13), a populated README.md, and a filled-in meta/main.yml. Conventions: CLAUDE.md and docs/runbooks/new-role.md.

Current state: base is partially built — its firewall concern (nftables) is implemented and tested; the other concerns (SSH hardening, fail2ban, auditd, packages, users) are not yet built. docker_host is scaffolded but has no tasks yet. dev_env (interactive developer environment) is built and applied. See STATUS.md for the authoritative breakdown.