Refactor cron to call API via HTTP, capture base_url from browser
CI / test-and-package (push) Successful in 33s

- meal-cron now runs send_reminders_cron.sh (simple wget loop, no DB mount)
- New /api/cron-tick endpoint handles all timezone logic server-side
- base_url captured from request.host_url when user saves ntfy settings,
  stored per-user — no APP_BASE_URL env var needed
- Cron endpoint protected by CRON_SECRET shared env var
- Removed send_reminders_cron.py, DB volume from cron container
- tests: 3 new cron-tick + base_url capture tests (69 total)
This commit is contained in:
agentbox
2026-08-01 06:32:09 +00:00
parent 2cd435daf2
commit 710cd1fbf9
9 changed files with 161 additions and 102 deletions
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
# Cron loop — calls the meal-tracker API every 60s to trigger reminders.
# The Flask endpoint handles all timezone logic and ntfy sending.
while true; do
wget -q -O- --post-data="" \
--header="X-Cron-Secret: ${CRON_SECRET}" \
http://meal-tracker:5000/api/cron-tick 2>/dev/null
sleep 60
done