From 1cc1220e20838c14af210140c8ad354df3bb208b Mon Sep 17 00:00:00 2001 From: pavlov346346-source Date: Thu, 10 Sep 2026 18:51:00 +0300 Subject: [PATCH] Ops: document Timeweb panel cron deploy --- ops/timeweb/README.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 ops/timeweb/README.md diff --git a/ops/timeweb/README.md b/ops/timeweb/README.md new file mode 100644 index 0000000..90c48e3 --- /dev/null +++ b/ops/timeweb/README.md @@ -0,0 +1,31 @@ +# Timeweb fallback auto-deploy + +Use this only for the Year/shared-hosting fallback where system `crontab` is unavailable and scheduling is configured in the Timeweb panel. + +## What it does + +`caterium-production-sync.sh` checks the GitHub `production` branch, deploys only when the commit changed, validates that `public/index.html` exists, creates a rollback archive before changing live files, prevents overlapping runs, and keeps the four newest backups. + +## Timeweb panel Crontab + +Create one task that runs every 5 minutes. + +Command: + +```sh +/bin/sh "$HOME/caterium-production-sync.sh" >> "$HOME/.caterium-deploy/cron.log" 2>&1 +``` + +Copy `ops/timeweb/caterium-production-sync.sh` from this repository to: + +```text +$HOME/caterium-production-sync.sh +``` + +If the live document root is not auto-detected, prefix the command with the exact path, for example: + +```sh +CATERIUM_WEB_ROOT="$HOME/caterium.ru/public_html" /bin/sh "$HOME/caterium-production-sync.sh" >> "$HOME/.caterium-deploy/cron.log" 2>&1 +``` + +The deploy checkout uses the already configured GitHub SSH access. The old Cloudflare Worker must remain enabled as a fallback until the Timeweb production domain, SSL, Supabase flows, uploads and PDF generation have been verified.