09-lubelogger.md
kstack: book: Centerpoint Home Lab chapter: Documents & Organization page: LubeLogger tags: [lubelogger, vehicles, maintenance, postgres]
Overview
LubeLogger is a vehicle maintenance and fuel log tracker. It stores service
records, oil changes, tyre rotations, fuel fill-ups, and other vehicle events.
External-only route with GeoBlock and CrowdSec — no internal home.local route.
Authentication is LubeLogger's own built-in user system. Backend is PostgreSQL 16.
Access
| Type | URL | Auth |
|---|---|---|
| External | https://logger.jeeves5454.ddns.net |
GeoBlock + CrowdSec (own auth) |
No internal route configured.
Containers
| Container | Image | Role |
|---|---|---|
lubelogger |
ghcr.io/hargata/lubelogger:latest |
Web application |
lubelogger-db |
postgres:16 |
PostgreSQL database |
lubelogger (application)
Image: ghcr.io/hargata/lubelogger:latest
Runtime: .NET 10.0.8 (ASP.NET Core)
Key environment variables:
| Variable | Value / Notes |
|---|---|
POSTGRES_CONNECTION |
REDACTED (includes password) |
ASPNETCORE_HTTP_PORTS |
8080 |
LC_ALL / LANG |
en_US.UTF-8 |
Bind mounts:
| Host Path | Container Path | Purpose |
|---|---|---|
/home/jeeves/docker/lubelogger/data |
/App/data |
App data and uploads |
/home/jeeves/docker/lubelogger/keys |
/root/.aspnet/DataProtection-Keys |
ASP.NET data protection keys |
lubelogger-db (PostgreSQL 16)
Image: postgres:16
| Variable | Value |
|---|---|
POSTGRES_USER |
lubelogger |
POSTGRES_DB |
lubelogger |
POSTGRES_PASSWORD |
REDACTED |
Bind mounts:
| Host Path | Container Path |
|---|---|
/home/jeeves/docker/lubelogger/db |
/var/lib/postgresql/data |
Traefik Labels
traefik.http.routers.lubelogger.rule: Host(`logger.jeeves5454.ddns.net`)
traefik.http.routers.lubelogger.entrypoints: websecure
traefik.http.routers.lubelogger.tls.certresolver: letsencrypt
traefik.http.routers.lubelogger.middlewares: plex-geoblock@file,crowdsec-bouncer@file,lubelogger-headers
traefik.http.middlewares.lubelogger-headers.headers.customrequestheaders.X-Forwarded-Proto: https
traefik.docker.network: traefik-net
traefik.http.services.lubelogger.loadbalancer.server.port: 8080
Notes / Gotchas
POSTGRES_CONNECTIONin the container environment contains the database password in plaintext — treat this as sensitive and avoid logging the environment of this container.- The
DataProtection-Keysbind mount (/lubelogger/keys) must persist across container restarts. If it is lost, all active user sessions will be invalidated and users will need to log in again. - The
X-Forwarded-Proto: httpsmiddleware is required for ASP.NET Core to correctly identify requests as HTTPS when behind a reverse proxy.
Last Updated: 2026-06-17
No comments to display
No comments to display