You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,8 @@
11
11
- Added `.env.dns.example` and wired the example compose file to `.env.dns` to keep DNS settings separate from the Traefik/CrowdSec stack `.env`.
12
12
- Documented how the example extends, but does not replace, the goNeuland Traefik/CrowdSec guide and migration note.
13
13
- Updated example documentation for outbound-only DynDNS operation, Compose startup ordering, DNS propagation limits, and `PUSHOVER_LOCATION_PREFIX=Berlin`.
14
+
- Clarified `RUN_ONCE=true` usage with Docker Compose and added a startup warning for restart-policy loops.
15
+
- Improved Dockerfile package/install hygiene and kept the expensive PHP extension build layer cacheable.
Copy file name to clipboardExpand all lines: README.Docker.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -187,6 +187,14 @@ docker run --rm \
187
187
worryboy/internetx-dyndns:0.4.0
188
188
```
189
189
190
+
For Compose validation with `RUN_ONCE=true`, use:
191
+
192
+
```bash
193
+
docker compose run --rm internetx-dyndns
194
+
```
195
+
196
+
Do not use `docker compose up -d` for `RUN_ONCE=true` validation with the default restart policy. The worker exits cleanly after one cycle, then Docker starts it again because `restart: unless-stopped` is intended for continuous mode.
197
+
190
198
Run continuously:
191
199
192
200
```bash
@@ -205,6 +213,7 @@ docker run -d \
205
213
Start with the Docker-Hub-oriented Compose file:
206
214
207
215
```bash
216
+
# set RUN_ONCE=false in .env first
208
217
docker compose -f docker-compose.hub.yml up -d
209
218
```
210
219
@@ -230,6 +239,7 @@ In dry-run mode, the worker may:
230
239
- log what would happen
231
240
232
241
It never sends a live DNS mutation while `DRY_RUN=true`.
242
+
With `RUN_ONCE=true`, prefer `docker compose run --rm internetx-dyndns`.
Copy file name to clipboardExpand all lines: README.md
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -209,6 +209,8 @@ docker compose build
209
209
docker compose run --rm internetx-dyndns
210
210
```
211
211
212
+
Use `docker compose run --rm internetx-dyndns` when `RUN_ONCE=true`. Do not use `docker compose up -d` for one-shot validation with the default restart policy, because Docker will restart the cleanly exited container and it can look like a failure loop.
213
+
212
214
The recommended validation flags are:
213
215
214
216
```env
@@ -219,7 +221,7 @@ DEBUG=true
219
221
220
222
-`DRY_RUN=true` validates config, detects the public IP, creates and closes an InterNetX AuthSession, may run read-only InterNetX zone validation, compares state, and logs what would happen without sending a live DNS update.
221
223
-`FORCE_UPDATE_ON_NO_CHANGE=false` is the default and avoids unnecessary live update requests when the detected public IP is unchanged and every target already matches that IP.
222
-
-`RUN_ONCE=true` executes a single check cycle and exits instead of looping continuously.
224
+
-`RUN_ONCE=true` executes a single check cycle and exits instead of looping continuously. It is meant for `docker compose run --rm internetx-dyndns`.
223
225
-`DEBUG=true` prints detailed diagnostic logging without exposing passwords, session hashes, or sensitive credentials. Provider request/response payloads are sanitized and labeled as `auth_session_create`, `read_only_preflight`, `live_mutation`, or `session_cleanup`.
224
226
- With `DEBUG=true`, the worker logs each runtime stage as it moves through config validation, public IP detection, authentication/session preflight, target validation, update decision, live mutation, and session cleanup.
225
227
- If `PUSHOVER_APP_KEY`, `PUSHOVER_USER_KEY`, and `PUSHOVER_LOCATION_PREFIX` are all configured, the worker can send a Pushover notification when a real public IP change is detected.
@@ -341,12 +343,14 @@ Build and run continuously:
341
343
342
344
```bash
343
345
cp .env.example .env
344
-
# edit .env
346
+
# edit .env and set RUN_ONCE=false
345
347
docker compose build
346
348
docker compose up -d
347
349
docker compose logs -f
348
350
```
349
351
352
+
Use `docker compose up -d` for continuous mode with `RUN_ONCE=false`. The compose file has `restart: unless-stopped`, so `RUN_ONCE=true` will exit successfully and then be started again by Docker.
Copy file name to clipboardExpand all lines: README.traefik-crowdsec-example.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -93,9 +93,12 @@ Validate the DNS worker first:
93
93
docker compose -f docker-compose.traefik-crowdsec-example.yml run --rm internetx-dyndns
94
94
```
95
95
96
+
This is the preferred command while `RUN_ONCE=true`. Do not use `up -d` for one-shot validation, because the example compose file uses `restart: unless-stopped` for the later continuous mode.
97
+
96
98
Start the stack:
97
99
98
100
```bash
101
+
# set RUN_ONCE=false in .env.dns first
99
102
docker compose -f docker-compose.traefik-crowdsec-example.yml up -d
Copy file name to clipboardExpand all lines: docker/start.sh
+1Lines changed: 1 addition & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,7 @@ set -eu
4
4
mkdir -p "${STATE_DIR:-/app/state}"
5
5
6
6
if [ "${RUN_ONCE:-false}"="true" ] || [ "${RUN_ONCE:-false}"="1" ];then
7
+
echo"RUN_ONCE=true: executing one cycle and exiting. With Docker Compose, prefer 'docker compose run --rm internetx-dyndns'; 'docker compose up -d' with a restart policy will start it again.">&2
0 commit comments