Heads up before anything else: this is built with Claude Code. I don't have time to write a Postgres admin tool from scratch, and the existing ones
just annoy me. I don't want another desktop app to install on every machine. I don't want to hand my prod creds to some SaaS. I want something I
can drop into my docker-compose, point at my dev DB, and forget exists.
So I made dbil. One container, around 20MB, React UI baked in. Add it as a service, slap a dbil.enable: "true" label on your Postgres container,
and it picks the connection up on its own. That's the whole setup.
What it does — real ER diagram pulled from pg_catalog, no manual dragging boxes around. SQL editor with autocomplete. Paginated row browsing. Live
metrics for TPS, cache hit ratio, replication lag, slow queries, lock chains, unused indexes. The stuff you'd actually look at.
Safety is tied to a connection tag. Tag something production and DDL is just refused. DELETE or UPDATE without a WHERE gets blocked. Spot a session
blocking five others? Hit Kill and dbil sends pg_terminate_backend. No second-guessing.
State file is encrypted at the app layer — AES-256-GCM, per field, per row. Master key can come from KMS, OS keychain, a mounted secret file, an
env var, or a TTY prompt. Audit log is forward-chained SHA-256, so if someone tampers with a row directly the chain breaks and the verifier flags
it. Multi-arch images signed with cosign keyless OIDC, every release ships an SPDX SBOM.
Repo: https://github.com/unkabas/dbil
Not pretending this is enterprise-grade. It's a personal tool that turned into something I want to keep building, and I'd rather do it in the open
than sit on it. Try it, break it, star it if it's useful. Open issues with whatever feels off — that's the only way it gets better.

Top comments (0)