SparkyFitness README

The project's README from github.com/CodeWithCJ/SparkyFitness. As one markdown file: README.md.

🌐 Language

SparkyFitness

A self-hosted, privacy-first alternative to MyFitnessPal, Flo, Hevy, Shotsy & more. Track nutrition, exercise, body metrics, and health data while keeping full control of your data. image

SparkyFitness is a self-hosted fitness tracking platform made up of:

It stores and manages health data on infrastructure you control, without relying on third party services.

Core Features

How SparkyFitness Compares

SparkyFitness is source-available, not open source — the license is non-commercial and requires permission for commercial use.

Most apps do one thing. One good nutrition app runs $40–$100 a year; covering everything SparkyFitness covers means three or four subscriptions, per person, and still no single report across them. SparkyFitness does it in one app, free, for the whole household.

US list prices, 14 Aug 2026. Full cost breakdown →

SparkyFitness wger MyFitnessPal Cronometer Hevy Zero Flo Garmin Connect Google Health
Self-hosted, your data stays yours ⭐ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌
No subscription, no ads ✅ ✅ ❌ 🟡 🟡 ❌ ❌ ✅ 🟡
Nutrition, strength, sleep, fasting, cycle & meds in one place* ⭐ 🟡 🟡 🟡 ❌ ❌ ❌ 🟡 🟡
Full history & custom date-range reports ✅ free 🟡 💰 💰 💰 💰 💰 ✅ 💰
Wearable & health-platform sync ✅ 8+ services ❌ ✅ ⭐ ✅ 🟡 🟡 🟡 ✅
Family sharing with granular permissions ⭐ 7 permissions ❌ ❌ 🟡 ❌ ❌ ❌ 🟡 🟡
CSV import & free data export ✅ 🟡 💰 ✅ ✅ 🟡 🟡 🟡 ❌
MCP server + bring your own LLM ⭐ 🟡 ❌ ❌ ❌ ❌ ❌ ❌ ❌

⭐ standout  •  ✅ supported  •  🟡 partial  •  💰 paid tier only  •  ❌ not supported

* Sleep stages, HRV and blood glucose are imported from your watch, phone or meter. SparkyFitness stores, analyses and charts them rather than measuring them itself.

This table is written by the project being compared, so read it that way. Checked 14 Aug 2026 against official docs, repos and store listings; some of it is already out of date. If a cell is wrong or unfair to another project, open an issue — corrections that make SparkyFitness look worse are just as welcome.

See the full comparison → — 17 apps across self-hosted, nutrition, specialist and device-ecosystem categories, plus where each of them beats us.

Health & Device Integrations

SparkyFitness can sync data from multiple health and fitness platforms:

Integrations automatically sync activity data such as steps, workouts, and sleep, along with health metrics like weight and body measurements, to your SparkyFitness server.

Optional AI Features (Beta)

SparkyAI provides a conversational interface for logging data and reviewing progress.

Note: AI features are currently in beta.

Installation

Choose one of the two ways to run SparkyFitness:

1. Self-Hosted

Get a SparkyFitness server running in minutes using Docker Compose:

# 1. Create a new folder
mkdir sparkyfitness && cd sparkyfitness

# 2. Download docker-compose.yml
curl -L -o docker-compose.yml https://raw.githubusercontent.com/CodeWithCJ/SparkyFitness/main/docker/docker-compose.prod.yml

# 3. Set up your .env configuration (Choose one option):
# Option A (Recommended): Generate custom .env with 1-click secure keys in browser:
# 👉 https://codewithcj.github.io/SparkyFitness/install/env-generator

# Option B: Minimal template — 5 values, everything else uses the defaults
# docker-compose already applies. Fine for most self-hosted installs.
curl -L -o .env https://raw.githubusercontent.com/CodeWithCJ/SparkyFitness/main/docker/.env.simple.example

# Option C: Full reference — every supported variable, commented out with its
# default. Start here for SSO, SMTP, an external database or a reverse proxy.
# curl -L -o .env https://raw.githubusercontent.com/CodeWithCJ/SparkyFitness/main/docker/.env.example

# 4. Replace the placeholders (skip if you used Option A — the generator
# already filled these in). The server refuses to start while they are left
# as-is, and the database would otherwise initialize with a published password.
#   SPARKY_FITNESS_DB_PASSWORD        any strong password
#   SPARKY_FITNESS_API_ENCRYPTION_KEY openssl rand -hex 32     (64 hex chars)
#   BETTER_AUTH_SECRET                openssl rand -base64 32  (44 chars)
#   SPARKY_FITNESS_FRONTEND_URL       the URL you will open the app at

# 5. Start the app
docker compose pull && docker compose up -d

# Access application at http://localhost:3004

Note: For complete configuration options, reverse proxies, and alternative install methods, visit the Documentation Site.

2. Cloud (for non-technical users)

If you are not a technical user and prefer not to run SparkyFitness on your own server, you can deploy a hosted instance in the cloud using one of the following providers.

Run on PikaPods
Deploy with Zenith

Note: These are independent third-party services. We encourage you to explore features provided by each provider to determine the one that best fits your needs.

🎥 Video Tutorial

Watch the video

Quick 2-minute tutorial showing how to install SparkyFitness (self-hosted fitness tracker).

Documentation

For full installation guides, configuration options, and development docs, please visit our Documentation Site.

Need Help?

Star History

Star History Chart

Translations

Weblate Translations

Translation status

Translation status

Repository activity

Alt

Contributors

⚠️ Known Issues / Beta Features ⚠️

SparkyFitness is under active development. Breaking changes may occur between releases.

The following features are currently in beta and may not have been thoroughly tested. Expect potential bugs or incomplete functionality:

SparkyFitness (CodeWithCJ/SparkyFitness)

oidc
Searching Database…

What is this?SparkyFitness is a self-hosted fitness and health tracker built for families, covering nutrition, exercise, water, sleep, fasting, mood and body measurements while keeping all your data on infrastructure you control.
Is this one app or several pieces I need to run?It's made up of three parts: a backend server for the API and data storage, a web-based frontend, and native mobile apps for iOS and Android.
How do I get it running?Self-host it in minutes with Docker Compose, or if you're not technical, deploy a hosted instance through one of the listed third-party cloud providers instead.
Do I need Docker to self-host it?Yes, the standard self-hosted setup runs via Docker Compose; the documentation site covers full config, reverse proxies, and alternative install methods.
What's still rough around the edges?The project is under active development with possible breaking changes between releases, so auto-updating containers isn't recommended; the AI Chatbot, Family & Friends access, and API docs are explicitly flagged as beta.
Where does my health data actually go?Because it's self-hosted, your data stays on infrastructure you control instead of being sent to third-party servers, even when syncing from services like Apple Health or Fitbit.
Is this actually open source?No, it's source-available rather than open source: the license is non-commercial and you need permission from the project to use it commercially.
What can the SparkyAI chat assistant do?It's a beta conversational feature that lets you log food, exercise, body stats and steps by chatting, upload food photos for automatic meal logging, and keeps conversation history for follow-ups.
Which health and fitness services can it sync with?It integrates with Apple Health, Google Health Connect, Fitbit, Garmin Connect, Withings, Polar Flow, Oura, Hevy, Strava, Mealie, Tandoor, Wger, and several nutrition databases like USDA and OpenFoodFacts.
How does family sharing work?SparkyFitness supports multiple user profiles with granular, permission-based family access, letting households track and review each other's data under one roof.
Can I use my own LLM instead of a fixed AI provider?Yes, SparkyFitness ships an MCP server so you can bring your own LLM rather than being locked into a single AI provider.
What are similar projects?openGym, openGym, TREK, Termix, noop, taskview-community, appwrite, ente
Creator
CodeWithCJ
Size
130 MB
Stars
6.4K
Age
1y
Commits · 90 Days