Skip to content

Move self-host app jobs from GitHub Actions to OVH cron - #122

Merged
RaviTejaKNTS merged 1 commit into
mainfrom
docs/self-host-automation-overview
Nov 13, 2026
Merged

RaviTejaKNTS merged 1 commit into
mainfrom
docs/self-host-automation-overview

Conversation

@RaviTejaKNTS

Copy link
Copy Markdown
Collaborator

What

Moves the seven self-host app scheduled workflows off GitHub Actions and onto the OVH server as cron jobs. GitHub keeps only build and CI work.

Job New time (UTC)
self-host-discovery-github daily 07:02
self-host-refresh-github daily 07:06 and 19:06
self-host-discovery-lists Sunday 08:10
self-host-discovery-catalogs Sunday 09:14
self-host-discovery-directories 1st of month 10:18
self-host-refresh-source-hosts daily 11:22
self-host-refresh-technical Monday 12:26
self-host-catch-up hourly at :30, except 05–06

Design and operating steps: scripts/self-host-apps/ovh/README.md.

Failure fixes

  • Install catalogs (4 of last 5 failed): Docker Hub returned 401 because the GitHub bearer token was sent to it. Token now goes only to api.github.com; bounded retries, Retry-After handling and pacing added for the Docker Hub 180/min limit.
  • Technical evidence (3 of last 5 failed): old strict failure policy and a path is not defined crash (both already fixed on main). Unreadable sources dropped from 57 to 26 of 4,913 with GitHub blob-to-raw normalization and Docker Hub README API reads.
  • Directories (1 of 4 failed): old dedupe query bug, already fixed on main.
  • Late GitHub schedules: removed by the move; hourly catch-up handles missed runs.
  • Candidate writes now fail on database errors instead of counting them as warnings.

Runtime safety

Self-updating checkout with interrupted-update recovery, per-job and checkout locks, whole-run timeouts, systemd scope memory/CPU limits, supervisor drift check, and capped log output so the automation dashboard always sees each run's start and end.

Testing

  • npm run quality: 113 passed.
  • Self-host suite on OVH (Linux, systemd scope tests on): 95 passed, 9 database tests skipped, 0 failed.
  • Six of seven jobs ran once on OVH against production from the working tree; all passed. The source-host job will run after merge.
  • Five independent Sol reviews; all findings fixed.

After merge

Install the supervisor and append scripts/self-host-apps/ovh/crontab.txt on OVH per the README, then check all eight dashboard rows.

🤖 Generated with Claude Code

The seven self-host app schedules now run as cron jobs on the OVH server
from a self-updating checkout at /srv/stack127-self-host, with an hourly
catch-up job for missed runs. GitHub Actions keeps only build and CI work.

- Supervisor with per-job and checkout locks, time, memory and CPU
  limits, recovery from interrupted updates, supervisor drift check,
  and log output capped so the automation dashboard always sees runs.
- Fix Docker Hub 401s (GitHub token no longer sent there), add bounded
  retries and pacing, keep GitHub API redirects within api.github.com,
  and fail candidate writes on database errors instead of warning.
- Technical evidence reads more sources and prints bounded summaries;
  full reports stay in files. Install options stay dry-run.
- Monitoring manifest, docs and tests updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@RaviTejaKNTS
RaviTejaKNTS merged commit bd6bac5 into main Nov 13, 2026
4 checks passed

This branch was previously deployed

1 inactive deployment
production — a6cd825c Deployed Nov 13, 2026 by RaviTejaKNTS via verify-production-build #111
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant