Skip to content

Commit 73e2306

Browse files
lmeregajaydrogers
andauthored
Add support for CLOUDFLARE_PROPAGATION_SECONDS and CLOUDFLARE_CREDENTIALS_FILE environment variable (#18)
* Support optional CLOUDFLARE_PROPAGATION_SECONDS to control DNS propagation wait time * Sorted ENV A-Z. Set CLOUDFLARE_PROPAGATION_SECONDS to 10 * Removed conditional and always include the --dns-cloudflare-propagation-seconds flag * Added output for CLOUDFLARE_PROPAGATION_SECONDS * Added ability to adjust CLOUDFLARE_CREDENTIALS_FILE * Fix syntax error. Remove trailing slash --------- Co-authored-by: Jay Rogers <[email protected]>
1 parent 0a7ead9 commit 73e2306

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ The following environment variables can be used to customize the Certbot contain
6060
| `CERTBOT_EMAIL` | Email address for Let's Encrypt notifications | - |
6161
| `CERTBOT_KEY_TYPE` | Type of private key to generate | `ecdsa` |
6262
| `CLOUDFLARE_API_TOKEN` | Cloudflare API token for DNS authentication (see below how to create one) | - |
63+
| `CLOUDFLARE_CREDENTIALS_FILE` | Path to the Cloudflare credentials file. | `/cloudflare.ini` |
64+
| `CLOUDFLARE_PROPAGATION_SECONDS` | Wait time (in seconds) after setting DNS TXT records before validation. Useful if DNS propagation is slow. | `10` |
6365
| `DEBUG` | Enable debug mode (prints more information to the console) | `false` |
6466
| `PUID` | The user ID to run certbot as | `0` |
6567
| `PGID` | The group ID to run certbot as | `0` |

src/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ ENV CERTBOT_DOMAINS="" \
1111
CERTBOT_EMAIL="" \
1212
CERTBOT_KEY_TYPE="ecdsa" \
1313
CLOUDFLARE_API_TOKEN="" \
14+
CLOUDFLARE_CREDENTIALS_FILE="/cloudflare.ini" \
15+
CLOUDFLARE_PROPAGATION_SECONDS="10" \
1416
DEBUG=false \
1517
PUID=0 \
1618
PGID=0 \

src/entrypoint.sh

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,8 @@ run_certbot() {
107107

108108
$certbot_cmd $debug_flag certonly \
109109
--dns-cloudflare \
110-
--dns-cloudflare-credentials /cloudflare.ini \
110+
--dns-cloudflare-credentials "$CLOUDFLARE_CREDENTIALS_FILE" \
111+
--dns-cloudflare-propagation-seconds "$CLOUDFLARE_PROPAGATION_SECONDS" \
111112
-d "$CERTBOT_DOMAINS" \
112113
--key-type "$CERTBOT_KEY_TYPE" \
113114
--email "$CERTBOT_EMAIL" \
@@ -172,14 +173,15 @@ echo "🌐 Domain(s): $CERTBOT_DOMAINS"
172173
echo "📧 Email: $CERTBOT_EMAIL"
173174
echo "🔑 Key Type: $CERTBOT_KEY_TYPE"
174175
echo "⏰ Renewal Interval: $RENEWAL_INTERVAL seconds"
176+
echo "🕒 DNS Propagation Wait: $CLOUDFLARE_PROPAGATION_SECONDS seconds"
175177
echo "Let's Encrypt, shall we?"
176178
echo "-----------------------------------------------------------"
177179

178180
# Create Cloudflare configuration file
179-
echo "dns_cloudflare_api_token = $CLOUDFLARE_API_TOKEN" > /cloudflare.ini
180-
chmod 600 /cloudflare.ini
181+
echo "dns_cloudflare_api_token = $CLOUDFLARE_API_TOKEN" > "$CLOUDFLARE_CREDENTIALS_FILE"
182+
chmod 600 "$CLOUDFLARE_CREDENTIALS_FILE"
181183
if ! is_default_privileges; then
182-
chown "${PUID}:${PGID}" /cloudflare.ini
184+
chown "${PUID}:${PGID}" "$CLOUDFLARE_CREDENTIALS_FILE"
183185
fi
184186

185187
# Check if a command was passed to the container

0 commit comments

Comments
 (0)