Skip to content

[Feature] Allow self-hosters to set MAXMIND_LICENSE_KEY at runtime, not just as a CI build secret #659

Description

@mathewcsims

Problem

Self-hosted deployments pulling the published ghcr.io/mbombeck/healthlog image can never enable the offline GeoLite2-City/ASN databases. The in-app warning ("Online (ipwho.is) — set MAXMIND_LICENSE_KEY in CI") points to GitHub Actions secrets in HealthLog's own repo — not something a self-hoster running the published image can influence at all. So every self-hosted instance is permanently stuck on the ipwho.is online fallback, sending login IPs to a third party on every sign-in, even though a MaxMind GeoLite2 license itself is free.

Proposed solution

Support MAXMIND_LICENSE_KEY (and an account ID, if MaxMind's web service requires one) as a runtime environment variable the running container reads — e.g. downloading/refreshing the GeoLite2-City + GeoLite2-ASN .mmdb files on startup (or lazily on first use) when it's present, falling back to the current ipwho.is behavior otherwise. This would let any self-hoster supply their own free MaxMind credentials without forking and rebuilding the image.

Alternatives considered

The only current workaround is forking the repo and doing a full custom Docker build with a MaxMind key wired into a local CI-equivalent step — real effort, and it means no longer tracking the published image/release cadence. Just ignoring the warning works functionally, but means every self-hosted instance leaks login IPs to a third party for no reason, given a free first-party alternative exists.

Affected surface

Self-hosting / Docker, Admin

Additional context

Confirmed by grepping the bundled i18n strings inside the running image itself — the message explicitly reads "set MAXMIND_LICENSE_KEY in GitHub Actions secrets ... and redeploy", confirming this is CI-build-time only today, not a runtime-configurable setting, from a self-hosted deployment's perspective.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions