1.8 KiB
1.8 KiB
CI Observer Compact Dump
Current Production (authoritative)
- Server path:
/webapps/ci-observer-dashboard-prod - Container:
ci-observer-dashboard-prod - Port:
8089 -> 8088 - Deploy branch:
main - Health check:
curl -s http://127.0.0.1:8089/api/config
Stack
- FE: HTML + CSS + Vanilla JavaScript
- BE: Python + FastAPI
- FE-BE bridge: REST API (
/api/runs,/api/filters,/api/config) - Data layer: SQLite + GitHub Actions API
Required Env
GITHUB_TOKENGH_REPOSGH_WORKFLOWS(required for polling in current logic)REFRESH_SECONDSDASHBOARD_TITLE
Key Features in main
- Metadata-rich run cards (event, actor, author, commit SHA, message, date, duration)
- Repo short name display (without org prefix)
- Race-style clock (
HH:MM:SS.cc) + date in same panel - Light mode toggle (hanging bulb), default dark, preference in localStorage
- Light mode contrast tuned for pass/fail (medium)
Recent Important Commits on main
689a78cmerge: metadata cards + race clocka719b7ddocs: runbook + architecture + stack overviewd33f96emerge: light mode toggle + contrast tuning
Standard Production Update
cd /webapps/ci-observer-dashboard-prod
git checkout main
git pull
docker compose up -d --build
Troubleshooting Fast Path
- UI loads but no runs:
- check
.env(GH_WORKFLOWSnot empty) docker compose up -d --build
- check
- FE change not visible:
- browser hard refresh
Ctrl+Shift+R
- browser hard refresh
Test Workflow Pattern
- Create isolated test folder:
/webapps/ci-observer-dashboard-<feature> - Use separate port (e.g. 8090)
- Validate, then merge to
main, deploy prod, cleanup test folder
Canonical Docs
docs/OPERATIONS_RUNBOOK.mddocs/ARCHITECTURE.mddocs/STACK_OVERVIEW.mdci-observer-handover/AGENTS.md