← Back to FreeReps

FAQ

What is FreeReps?

FreeReps is a self-hosted server that stores and visualizes your Apple Health data. It includes a web dashboard, a correlation explorer, and an MCP interface for AI assistants.

Where is my data stored?

On your own server, in a PostgreSQL database with TimescaleDB. FreeReps never sends data to any third party.

What do I need to run FreeReps?

A server (Linux or macOS) with Docker, an iPhone running the FreeReps app, and a Tailscale account. Tailscale provides encrypted access and identity-based authentication — it's how FreeReps handles auth.

How do I install the server?

Run docker compose up -d with the provided docker-compose.yml. See the GitHub README for full setup instructions.

Does it work without Tailscale?

No. Tailscale is required — FreeReps uses it for authentication and encrypted access. There is no built-in username/password login. You can disable Tailscale for local development (tailscale.enabled: false), but this removes all authentication and should never be used in production.

What health data types are supported?

FreeReps supports 100+ HealthKit data types including heart rate, blood pressure, blood glucose, sleep, workouts with GPS routes, ECG recordings, audiograms, medications, and more.

Does FreeReps support strength training workouts?

Yes. In addition to HealthKit workouts, FreeReps supports Alpha Progression for detailed strength training data including exercises, sets, reps, and weight.

Will other data sources be supported?

Yes. The roadmap includes adding more health data services as sources, such as Oura and Garmin. If you'd like to see a specific integration, please open an issue on GitHub.

What is MCP?

Model Context Protocol (MCP) lets AI assistants like Claude query your health data directly. FreeReps exposes your data as MCP tools and resources over both stdio and SSE transports.

Is it open source?

Yes. FreeReps is open source under the MIT license. Contributions are welcome on GitHub.

I found a bug / have a feature request

Please open an issue on GitHub.