- HTML dashboard with auto-refresh (5min countdown) - Python checker: HTTP status, SSL expiry, App Store data - GitHub Actions: runs every 5 min, deploys via FTP to Hostinger - Monitors 13 services + iOS app + 6 SSL certs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
45 lines
1.2 KiB
YAML
45 lines
1.2 KiB
YAML
name: Update Status Page
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "*/5 * * * *" # every 5 minutes
|
|
workflow_dispatch: # manual trigger
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
update:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Run status checks
|
|
run: python3 scripts/check_status.py
|
|
|
|
- name: Commit updated status.json
|
|
run: |
|
|
git config user.name "github-actions[bot]"
|
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
git add public/status.json
|
|
git diff --cached --quiet || git commit -m "chore: update status $(date -u '+%Y-%m-%d %H:%M UTC')"
|
|
git push
|
|
|
|
- name: Deploy to Hostinger via FTP
|
|
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
|
|
with:
|
|
server: ${{ secrets.FTP_SERVER }}
|
|
username: ${{ secrets.FTP_USERNAME }}
|
|
password: ${{ secrets.FTP_PASSWORD }}
|
|
local-dir: ./public/
|
|
server-dir: /public_html/
|
|
dangerous-clean-slate: false
|
|
exclude: |
|
|
**/.git*
|
|
**/.git*/**
|