infra/vps/: orchestrate-generation.sh (reaper sweep + wp prautoblogger generate --sync over a held-open SSH session, lock-aware, bounded, structured logging, accept-new host-key) + install-orchestrator.sh + prab-generation.{service,timer}. Code only — install/enable is the gated cutover step. Companion to prautoblogger v0.22.1.
QA: APPROVE @ f3f579f (qa-reviews/peptide-e2e/2026-06-23-f3f579f.md). CEO greenlight 2026-06-22.
Agent-Session: prab-reliability-merge-20260622
20 lines
731 B
SYSTEMD
20 lines
731 B
SYSTEMD
[Unit]
|
|
Description=Daily PRAutoBlogger generation at 06:00 UTC
|
|
Documentation=https://github.com/peptide-repo/peptide-e2e/tree/main/infra/vps/
|
|
Requires=prab-generation.service
|
|
|
|
[Timer]
|
|
# Fire daily at 06:00 UTC — before Hostinger's daily wp-cron window.
|
|
OnCalendar=*-*-* 06:00:00 UTC
|
|
# Persistent=true: if the VPS was down at 06:00 UTC, fire immediately on next
|
|
# boot so at most one day's generation is missed (not deferred indefinitely).
|
|
Persistent=true
|
|
# Up to 5 min random jitter to avoid thundering-herd if multiple VPS instances
|
|
# are ever added. Harmless with a single instance.
|
|
RandomizedDelaySec=300
|
|
# Accuracy within 1 minute (default is 1 minute; explicit for clarity).
|
|
AccuracySec=60
|
|
|
|
[Install]
|
|
WantedBy=timers.target
|