42af44c3221daf8b944f44dbffa997ec048a53a9
NPM ACME Authority
Runtime ACME write fencing for Nginx Proxy Manager.
The project patches NPM certificate handling at container startup so that selected Let's Encrypt mutation paths require a Pacemaker-controlled authority token.
Gate configuration
ACME_GATE_REQUEST=trueACME_GATE_RENEW=trueACME_GATE_REVOKE=true
These variables determine which ACME operations require authority.
They do not grant authority.
Runtime authority
Authority is represented by:
/acme_authority/state/acme-authority
The intended production mapping is:
/etc/npm-acme-authority -> /acme_authority
/run/npm-acme-authority -> /acme_authority/state
The persistent code mount is read-only.
The runtime state mount is read-only from the container's perspective and is controlled by Pacemaker on the host.
Intended policy
REQUEST:
- Gate Let's Encrypt creation before database insertion.
RENEW:
- Gate automatic and manual renewal before Certbot execution.
REVOKE:
- Gate certificate deletion before the database row is marked deleted.
- Gate Certbot revocation again as defense in depth.
Safety
Requested mutations must fail closed.
If an expected NPM source anchor cannot be identified or verification fails, the patcher must exit non-zero rather than start an ungated NPM backend.
Languages
Python
97.6%
Shell
2.4%