demo-app becomes a small demonstration application (demo.hoortrend.com)
Why
inside.hoortrend.com now has its own repository (hoortrend/inside, private), which keeps this history. demo-app becomes what its name says: a small application showing that a deployed app works and answers, on https://demo.hoortrend.com.
What
-
The application:
app/server.py, Python's standard library only.- Routes:
/(French or English),/api/infoand/healthz. - Each page shows the pod and node that served it, the commit, the uptime and the requests served by that pod.
- Strict CSP and security headers.
- Routes:
- Tests: 9 unittest cases over real HTTP.
-
Image: python:3.12-alpine, non-root, the commit as
APP_VERSION. -
Kubernetes:
- namespace with Pod Security
restricted; - NetworkPolicy: only its port in, nothing out;
- 2 replicas with probes, limits, a read-only root filesystem and no API token;
- Service, PodDisruptionBudget, and an Ingress for demo.hoortrend.com with Let's Encrypt and a rate limit.
- namespace with Pod Security
-
Pipeline: the same chain as the other projects, plus a final check from the Internet that
/api/inforeports the pipeline's own commit.
Checked locally
- Tests pass.
- The image runs read-only, as a non-root user, with every capability dropped.
- Trivy: 0 HIGH or CRITICAL.
- The manifests are applied before the merge. The deploy job only changes the image.