Add health monitor web app with CI/CD pipeline #1

Merged
hnl merged 2 commits from feat/initial-app into main 2026-04-30 06:18:43 +00:00
Owner

Summary

  • Flask uptime monitor: polls hosts every N seconds, stores results in SQLite
  • Dashboard with latency breakdown (Connect / TTFB / Transfer), 24h distribution (min/avg±σ/max), and uptime timeline
  • CRUD UI at /hosts for managing monitored hosts without editing config files
  • Hosts stored in DB; config.yaml used only for initial seeding

CI/CD (.forgejo/workflows/ci.yml)

Job Trigger What it does
test every push / PR runs pytest in python:3.13-slim container
build push to main only builds Docker image, pushes to Forgejo registry with :latest and :<sha> tags

Image: git.bitvektor.net/hnl/py_healthcheck_web

Running locally

pip install -r requirements.txt
python3 app.py          # http://localhost:5000

Running with Docker

docker compose up -d

Test plan

  • 39 unit tests pass (pytest tests/)
  • Browser automation: dashboard renders, latency breakdown shown, CRUD UI add/edit/pause/delete all verified
  • Dockerfile builds successfully
## Summary - Flask uptime monitor: polls hosts every N seconds, stores results in SQLite - Dashboard with latency breakdown (Connect / TTFB / Transfer), 24h distribution (min/avg±σ/max), and uptime timeline - CRUD UI at `/hosts` for managing monitored hosts without editing config files - Hosts stored in DB; `config.yaml` used only for initial seeding ## CI/CD (`.forgejo/workflows/ci.yml`) | Job | Trigger | What it does | |-----|---------|-------------| | `test` | every push / PR | runs `pytest` in `python:3.13-slim` container | | `build` | push to `main` only | builds Docker image, pushes to Forgejo registry with `:latest` and `:<sha>` tags | Image: `git.bitvektor.net/hnl/py_healthcheck_web` ## Running locally ```bash pip install -r requirements.txt python3 app.py # http://localhost:5000 ``` ## Running with Docker ```bash docker compose up -d ``` ## Test plan - [x] 39 unit tests pass (`pytest tests/`) - [x] Browser automation: dashboard renders, latency breakdown shown, CRUD UI add/edit/pause/delete all verified - [x] `Dockerfile` builds successfully
Add health monitor web app with CI/CD
Some checks failed
CI/CD / test (pull_request) Has been cancelled
CI/CD / build (pull_request) Has been cancelled
de4dfb8343
Flask app that polls configured hosts every N seconds, stores
check results in SQLite, and serves a dashboard with latency
breakdown (connect/TTFB/transfer), 24h distribution stats,
and an uptime timeline. CRUD UI for managing hosts.

Includes Dockerfile, docker-compose, and Forgejo Actions
pipeline that runs the test suite and pushes an image to the
Forgejo container registry on every merge to main.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update image ref to Bitvektor.net org
Some checks failed
CI/CD / test (pull_request) Has been cancelled
CI/CD / build (pull_request) Has been cancelled
04cda387b9
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
hnl merged commit 6d46dace51 into main 2026-04-30 06:18:43 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Bitvektor.net/py_healthcheck_web!1
No description provided.