Skip to main content

09-lubelogger.md

kstack: book: Centerpoint Home Lab chapter: Documents & Organization page: LubeLogger tags: [lubelogger, vehicles, maintenance, postgres]

Overview

emptyLubeLogger 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_CONNECTION in the container environment contains the database password in plaintext — treat this as sensitive and avoid logging the environment of this container. The DataProtection-Keys bind 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: https middleware is required for ASP.NET Core to correctly identify requests as HTTPS when behind a reverse proxy.

    Last Updated: 2026-06-17