schedule audit follow-ups: jellyfin TZ, monthly DAG stagger #399

Merged
mysticalsoap merged 3 commits from audit/schedule-followups into trunk 2026-10-08 10:40:21 -04:00
Owner

Problem

Follow-ups from the #119 schedule audit (findings in the issue comment):

  • Jellyfin ran on UTC. Its own environment: block replaces x-common's, so TZ never reached it, and its daily tasks fired 20:00–23:30 local instead of overnight.
  • ip2location and crowdsec-hub-update restarted traefik and crowdsec in the same second at 00:00 on the 1st, alongside the four daily midnight DAGs.
  • audiobookshelf-match.yaml claimed 00:30 keeps clear of metadata, which overran 00:30 on twelve September nights.

Fix

  • TZ re-listed under jellyfin's environment: (PUID/PGID are not: user: is what the official image honours).
  • ip2location to 00:10, crowdsec-hub-update to 00:20 on the 1st.
  • Comment rewritten: the two share a container, not its apps.

Verification

  • just up media recreated only jellyfin; docker exec jellyfin date now prints EDT (was UTC).
  • Dagu logged DAG added/updated and Planner: DAG updated for all three files on save.
  • First real check of the stagger is 2026-11-01 00:10/00:20; of Jellyfin's triggers, tonight's 03:00 local StarTrack export (LastExecutionResult.StartTimeUtc should read 07:00Z).

Closes #119

🤖 Generated with Claude Code

## Problem Follow-ups from the #119 schedule audit (findings in the issue comment): - Jellyfin ran on UTC. Its own `environment:` block replaces `x-common`'s, so `TZ` never reached it, and its daily tasks fired 20:00–23:30 local instead of overnight. - `ip2location` and `crowdsec-hub-update` restarted traefik and crowdsec in the same second at 00:00 on the 1st, alongside the four daily midnight DAGs. - `audiobookshelf-match.yaml` claimed 00:30 keeps clear of `metadata`, which overran 00:30 on twelve September nights. ## Fix - `TZ` re-listed under jellyfin's `environment:` (PUID/PGID are not: `user:` is what the official image honours). - `ip2location` to 00:10, `crowdsec-hub-update` to 00:20 on the 1st. - Comment rewritten: the two share a container, not its apps. ## Verification - `just up media` recreated only jellyfin; `docker exec jellyfin date` now prints EDT (was UTC). - Dagu logged `DAG added/updated` and `Planner: DAG updated` for all three files on save. - First real check of the stagger is 2026-11-01 00:10/00:20; of Jellyfin's triggers, tonight's 03:00 local StarTrack export (`LastExecutionResult.StartTimeUtc` should read 07:00Z). Closes #119 🤖 Generated with [Claude Code](https://claude.com/claude-code)
jellyfin's own `environment:` (the NVIDIA vars) replaces x-common's, so
TZ never reached it and the container ran on UTC. Its daily scheduled
tasks (trickplay, chapter images, StarTrack export, both watchlist
syncs) fired 20:00–23:30 local, during viewing hours, instead of
00:00–03:30. Found by the #119 schedule audit.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
ip2location restarts traefik and crowdsec-hub-update restarts crowdsec,
both at 00:00 on the 1st, in the same second as the four daily midnight
DAGs. Each is 15 s; 00:10 and 00:20 keep the public-facing restart alone.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
dagu: audiobookshelf-match comment stops promising separation
All checks were successful
validate / validate (pull_request) Successful in 26s
5428e73404
metadata overran 00:30 on twelve September nights (up to 43 min), so
"keeps clear" was false. The two share a container and nothing else.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
mysticalsoap deleted branch audit/schedule-followups 2026-10-08 10:40:22 -04:00
Sign in to join this conversation.
No description provided.