HealthSave Get the iPhone app
HealthSave Observatory

Your whole health history, on a server you run.

Observatory keeps your Apple Health data on your own hardware and shows what changed against your own baseline.

Observatory Today screen with a recovery gauge and cards for sleep, resting heart rate and HRV
Free to self-host
Source-available under the Elastic License 2.0.
Your hardware
Mac, Linux or WSL2 with Docker Compose v2.
Nothing leaves by default
You turn on every route yourself.
Works with HealthSave
The iPhone app sends your Apple Health data.

No HealthSave server in the path.

Your iPhone sends Apple Health data straight to the machine you chose. We can't see it, because it never reaches us.

Your iPhone

HealthSave reads Apple Health with your permission, including what your Apple Watch, scale and sleep tracker wrote there.

Your server

Everything below runs on hardware you control.

  • Stores every reading in TimescaleDB
  • Compares each day with your baseline
  • Computes findings with statistics
  • Serves your dashboards and API

What you use it from

  • Observatory web dashboard
  • Grafana and SQL
  • Your private read API
  • Home Assistant over MQTT
  • CSV and JSON exports

Whoop and Amazfit plugins, and the Garmin and Samsung importers, land in the same database. Devices that write to Apple Health, such as Oura and Withings, arrive through HealthSave.

See what changed, then check why.

Every finding shows the claim, its method, the sample size and its limits, so you can check it yourself.

Observatory Findings screen showing evidence cards with effect size, significance, window and confidence

Screens show synthetic sample data, captured from the current build.

Statistics find it. AI only puts it into words.

The engine that spots changes is deterministic and runs on your machine. A language model is optional, and it can only narrate what the engine already found.

Works without AI
Trends, anomalies, correlations and recovery checks need no model at all.
Local first
Add narration with Ollama and it runs on your own hardware.
Cloud is opt-in
Only derived findings can go to a cloud model, redacted first. Raw readings can't.
Never averaged
When two devices disagree, you see the gap, not a made-up middle.

Install it with one command.

You need Docker Compose v2 running on macOS, Linux or WSL2. The installer uses the newest tagged release.

curl -fsSL https://raw.githubusercontent.com/umutkeltek/healthsave-observatory/main/install.sh | bash
  • Set upBasic setup creates your API key and dashboard password, then starts the stack.
  • PairRun healthsave pair, then connect HealthSave on your iPhone by QR code or by hand.
  • SyncTap Sync New Data. Your history lands in your own database.

You may not need a server at all.

HealthSave works on its own. Observatory is for people who want their full history in a database they control.

App aloneApp + Home AssistantApp + Observatory
What you runNothingYour Home AssistantYour Observatory server
DashboardsOn your iPhoneHome Assistant entitiesWeb dashboard and Grafana
Full history in a databaseNoNoYes, in TimescaleDB
Findings over your baselineSummaries on iPhoneNoYes, with evidence
Query it yourselfExport CSV or JSONThrough Home AssistantSQL and a private API
HealthSave ProOptionalRequiredRequired for background sync

What flows in.

  • Apple Health through HealthSave
  • Whoop plugin, early
  • Amazfit and Zepp plugin, early
  • Garmin Connect importer
  • Samsung and Huawei Health importer

Android Health Connect and a generic webhook are planned. Neither is available yet.

What it doesn't do yet.

You are the administrator, so you should know these before you install.

  • One shared API keyEvery client holds the same access. Scoped read tokens are planned.
  • No built-in HTTPSThe API speaks plain HTTP. Beyond your LAN, use a reverse proxy.
  • One dashboard passwordThere are no separate user accounts yet.
  • No encryption from the stackUse disk encryption on the host, such as FileVault, LUKS or an encrypted NAS volume.
  • Routes skip the egress gateThe gate covers the AI narrator. MQTT, exports and Grafana send data where you point them.
  • Sync timing is up to iOSBackground delivery is best-effort, and iOS may delay it for hours.

Questions, answered straight.

Does HealthSave see my data?
No. Observatory runs on your hardware and your iPhone sends data straight to it. HealthSave runs no server in that path, and the stack makes no outbound calls you did not turn on.
What does it cost?
The self-hosted server is free to run. Background sync from your iPhone needs HealthSave Pro, a one-time in-app purchase with no subscription. Optional paid add-ons exist: Observatory Care for the self-hosted server and Observatory Hosted as a founding pre-order, with details on /pricing/.
Is it open source?
The server and web app are source-available under the Elastic License 2.0: you can read the code, change it and self-host it, but you can't offer it to others as a managed service. The protocol and SDK layers are Apache-2.0.
Do you host it for me?
Not yet. Observatory Hosted is a founding pre-order for a private instance, run in the EU or in your own cloud account. We build it only once 15 people have pre-ordered, and a pre-order is refunded in full until your instance exists. Self-hosting stays free: you run the server and look after its updates and backups, and the CLI has commands for both.
What can it run on?
A laptop, NUC, Mac mini, Synology NAS, Proxmox VM or small Linux server with Docker Compose v2. Plan on 2 vCPU and 4 GB of RAM, plus more if you add a local AI model.
Can I reach it away from home?
Yes, as a deliberate step: put an HTTPS reverse proxy in front of it. The API speaks plain HTTP, so never publish port 8000 to the internet directly.
Do I need an iPhone?
For Apple Health, yes. Whoop and Amazfit plugins and the Garmin and Samsung importers work without one. Android Health Connect support is in development and not available yet.
Is this medical advice?
No. Observatory shows what changed in your own data. It is not a medical device and it does not diagnose or treat anything.

Run it on your own hardware.

Start with the iPhone app if you just want your data out. Add Observatory when you want to keep all of it.