Built a squash tournament tracker + self-hosted monitoring for it
I’ve been working on Squash tournament tracker — https://squashon.com/
It’s a simple app for running squash tournaments with friends: create accounts, add friends, generate tournaments, play them, then hit Calculate ELO so ratings update with a standard ELO system. There’s a shared leaderboard so it stays competitive without a complicated flow.
I already run tournaments with my friends on it, so there’s a live global leaderboard - not an empty demo. The app is free; any feedback or questions are welcome if you want to try it.
How I run it
On the infra side, I put together a monitoring stack for this small public site from home:
- Hardware: Ubuntu on a Lenovo ThinkCentre M910q (i3-7100T, 8GB RAM, 256GB SSD)
- Runtime: Everything in Docker (app, supporting services, Grafana, Prometheus, etc.)
- Exposure: The site is reachable through a Cloudflare Tunnel, so I’m not opening ports on my router
What I’m collecting
- Prometheus + Grafana for dashboards
- Loki for container logs; I parse JSON lines in Grafana for traffic (popular paths, usage patterns) and a few app-level signals
- cAdvisor for container metrics (CPU, uptime, etc.)
- node_exporter for host metrics (CPU/RAM/disk, temps, uptime)
What I use monitoring for
I use it to see how the host behaves under real load, which routes get the most traffic, and which paths look bot-heavy. I block those requests early in middleware so they don’t burn CPU or skew the numbers.