| 한눈에 보기 | |
|---|---|
| 저장소 | CodeWithCJ/SparkyFitness |
| 개발 | CodeWithCJ (개인) |
| GitHub 스타 | 6,619 (오늘 +54) |
| GitHub 트렌딩 | 일간 TypeScript 14위 |
| 포크 | 451 |
| 주 언어 | TypeScript |
| 공개일 | 2025-06-21 |
| 최신 릴리스 | v1.11.0 (2026-10-30) |
스파키피트니스(SparkyFitness)는 구독형 건강 앱에 흩어진 개인 데이터를 한곳에 모아 직접 관리하려는 사용자를 겨냥한 셀프호스팅 피트니스 플랫폼이다. 개인 개발자 CodeWithCJ가 2025년 6월 시작했고, 이번 주 GitHub 트렌딩 일간 TypeScript 14위에 오르며 주목받았다. 마이피트니스팔(MyFitnessPal), 플로(Flo), 헤비(Hevy) 같은 서비스의 대안을 표방한다.
무엇을 하나
README에 따르면 하나의 앱에서 다음 항목을 다룬다.
- 영양, 운동, 수분, 수면, 단식, 기분, 신체 측정 기록과 목표 설정, 일일 체크인
- 장기 추세를 보여주는 차트와 날짜 범위 지정 리포트
- 여러 사용자 프로필과 가족 공유(세분화된 권한)
- OIDC, TOTP, 패스키, MFA 등 인증 수단
- 애플 워치와 웨어 OS(Wear OS) 동반 앱
외부 연동은 애플 헬스, 구글 헬스 커넥트, 핏빗(Fitbit), 가민 커넥트(Garmin Connect), 위딩스(Withings), 오우라(Oura), 스트라바(Strava) 등 웨어러블·헬스 플랫폼과 오픈푸드팩츠(OpenFoodFacts), USDA 같은 식품 데이터베이스까지 폭넓다.
작동 방식·구조
구성은 API와 데이터 저장을 맡는 백엔드 서버, 웹 프런트엔드, iOS·안드로이드 네이티브 모바일 앱, 워치 앱으로 나뉜다. 모든 데이터는 사용자가 통제하는 인프라에 저장되며 외부 서비스 의존을 최소화했다고 설명한다.
AI 기능은 선택 사항이다. 'SparkyAI'는 대화형 인터페이스로 음식·운동·체형 수치·걸음 수를 기록하고, 음식 사진을 올려 식사를 자동 입력하며 대화 이력을 유지한다. 또 MCP(Model Context Protocol) 서버를 제공해 사용자가 선택한 LLM(bring your own LLM)을 연결할 수 있다. 다만 README는 AI 챗봇이 아직 베타 단계라고 밝혔다.
써보면
도커 컴포즈로 몇 분 안에 서버를 띄울 수 있다고 안내한다.
mkdir sparkyfitness && cd sparkyfitness
curl -L -o docker-compose.yml https://raw.githubusercontent.com/CodeWithCJ/SparkyFitness/main/docker/docker-compose.prod.yml
curl -L -o .env https://raw.githubusercontent.com/CodeWithCJ/SparkyFitness/main/docker/.env.simple.example
docker compose up -d
보안 키가 포함된 .env는 문서 사이트의 브라우저 기반 생성기로 만드는 방식을 권장한다. 서버 운영이 부담스러운 비전문가를 위해 외부 업체의 호스팅 배포 옵션도 소개하지만, 이는 독립된 서드파티 서비스라고 선을 그었다.
최근 업데이트
최신 v1.11.0(2026년 10월 30일)의 주요 변경점은 다음과 같다.
- MCP에 OAuth 2.1 인증 추가
- AI 어시스턴트의 운동 통계 도구에 훈련 리뷰 기능 추가
- GPS 기록 활동의 날씨 조회, 검사 수치 마커 테이블 추가
- 웨어 OS 앱을 GitHub 릴리스와 EAS로 배포
적응형(Adaptive) 칼로리 목표에서 활동 칼로리가 중복 가산되던 문제도 고쳤다. 업그레이드 후 남은 칼로리가 줄어들 수 있다고 안내했다. 깃허브로 설치한 안드로이드 앱은 재설치가 필요하다.
누구에게 유용한가
민감한 건강 데이터를 외부 클라우드에 맡기기 꺼리는 사용자, 여러 구독을 하나로 정리하려는 가족, 홈서버나 NAS를 운영하는 개발자에게 맞는다. 자체 LLM을 MCP로 연결해 건강 데이터를 분석해 보려는 실험에도 쓸 수 있다.
의의와 한계
가장 유의할 점은 라이선스다. README는 스파키피트니스가 오픈소스가 아닌 소스 공개(source-available) 프로젝트이며, 비상업적 사용만 허용하고 상업적 이용에는 허가가 필요하다고 명시한다. 저장소 메타데이터에는 라이선스가 표기되지 않았다.
비교표에서는 셀프호스팅, 구독·광고 없음, 가족 권한 공유, 데이터 내보내기 등에서 우위를 주장한다. 다만 프로젝트 측이 직접 작성한 표이며 일부는 이미 낡았을 수 있다고 스스로 밝히고 있어 참고용으로 봐야 한다. 수면 단계나 심박변이도는 기기에서 가져와 저장·분석할 뿐 직접 측정하지 않는다.
성숙도 면에서는 개발이 활발하지만 버전 간 호환성을 깨는 변경이 생길 수 있고, 컨테이너 자동 업데이트는 권장되지 않는다. AI 챗봇, 가족·친구 접근, API 문서는 베타로 분류돼 있다. 업그레이드 전에는 데이터베이스와 환경 설정을 백업해야 한다.




