Stratify
Engineering

Hetzner Power Schedule

docs/runbooks/hetzner-power-schedule.md

Source updated 03. Aug. 2026

Hetzner power schedule — coolify-main (128.140.8.187)

Shared host: Stratify, Ecosystem Studio, Airfield, Loki (partial). Any shutdown must leave enough uptime for all /etc/cron.d/* jobs on this box.

Cron windows on this server (UTC)

FileEarliest (UTC)Latest (UTC)
ecosystem-studio03:00 daily06:00 daily (+ Sun 05:00)
stratify05:30 backup08:00 Mon digest
airfieldSun 04:00
root crontab07:00 dailypaperclip

Do not power off before ~08:15 UTC on Mondays (Stratify weekly digest at 08:00 UTC).

Recommended schedule (Europe/Zurich)

Assumption: save cost overnight; server must be up for 03:00 UTC ecosystem jobs → on before 05:00 local in summer (CEST).

ActionTime (Europe/Zurich)Notes
Power ON04:45 daily~15 min before 03:00 UTC ecosystem cron in winter (CET); ~1h before in summer (CEST)
Power OFF23:30 dailyAfter typical EU evening traffic; containers stop cleanly if using shutdown -h
Optional OFF weekendSat 23:30 → Mon 04:45Only if you accept no Sunday 04:00 UTC airfield batch and no Sat night monitoring

UTC reference (CEST, Jun–Sep)

Local (Zurich)UTCWhat runs
04:4502:45Server up
05:0003:00Ecosystem health-snapshot
06:0004:00Ecosystem enrichment
07:3005:30Stratify Postgres backup
08:0006:00Stratify drains + ecosystem milestone
09:0007:00Stratify ingest-pelosi; Mon inverse-cramer
09:3007:30Stratify sync-ai-ww3
10:00 Mon08:00 MonStratify digest-weekly
23:3021:30Safe shutdown

UTC reference (CET, Oct–Mar)

Local (Zurich)UTCWhat runs
04:4503:45Server up (15 min before 04:00 UTC ecosystem)
06:3005:30Stratify backup
07:0006:00Stratify drains
Same UTC columns as above

Implementation options

  1. Hetzner Cloud — no native schedule on dedicated; use Robot API / external scheduler if applicable.
  2. Cron on another always-on machinessh [email protected] shutdown -h now / wake via Hetzner API or BMC if available.
  3. Manual — acceptable for pre-launch; document who turns the box on before Monday digest weeks.

If the server stays 24/7 (simplest for pilot)

  • No power automation required.
  • Stratify crons: ./scripts/hetzner-install-crons.sh
  • Vercel crons removed from apps/web/vercel.json — production schedules live in /etc/cron.d/stratify on coolify-main only.

Checklist after enabling power saving

  • [ ] Monday 08:00 UTC: grep digest-weekly /var/log/stratify-cron.log on server
  • [ ] Daily 06:00 UTC: drain lines in /var/log/stratify-cron.log
  • [ ] docker ps | grep stratify after 04:45 power-on
  • [ ] Ecosystem /ecosystem-studio/api/cron/health-snapshot not failing 3 days in a row