- Makefile: PLATFORMS, tags :<commit> and :main, build-check with --pull.
- deploy.sh: push, guards, git pull --ff-only, optional --prune, image_tag.
- Replace .containerignore with .dockerignore.
- Add the opt-in image prune to the hops role.
- Tag the Caddyfile task so --skip-tags caddy works before DNS cutover.
- Trim comments and rewrite build and deploy text in plain prose.
- Makefile: podman build/push from the committed tree (git archive HEAD),
tagged :<commit> + :latest; PLATFORM defaults to linux/arm64 for emily.
- deploy.sh: push the commit first, refuse a dirty tracked tree or
HEAD != origin/main, then build and deploy that exact commit via
-e image_tag (rollback = an older commit).
- ansible: target emily with no become. The register role writes hops.network
(NetworkName=hops_net) plus the caddy.container.d drop-in; the hops role
installs ~/podman-data/hops and hops.container under systemctl --user with a
podman healthcheck gate; the caddy role appends the site blocks to the shared
Caddyfile and reloads.
- Drop the Docker-era network role, community.docker requirements,
ansible/files templates and docker-compose.yml.
- .containerignore replaces .dockerignore.
- README: Podman build, rootless Quadlet deploy on emily.