What's Changed
- feat: skip letsencrypt:enable when a valid certificate already exists by @josegonzalez in #402
- feat: allow disabling dns-provider per app via 'none' sentinel by @josegonzalez in #403
- feat: skip the '_' nginx default-vhost domain when issuing certs by @josegonzalez in #404
- feat: show auto-renew status when cron-job called without flags by @josegonzalez in #406
- fix: detect and surface acme rate-limit errors from lego by @josegonzalez in #407
- refactor: call fn-letsencrypt-enable from auto-renew by @josegonzalez in #408
- feat: share acme account across apps by @josegonzalez in #409
- fix: pin acme webroot perms so nginx can serve challenges by @josegonzalez in #410
- feat: auto-inject http:80 port mapping when missing by @josegonzalez in #411
- feat: surface dns-provider-* properties in letsencrypt:report by @josegonzalez in #413
- fix: preserve spaces in dns-provider-* values written to docker.env by @josegonzalez in #414
- Rewrite README for consistent voice and accuracy by @josegonzalez in #415
- refactor: house plugin-owned entries under --global subdir by @josegonzalez in #416
Full Changelog: 0.24.0...0.25.0