mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 04:32:42 +00:00
At a first start there is no recorded key yet, so an operator facing a refusal they are certain is false has no row to delete. With ENCRYPTION_KEY_CHECK=warn (default enforce) the check still runs and logs its full outcome, /api/health names a mismatch as a warning field without failing, requests are served, and no key is recorded unless every key id passes. The variable is on the compose whitelist, in both example files, the env manifest, the Unraid and Portainer templates and the published-env guard. The log block, the mismatch page and the self-hosting pages offer it as the last resort after the three real fixes, and say that it disables a safety check.
HealthLog on Portainer
HealthLog ships a Portainer app template that deploys the app and its
PostgreSQL 16 database as one stack from the project docker-compose.yml.
Add the template
-
In Portainer, go to Settings → App Templates.
-
Set the URL to the raw template file:
https://raw.githubusercontent.com/MBombeck/HealthLog/main/docs/self-hosting/portainer/templates.json -
Save. HealthLog now appears under App Templates.
Deploy
- Open App Templates → HealthLog.
- Fill in the variables. Generate each secret with
openssl rand -hex 32(a 64-character hex string):POSTGRES_PASSWORDENCRYPTION_KEY— back this up; losing it makes encrypted data unrecoverableAPI_TOKEN_HMAC_KEYSESSION_COOKIE_SECURE— set tofalsefor plain-HTTP / LAN access, or login silently fails. Set totrueonly behind an HTTPS reverse proxy.NEXT_PUBLIC_APP_URLandAPP_URL— how you reach the app, e.g.http://nas:3000orhttps://healthlog.example.com.
- Deploy the stack. The app waits for PostgreSQL, runs database migrations on first boot, then starts serving.
- Open the app URL. The first registered user becomes the admin.
Verify the running version:
curl -s http://<host>:3000/api/version
Notes
- Persistent state lives in one named volume (
pgdata, the Postgres data dir); the app container is stateless. Back up the database to back up everything. - Pin a release tag (
HEALTHLOG_IMAGE_REF=:vX.Y.Z) for deliberate upgrades, or track:latest. Skim the CHANGELOG and back up before upgrading. Migrations are forward-only. - For passive discovery you can also submit this template to the community aggregator at https://github.com/Lissy93/portainer-templates.