{"slug": "healthlog-open-source-personal-health-tracker", "title": "HealthLog – Open-source personal health tracker", "summary": "HealthLog, an open-source personal health tracker from developer MBombeck, is now available as a self-hosted application that runs on a user's own server via a single `docker compose up` with PostgreSQL in a single volume and encrypted backups to any S3 bucket. HealthLog stores notes, documents, questionnaire answers, Coach conversations and tokens encrypted at rest with AES-256-GCM, while measurement values, lab values, medication names and mood scores remain unencrypted so they can be queried and charted. The software is source available under the PolyForm Noncommercial 1.0.0 licence with no subscription or paid tier, ships a REST API with an OpenAPI 3.1 contract, FHIR R4 export and read API, and an MCP server for AI assistants, and its optional Coach feature answers from the user's own numbers using a user-supplied OpenAI or Anthropic key or a local model on Ollama, LM Studio or vLLM, or can be left off entirely.", "body_md": "## Built to run on your own server\n\n### Your server\n\n- One docker compose up\n- PostgreSQL in a single volume\n- Encrypted backups to any S3 bucket\n- No subscription, no vendor cloud\n\n### Secure by default\n\n- AES-256-GCM for notes, documents and keys\n- Passkeys, 2FA and OpenID Connect\n- Strict CSP, server-side sessions\n- No telemetry, no third-party trackers\n\n### Open at every edge\n\n- Source available, PolyForm Noncommercial\n- REST API with an OpenAPI 3.1 contract\n- FHIR R4 export and read API\n- MCP server for AI assistants\n\n## Every source on one timeline\n\nApple Health, Withings, WHOOP, Oura, Polar, Google Health, Nightscout and what you type in land on one axis, next to your medications, lab results and visits. When two devices report the same day, you decide which one counts.\n\n## Open any day in one tap\n\nTap a date on a chart, in a list or on the calendar strip and the day docks beside the page: what was running, every reading against your usual range, and what happened.\n\n## Ask your record, or don't\n\nThe Coach answers from your own numbers and shows the steps it took. Use your own OpenAI or Anthropic key, a local model on Ollama, LM Studio or vLLM, or leave AI off. Everything else works without it.\n\n## In your pocket\n\nThe native iPhone app keeps Apple Health in two-way sync with your server. On Android, or anywhere else, install the web app from the browser.\n\n## And everything else\n\n[The full feature list](https://healthlog.dev/features)\n\n### Track\n\n- Vitals, sleep, body composition\n- ECG recordings\n- Blood glucose and CGM\n- Mood and wellbeing check-ins\n- Cycle tracking\n- Weather, air quality, pollen\n- Health score and correlations\n\n### Records\n\n- Medication schedules and stock\n- Supplements that log themselves\n- Lab results with unit conversion\n- Illness journal and symptoms\n- Doctor visits and check-ups\n- Vaccination record\n- Encrypted document vault\n- Record search with ⌘K\n\n### Share\n\n- Doctor report PDF\n- Share links with a QR code\n- Family access, read or write\n- Records for a child\n- 10 languages\n\n### Connect\n\n- Withings, WHOOP, Oura, Polar\n- Fitbit and Pixel through Google Health\n- Strava, Nightscout, Dawarich\n- Health Connect import\n- Garmin, directly\n- Push, Telegram, ntfy, e-mail\n\n## Try it, then run it\n\n### Live demo\n\nYears of made-up data, read-only. Works in the iPhone app too.\n\nDemo credentials\n\n[Try the live demo](https://demo.healthlog.dev)\n\n### Your own server\n\nFree for noncommercial use. Behind HTTPS, drop the last echo.\n\n```\ngit clone https://github.com/MBombeck/HealthLog.git\ncd HealthLog\ncp .env.example .env\necho \"POSTGRES_PASSWORD=$(openssl rand -hex 32)\"   >> .env\necho \"ENCRYPTION_KEY=$(openssl rand -hex 32)\"      >> .env\necho \"API_TOKEN_HMAC_KEY=$(openssl rand -hex 32)\"  >> .env\n# Plain HTTP (LAN, NAS, Tailscale) only; omit behind HTTPS:\necho \"SESSION_COOKIE_SECURE=false\"                 >> .env\ndocker compose up -d\n```\n\n[Installation guide](https://docs.healthlog.dev)\n\n## Questions\n\n## Is HealthLog free?\n\nYes, for noncommercial use. HealthLog is source available under the PolyForm Noncommercial 1.0.0 licence. You run it on your own server with a single docker compose up. There is no subscription and no paid tier. The iPhone app is a small one-time purchase on the App Store; the TestFlight beta and a copy you build yourself are free.\n\n## Does HealthLog sync with Apple Health?\n\nYes. The native SwiftUI iOS app (on the App Store, source on GitHub) keeps Apple Health (HealthKit) in two-way sync: steps, weight, blood pressure, blood glucose, sleep, and body composition flow straight to your own server. On any platform you can also drop an Apple Health export.zip on the upload page.\n\n## Where is my health data stored?\n\nEntirely on your own infrastructure. HealthLog is self-hosted on PostgreSQL, with notes, documents, questionnaire answers, Coach conversations and tokens encrypted at rest using AES-256-GCM. Measurement values, lab values, medication names and mood scores are stored unencrypted so they can be queried and charted. There is no usage telemetry and no third-party analytics.\n\n## Which devices and services does HealthLog integrate with?\n\nWithings, WHOOP, Oura, Polar, Google Health (Fitbit and Pixel), Strava, Nightscout and Dawarich sync over OAuth or your own endpoints, and Apple Health syncs live through the iOS app or via export import. On Android you can import a Health Connect export. AI insights run against OpenAI, Anthropic, your ChatGPT subscription, or a local model (Ollama, LM Studio, vLLM).\n\n## Can I connect HealthLog to an AI assistant?\n\nYes. HealthLog can expose your own record to MCP-compatible assistants such as Claude or ChatGPT over an OAuth-secured Model Context Protocol server. It is off by default and gated behind a module switch; you mint the connector token yourself, read-only or read-and-write, and any write is previewed, confirmed, append-only and audited.\n\n## Can HealthLog store and search my medical documents?\n\nYes. An optional, off-by-default document vault keeps your letters, reports and scans encrypted at rest on your own server. Each upload is read and made searchable automatically, by a local reader that runs on your server or in your own browser, or, with your per-document consent, by your configured AI provider for a richer read of scans. You can search the words inside your documents over an encrypted blind index that stores nothing readable, ask a single document a grounded and cited question, and share one with a clinician through a time-boxed, revocable QR link with photo metadata stripped.\n\n## Can I let a family member see my health record?\n\nYes, if they have an account on the same instance. You send them an invitation from Settings and it gives them nothing until they accept it. The invitation names a level: they can read your record, read it and add to it, or manage it, which can also correct and remove what is already recorded. It also names how much of the record it opens. You can pick from readings, medications, lab results, health background, illness, mood and mind, cycle and documents, and everything you do not pick stays closed and is refused exactly the way a record you never shared would be. Managing always covers the whole record, because a note in one section can be about any other. Deferring one of your reminders, and overturning a dose you have already decided, stay with you at every level. What somebody adds is stored as yours, because it is a fact about your body, with their name in the audit trail rather than on the row, and the activity panel names each act with a verb that says what it was. They can never reach your password, your second factor, your connected services, your notification channels, your exports or the sharing controls themselves. An invitation can name the day the access lapses, and either side can end it sooner, with effect on their next request rather than their next login. This is a grant between two accounts, so nobody ever shares a login.\n\n## Can I keep a record for my child, or for somebody I care for?\n\nYes. A managed profile is a health record for a person who does not sign in at all. It has no password and no e-mail address of its own. When the person is ready to look after it themselves, a guardian can hand the profile over with a one-time link, and it becomes their own account with all of its history, while they decide who keeps access. You give it a name, optionally a date of birth and a gender, and the language and timezone its own days and reminders are measured in, and you become its first guardian in the same step, so the record is never left unattended. A guardian can change any of those later, behind the same second factor. You can invite a second guardian, who accepts the way any invitation is accepted. Its reminders reach the people looking after it rather than a phone it does not have: medication and measurement reminders, safety-floor and low-stock alerts all go to the guardians, each in their own language, naming whose record they are about. The record can never be left with nobody, so the last guardian may delete the profile but may not simply walk away from it. Creating one asks for your second factor.\n\n## Is there an Android app?\n\nNot a native one. HealthLog is a web app you can install to your home screen from the browser, and it runs on Android like on any other platform. For what your phone and watch record, Health Connect is the way in: export your data from Health Connect to a cloud folder, then upload that file on the import page in HealthLog's settings. Steps, heart rate, sleep, workouts and more arrive with their history, and apps you already connect to HealthLog directly are left out so nothing counts twice. It is an import rather than a live sync, so you repeat it when you want newer data.\n\n## Is HealthLog a medical device?\n\nNo. HealthLog is a personal health-tracking tool, not a medical device, and it does not diagnose. Screening questionnaires like PHQ-9 and GAD-7 are for self-awareness, not diagnosis, and the AI Coach summarises your own data rather than giving medical advice. Always consult a qualified clinician for medical decisions. Your data stays on your own server.", "url": "https://wpnews.pro/news/healthlog-open-source-personal-health-tracker", "canonical_source": "https://healthlog.dev", "published_at": "2026-11-14 11:10:47+00:00", "updated_at": "2026-11-14 11:20:05.389316+00:00", "lang": "en", "topics": ["ai-products", "ai-tools", "agent-protocols", "artificial-intelligence"], "entities": ["HealthLog", "MBombeck", "PostgreSQL", "Apple Health", "OpenAI", "Anthropic", "Ollama", "LM Studio"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/healthlog-open-source-personal-health-tracker", "markdown": "https://wpnews.pro/news/healthlog-open-source-personal-health-tracker.md", "text": "https://wpnews.pro/news/healthlog-open-source-personal-health-tracker.txt", "jsonld": "https://wpnews.pro/news/healthlog-open-source-personal-health-tracker.jsonld"}}