About this project

SparkyFitness is a self-hosted fitness and health tracking platform positioned as a privacy-first alternative to apps like MyFitnessPal, Flo, Hevy and Shotsy. It consists of a backend server (API plus data storage), a web frontend, and native iOS and Android apps, and keeps health data on infrastructure the user controls. Core tracking covers nutrition, exercise, hydration, sleep, fasting, mood and body measurements, along with goal setting, daily check-ins, interactive charts and long-term reports. It supports multiple user profiles with family access, light and dark themes, and authentication options including OIDC, TOTP, passkeys and MFA. Health and device integrations listed include Apple Health, Google Health Connect, Google Health API, Fitbit, Garmin Connect, Withings, Polar Flow, Oura, Hevy, Strava (partially tested), Yazio (unofficial API), plus food databases such as OpenFoodFacts, USDA, Fatsecret, Nutritionix, Mealie, Tandoor, Norish, Swiss Food Database, Free Exercise DB and Wger. These sync activity data like steps, workouts and sleep, as well as weight and body measurements. Sleep stages, HRV and blood glucose are imported from external devices rather than measured by the app. Optional beta AI features (SparkyAI) provide a conversational interface for logging food, exercise, body stats and steps, including uploading food images for automatic meal logging, with retained conversation history. The README also mentions an MCP server and bring-your-own-LLM support. Installation is primarily via Docker Compose: create a folder, download the production compose file, configure a .env file (a browser-based generator, a minimal five-value template, or a full reference are offered), set required secrets such as the database password, API encryption key, auth secret and frontend URL, then run docker compose pull and up, accessing the app on port 3004. Non-technical users can deploy through third-party hosted providers PikaPods or Zenith. Documentation, an installation guide, an interactive .env generator, feature docs and developer guides are hosted on a separate documentation site, with a short video tutorial and Discord community support. Licensing is explicitly source-available rather than open source: the licence is non-commercial and requires permission for commercial use. The README includes a self-authored comparison table against wger, MyFitnessPal, Cronometer, Hevy, Zero, Flo, Garmin Connect and Google Health, and notes that the table is written by the project itself and may be out of date. The project is under active development, warns that breaking changes may occur between releases, advises against auto-updating containers, and marks the AI chatbot, family and friends access, and API documentation as beta. Translations are managed through Weblate.