Files
peptide-e2e/infra
peptiderepo d922a8368f infra/vps: PRAB generation orchestrator (VPS-driven SSH, systemd timer)
Adds the VPS-side orchestrator for Option A (ADR 2026-06-22):
the Coolify KVM8 VPS (76.13.220.15) drives PRAutoBlogger generation
on prod synchronously over a held-open SSH session, escaping
Hostinger's ~10-min background-PHP-process kill.

Files:
  infra/vps/orchestrate-generation.sh
    - SSH to Hostinger; reaper sweep; wp prautoblogger generate --sync
    - Lock-aware: skips if run in-flight (plugin DB mutex)
    - Structured log lines (captured by systemd journal)
    - Failure alert: email to cto@peptiderepo.com via system mail
    - DRY_RUN=1 mode: echoes commands without executing generation
    - All config via env vars (SSH_KEY, SSH_HOST, etc.); no hardcoded secrets
    - SSH key referenced by PATH (/root/.ssh/hostinger_prod_ed25519)

  infra/vps/install-orchestrator.sh
    - Installs orchestrator to /opt/prab-orchestrator/
    - Installs systemd .service and .timer to /etc/systemd/system/
    - Does NOT enable or start timer (explicit post-QA cutover step)

  infra/vps/prab-generation.service
    - Type=oneshot, User=root, TimeoutStartSec=7200 (covers 32-min LLM calls)
    - Restart=no (timer retries next day on failure)

  infra/vps/prab-generation.timer
    - OnCalendar=*-*-* 06:00:00 UTC, Persistent=true, RandomizedDelaySec=300

DO NOT install or enable on the VPS this round — QA-gated, hold for CTO review.

Agent-Session: prab-reliability-20260622
2026-06-22 16:33:55 +00:00
..