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)
| File | Earliest (UTC) | Latest (UTC) |
|---|
ecosystem-studio | 03:00 daily | 06:00 daily (+ Sun 05:00) |
stratify | 05:30 backup | 08:00 Mon digest |
airfield | Sun 04:00 | — |
root crontab | 07:00 daily | paperclip |
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).
| Action | Time (Europe/Zurich) | Notes |
|---|
| Power ON | 04:45 daily | ~15 min before 03:00 UTC ecosystem cron in winter (CET); ~1h before in summer (CEST) |
| Power OFF | 23:30 daily | After typical EU evening traffic; containers stop cleanly if using shutdown -h |
| Optional OFF weekend | Sat 23:30 → Mon 04:45 | Only if you accept no Sunday 04:00 UTC airfield batch and no Sat night monitoring |
UTC reference (CEST, Jun–Sep)
| Local (Zurich) | UTC | What runs |
|---|
| 04:45 | 02:45 | Server up |
| 05:00 | 03:00 | Ecosystem health-snapshot |
| 06:00 | 04:00 | Ecosystem enrichment |
| 07:30 | 05:30 | Stratify Postgres backup |
| 08:00 | 06:00 | Stratify drains + ecosystem milestone |
| 09:00 | 07:00 | Stratify ingest-pelosi; Mon inverse-cramer |
| 09:30 | 07:30 | Stratify sync-ai-ww3 |
| 10:00 Mon | 08:00 Mon | Stratify digest-weekly |
| 23:30 | 21:30 | Safe shutdown |
UTC reference (CET, Oct–Mar)
| Local (Zurich) | UTC | What runs |
|---|
| 04:45 | 03:45 | Server up (15 min before 04:00 UTC ecosystem) |
| 06:30 | 05:30 | Stratify backup |
| 07:00 | 06:00 | Stratify drains |
| … | … | Same UTC columns as above |
Implementation options
- Hetzner Cloud — no native schedule on dedicated; use Robot API / external scheduler if applicable.
- Cron on another always-on machine —
ssh [email protected] shutdown -h now / wake via Hetzner API or BMC if available. - 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