feat(infra): VPS generation orchestrator — systemd timer drives prod generation over SSH (#27)
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
This commit was merged in pull request #27.
This commit is contained in:
17
CHANGELOG.md
17
CHANGELOG.md
@@ -1,5 +1,22 @@
|
||||
# Changelog
|
||||
|
||||
## [1.8.0] - 2026-06-23
|
||||
|
||||
### Added
|
||||
- **`infra/vps/` PRAB generation orchestrator**: systemd timer + service + bash
|
||||
script that SSHes from the Coolify KVM8 VPS to Hostinger and drives
|
||||
`wp prautoblogger generate --sync` in a held-open SSH session. Sidesteps
|
||||
Hostinger's ~10-min background-PHP-process kill that was blocking full
|
||||
generation runs. Components:
|
||||
- `orchestrate-generation.sh`: main script with DRY_RUN mode, structured
|
||||
logging, reaper pre-sweep, failure email alert, and shellcheck-clean quoting.
|
||||
- `prab-generation.service` / `prab-generation.timer`: systemd oneshot service
|
||||
(2h timeout, no auto-restart) + daily 06:00 UTC timer with 5-min jitter.
|
||||
- `install-orchestrator.sh`: one-time setup script; installs units but does NOT
|
||||
enable the timer (requires explicit CEO greenlight post-QA).
|
||||
- Security: `StrictHostKeyChecking=accept-new` with pre-seeded known_hosts for
|
||||
the Hostinger IP; no hardcoded secrets; SSH key referenced by env-var path.
|
||||
|
||||
## [1.7.2] - 2026-06-17
|
||||
|
||||
### Fixed
|
||||
|
||||
Reference in New Issue
Block a user