Traces, Tempo and the LGTM stack
Putting the LGTM stack on my own box: one container, a Java agent and an owner-only Grafana
I added Grafana's all-in-one otel-lgtm image next to this site's Scala/Play backend: an OpenTelemetry Java agent and Traefik send OTLP to it, Keycloak gates Grafana to one email, and the collector strips query strings. Here is the setup, the guardrails, and what the first traces showed.
17 Oct 2026
·
7 min read
·95 views
Security and privacy, in practice
Hiding the Keycloak admin console from the internet with an SSH tunnel
For a month my Keycloak admin console was one HTTPS request from anyone. How I closed it at the Traefik edge, opened a loopback-only door over SSH, and the details that decide whether the tunnel works or locks you out.
9 Oct 2026
·
6 min read
·93 views
Security and privacy, in practice
Four security headers, and the CSP I deferred on purpose
The cheapest security win on a single-container stack lives at the reverse proxy. Here's the four-header Traefik middleware I shipped, the two things I deliberately held back, and the report-only CSP rollout I'm lining up next.
8 Jul 2026
·
6 min read
·128 views
Building this site in public
One Spring Boot jar, two hosts: a gated SPA and a public blog
How I added a public, server-rendered blog to a login-gated CV site without a second app or container — one jar, two hostnames, and a host-dispatch filter.
14 Jun 2026
·
3 min read
·141 views