Files
Marc-André Bombeck e8c96eea88 docs: say what deletion keeps and for how long, and drop stale claims
The reproductive-health page promised that deleting all data or the
account erases at once. Both wait for the grace window now, the nightly
dumps keep a record until they age out, and the old pgdata volume is a
full copy until it is removed; the page says so and how to make deletion
final. The README, the getting-started note on majors, the move guide and
the Unraid and Portainer templates catch up with Postgres 18, the backups
volume and the recovery kit. The demo seed's spread bound leaves room for
the seed's own one-in-150 spread.
2026-10-25 16:47:00 +01:00
..

HealthLog on Portainer

HealthLog ships a Portainer app template that deploys the app and its PostgreSQL 18 database as one stack from the project docker-compose.yml.

Add the template

  1. In Portainer, go to Settings → App Templates.

  2. Set the URL to the raw template file:

    https://raw.githubusercontent.com/MBombeck/HealthLog/main/docs/self-hosting/portainer/templates.json
    
  3. Save. HealthLog now appears under App Templates.

Deploy

  1. Open App Templates → HealthLog.
  2. Fill in the variables. Generate each secret with openssl rand -hex 32 (a 64-character hex string):
    • POSTGRES_PASSWORD
    • ENCRYPTION_KEY — back this up; losing it makes encrypted data unrecoverable
    • API_TOKEN_HMAC_KEY
    • SESSION_COOKIE_SECURE — set to false for plain-HTTP / LAN access, or login silently fails. Set to true only behind an HTTPS reverse proxy.
    • NEXT_PUBLIC_APP_URL and APP_URL — how you reach the app, e.g. http://nas:3000 or https://healthlog.example.com.
  3. Deploy the stack. The app waits for PostgreSQL, runs database migrations on first boot, then starts serving.
  4. 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 (postgres-data, the Postgres data); 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.