summaryrefslogtreecommitdiff
path: root/deployment
AgeCommit message (Collapse)Author
2026-09-20Verify deploys, and add a self-recovering health checkPeter Stone
Deploy used to end with `systemctl status`, which a human skims and a script ignores: it exits zero whether or not anything works, and says nothing about the sub-services behind the gateway. A deploy could therefore report success while /scout/ served 502s — which is exactly what happened, undetected, for three and a half weeks. scripts/deploy now: * syncs scripts/ to ${SITE_DIR}/app-scripts/ so the timer runs the deployed version from a stable path * restarts sub-services that are not active. They are separate units and a doot deploy does not touch them, so one sitting in `failed` after exhausting its restart limit stays down through any number of green deploys. * calls scripts/verify-deploy, which asserts and exits non-zero scripts/verify-deploy asserts all five binaries are executable, all four units are active, all four gateway routes answer without a 5xx, and the running build stamp matches the commit just built. scripts/health-check runs the same assertions on a 5-minute timer and recovers what it can: chmod +x a binary that lost its execute bit, reset-failed and start a unit that gave up. There is no mail/ntfy/apprise on this host, so alerting is a greppable HEALTH ALERT line in the journal, a status JSON at data/health-status.json for the dashboard to surface later, and a non-zero exit so the unit shows in `systemctl --failed`. OnBootSec=2min because a reboot is when this failure mode first appeared. Shared assertions live in scripts/lib/site-checks.sh so verify-deploy and health-check cannot drift apart. Two bugs were found and fixed in these checks by testing their failure paths, both of which would have made them report a broken site as healthy: * `$(curl ... || echo 000)` concatenates curl's own "000" transport-error output with the echoed one, giving "000000", which matched no case arm and was reported ok. * check_services sets FAILED_SERVICES, but health-check captured it with `$(...)`, so the array was populated in a subshell and discarded — silently disabling service recovery entirely. Both the calling convention and the subshell semantics are now pinned by tests. scripts/test-health-checks.sh: 9 cases, mostly negative, against a temp tree. Recovery additionally verified live on this host by stopping hawaii.service and by clearing scout's execute bit; both were detected, recovered and re-verified. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018AwnALZL6bD4VBtATDVv3B
2026-07-17chore(deploy): remove abandoned push-to-deploy scaffoldingPeter Stone
deployment/deploy duplicated scripts/deploy (the one actually in use). deployment/post-receive documented installing a git hook at /site/doot.terst.org/app-code/hooks/post-receive, but that hook was never actually installed and the app-code checkout it depended on has been removed -- this path was never wired up.
2026-07-05fix(deploy): add CSS build step before rsync to prevent missing output.cssClaudomator Agent
Both deploy scripts now run `npm ci || npm install && npm run build` before syncing web/static/, ensuring Tailwind output.css is always present in fresh checkouts. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-05Improve session handling, shopping UI, and cleanupPeter Stone
Session improvements: - Extend session lifetime to 7 days for mobile convenience - Add idle timeout to extend session on activity - Use standard cookie name for better compatibility Shopping model: - Add FlattenItemsForStore helper for extracting store items - Add StoreNames helper for store list - Improve shopping-tab.html with inline add forms Frontend: - Add WebSocket reconnection and agent approval UI to app.js - Simplify timeline calendar JS (move event positioning to CSS) - Update login page styling Deployment: - Remove unused git checkout step from deploy.sh - Update apache.conf WebSocket proxy settings Documentation: - Add Agent Context API feature spec to issues/ Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22Add deploy script and remove resolved issuesPeter Stone
- Add deployment/deploy script for server-side deploys - Remove 10 completed issue files (001-016 batch) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20Add VPS deployment artifacts and documentationPeter Stone
Include systemd service file, Apache reverse proxy config, and comprehensive deployment guide for Linux VPS setup. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>