- Image base is now ${REGISTRY}/public/librenotes (matches Gitea owner/repo).
- Remote step writes LIBRENOTES_IMAGE on tag pushes via perl, then pulls and
restarts using the new compose.yaml + compose.netcup.yaml stack files.
- Both jobs run inside catthehacker/ubuntu:runner-latest; the default
node:20-bookworm runner image lacks make + docker. The build job
bind-mounts /var/run/docker.sock for build-push-action; the runner config
must whitelist that path under valid_volumes.