2026-05-30 14:10:01 +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`.
|
|
|
|
|
|
2026-06-14 18:37:54 +02:00
|
|
|
Current state: `base` is **partially built** — its `firewall` (nftables) and
|
|
|
|
|
`hardening` (SSH key-only + fail2ban) concerns are implemented, tested, and the
|
|
|
|
|
hardening concern is applied to `askari`; the remaining concerns (auditd, packages,
|
|
|
|
|
users) are not yet built. `docker_host` (Docker engine + Compose), `reverse_proxy`
|
|
|
|
|
(Caddy), `public_dns` (Gandi), and `dev_env` are built. See `STATUS.md` for the
|
|
|
|
|
authoritative breakdown.
|