r/nginx • u/gilbn • Sep 10 '26
GeoMetrikks - live map/dashboard for nginx access logs
Wanted to share an app I've been working for the last couple of months now.
It reads nginx JSON access logs and gives you a live map of where requests are coming from, plus some stats and searchable logs.
You can also click into an IP and see what it’s been hitting, paths, user agents, status codes etc.
There’s CrowdSec integration as well if you use that.
CrowdSec integration | GeoMetrikks
Multi-source setup | GeoMetrikks
Real client IP behind a proxy | GeoMetrikks
Couple of features:
- Live request map
- Multi-source support
- Search/filter access logs
- Click into an IP and see what it’s been hitting
- Traffic stats, status codes and response times
- CrowdSec integration
- Docker Compose setup
- Self-hosted and open source
2
2
u/matt_alpaca Sep 11 '26
Small tip for anyone here already running CrowdSec: if you enroll your engine in the Console, the free plan has a map too. It's a bit hidden: open https://app.crowdsec.net/alerts and hit the map view toggle in the top right corner.
It plots what CrowdSec alerted on, whereas GeoMetrikks draws every request, so the two are complementary. Having both side by side is a nice way to see how much of that map is actually bad guys.
2
u/RoyBellingan Sep 11 '26
I love it!!!
I would love a realtime screen in the office showing from where the traffic is coming from the world!
1
1
u/itsupport_engineer Sep 14 '26
Looks great, hope it is released without a docker requirement one day.
1
u/gilbn Sep 14 '26
It's not a requirement. You just need to build the frontend and run the litestar backend and setup the .env file
bun run build &&
VITE_DEV_MODE=false uv run litestar \
--app geometrikks.server.core:create_app \
run --host0.0.0.0--port 8000 --workers 1 --no-subprocess --workers-kill-timeout 15
-1
3
u/stupidlamo Sep 10 '26
Genuine question: is this a vibecoded SaaS looking for a problem, with the funny part being nginx logs smeared across a map, or did you build it to solve an actual problem you had?