diff --git a/.claude/JOURNAL.md b/.claude/JOURNAL.md
index 53610e6..f8c75f7 100644
--- a/.claude/JOURNAL.md
+++ b/.claude/JOURNAL.md
@@ -51,3 +51,6 @@ This journal tracks substantive work on documents, diagrams, and documentation c
16. **Task - Cleanup startup scripts**: Removed obsolete nvidia-smi script and renumbered ensure_groups
**Result**: Deleted 01_nvidia-smi.sh (GPU detection now uses separate nvidia/cuda container spawned by jupyterhub_config.py), renamed 02_ensure_groups.py to 01_ensure_groups.py for sequential ordering, bumped version to 3.3.2
+
+17. **Task - Fix Watchtower refresh frequency**: Investigated and fixed Watchtower running image checks on every container restart instead of daily
+ **Result**: Added `--no-startup` flag to Watchtower command in compose.yml, preventing image refresh checks on container startup/restart - now only runs at scheduled midnight (cron `0 0 * * *`)
diff --git a/compose.yml b/compose.yml
index 2dca05c..e2e8b76 100644
--- a/compose.yml
+++ b/compose.yml
@@ -98,7 +98,7 @@ services:
image: nickfedor/watchtower:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock:rw # to control docker and refresh images
- command: --cleanup --schedule "0 0 * * *" # run every day at midnight
+ command: --cleanup --no-startup --schedule "0 0 * * *" # daily at midnight only, no check on startup
security_opt:
- seccomp:unconfined #optional
depends_on: