2022-06-20 22:42:29 +00:00

1.6 KiB

Certbot Docker

Docker Certbot that runs on a schedule to create and renew SSL certificates. Uses Cloudflare for DNS-01 verification. Automatic renewal attempt happens every 6 hours.

Building & Running

git clone https://git.mrmeeb.stream/certbot-cron-docker

cd certbot-cron-docker

docker build -t certbot-cron .

docker run -d --name certbot-cron \
    -e EMAIL=admin@domain.com \
    -e DOMAINS=domain.com \
    -v /docker/certbot-cron:/config \
    certbot-cron

Environment Variables:

Variable Default Value Description
EMAIL None Email address for renewal information & other communications
DOMAINS None Domains to be included in the certificate. Comma separated list, no spaces. Wildcards supported
INTERVAL 0 */6 * * * How often certbot attempts to renew the certificate. Cron syntax
STAGING false (case-sensitive) Uses the LetsEncrypt staging endpoint for testing - avoids the aggressive rate-limiting of the production endpoint
PROPOGATION_TIME 10 The amount of time (seconds) that certbot waits for the TXT records to propogate to Cloudflare before verifying - the more domains in the certificate, the longer you might need
GENERATE_DHPARAM true (case-sensitive) Generate Diffie-Hellman keys in /config/letsencrypt/keys

Volumes

Docker path Purpose
/config Stores configs and LetsEncrypt output for mounting in other containers

Other

Thanks to this guy for explaining how to make cron actually shutdown when stopping the container.