AI Neo Lab
스킬

내 운동 데이터는 내 서버에, openGym으로 셀프 호스팅 운동 기록 시작하는 법

대부분의 운동 앱은 데이터를 클라우드에 가두고 구독을 강요하지만, openGym은 직접 서버에 설치해 내 데이터를 완전히 소유하며 오프라인·패스키 로그인·PWA까지 지원합니다. 이 자료는 도커로 openGym을 띄우고, 기존 앱(FitNotes, Strong, Hevy) 데이터를 가져와 루틴 계획·세트 기록·근육 피로도 분석까지 한 번에 해결하는 과정을 다룹니다.

운동 기록을 남기려 앱을 깔았더니 구독 팝업이 뜨고, 데이터 내보내기조차 안 돼 답답했던 적 있으신가요? openGym은 내 서버에 직접 올려 쓰는 셀프 호스팅 운동 트래커로, 구독·광고·데이터 종속 없이 루틴 작성부터 세트 기록, 근육 피로도 시각화까지 모두 내 손에 넣어줍니다.

openGym이란 무엇인가요

openGym은 자체 서버에서 구동되는 헬스·바디웨이트 트래커예요. 운동 루틴을 계획하고, 워밍업·슈퍼세트·유산소까지 모든 세트를 기록할 수 있습니다. 몸무게도 함께 저장되며, 스마트폰과 노트북 간에 자동 동기화됩니다. 프로젝트는 3개월 전(2026년 7월)에 시작했고, 이번 달(2026년 10월)까지 꾸준히 업데이트되었습니다. 현재 3,671개 별을 받았고 포크는 603개이며, AGPL-3.0 라이선스를 따릅니다. 주요 언어는 JavaScript이고, Docker 등으로 배포할 수 있습니다.

openGym의 핵심 철학은 데이터 주권, 무구독, 오프라인 우선이에요. 여러분의 운동 데이터는 직접 관리하는 폴더에 보관되므로 다른 서비스에 맡길 필요가 없습니다. 구독료나 광고가 없으며, 인터넷이 없어도 전체 기능을 사용할 수 있습니다. 또한 PWA 형태로 홈 화면에 설치하고, 패스키 로그인으로 보안을 강화할 수 있습니다.

  • 루틴 계획
  • 가이드 운동
  • 세트·몸무게 로깅
  • 통계·히트맵·차트·PR
  • Progressive Web App (PWA)
  • 패스키 로그인

왜 openGym을 써야 할까요

대부분 운동 앱은 데이터를 자기 서버에 두고, 구독을 강요하거나 서비스 종료와 함께 사라질 위험이 있어요. openGym은 내 서버(또는 NAS·VPS)에 직접 올려 데이터 폴더를 내가 완전히 통제하며, AGPL-3.0 라이선스로 포크·수정·재배포까지 자유롭습니다.

그럼에도 최신 앱 경험은 그대로예요. PWA(Progressive Web App)라 홈 화면에 설치하면 네이티브 앱처럼 동작하고, 패스키(WebAuthn) 로그인으로 비밀번호 없이 안전하게 들어갑니다. 오프라인에서 운동 기록을 남겨도 온라인 복귀 시 휴대폰·노트북 간 자동 동기화됩니다.

  • 데이터 폴더 하나만 백업하면 전체 이력·설정·체중 기록까지 통째로 이전 가능
  • FitNotes·Strong·Hevy 등 기존 앱 CSV/JSON 가져오기 지원
  • 루틴 계획·웜업·슈퍼세트·유산소까지 세트 단위 기록
  • 부위별 피로도·디트레인·히트맵·PR 차트 내장
도커로 1분 만에 띄우기
docker run -d \
  --name opengym \
  -p 3000:3000 \
  -v $(pwd)/data:/app/data \
  ghcr.io/duartesantos8/opengym:latest

저장소는 3,671개 스타를 받았고, 3개월 전(2026년 7월) 첫 커밋 후 이번 달(2026년 10월)까지 활발히 업데이트 중입니다. JavaScript(React + Vite + Node.js) 기반이라 익숙한 스택으로 커스텀하기도 쉽고, Self-hosting 가이드(docs/SELF_HOSTING.md) 따라가면 리버스 프록시·TLS·자동 업데이트까지 한 번에 잡힙니다.

설치·사용 5단계: 도커로 띄우고 첫 루틴까지

openGym은 JavaScript로 작성된 자체 호스팅 헬스 트래커로, 도커 컴포즈를 이용해 간단히 설치할 수 있어요. 3개월 전(2026년 7월)에 처음 만들어졌고, 현재 3,671개의 스타와 603개의 포크를 보유하고 있습니다. AGPL-3.0 라이선스로 공개되어 있어 자유롭게 fork할 수 있죠.

운동 루틴을 주간 단위로 계획하고, 가이드 워크아웃을 실행하며, 세트와 체중을 기록할 수 있어요. FitNotes, Strong, Hevy에서 데이터를 가져오고, 패스키 로그인으로 보안도 강화합니다. 오프라인에서도 동작하며, 모바일과 노트북 간 동기화가 지원됩니다.

  1. 1. 도커 컴포즈 실행~5분

    프로젝트 디렉터리에서 docker compose up -d 를 실행해 서버를 띄웁니다.

  2. 2. HTTPS/도메인 설정~10분

    Let's Encrypt 등으로 인증서를 발급받아 HTTPS를 설정하고, 도메인에 연결합니다.

  3. 3. 패스키 회원가입~3분

    앱에 접속해 패스키 기반 회원가입을 진행합니다.

  4. 4. FitNotes/Strong/Hevy 데이터 임포트~8분

    설정 메뉴에서 CSV 파일을 업로드해 기존 데이터를 가져옵니다.

  5. 5. 주간 루틴 생성 및 첫 세트 기록~5분

    루틴을 만들고, 첫 세트를 입력하면 기록이 저장됩니다.

도커 컴포즈 실행 예시
docker compose up -d
특징설명
Stars3,671개
Forks603개
언어JavaScript
라이선스AGPL-3.0

핵심 기능 한눈에 보기

openGym은 홈·가이드 운동·통계·PWA·패스키 다섯 가지 핵심 기능으로 구성돼 있어요. 홈 화면에서는 오늘 할 운동과 체중을 한눈에 확인하고, 가이드 운동 모드에서는 슈퍼세트·웜업·유산소까지 단계별로 안내받으며 세트를 기록할 수 있어요.

통계 탭은 히트맵·PR 차트·근육 피로도와 디트레인 시각화를 제공해 어떤 근육을 얼마나 썼는지, 회복이 필요한 부위는 어딘지 직관적으로 보여줘요. PWA로 설치하면 홈 화면 아이콘에서 바로 실행되고, 오프라인에서도 기록이 가능하며 온라인 복귀 시 자동 동기화돼요. 로그인은 패스키(WebAuthn)만 지원해 비밀번호 없이 생체 인증이나 하드웨어 키로 안전하게 들어올 수 있어요.

기능설명
홈오늘 운동·체중 한눈에 보기
가이드 운동슈퍼세트·웜업·유산소 단계별 안내
통계히트맵·PR·근육 피로도/디트레인
PWA설치·오프라인 동기화
인증패스키(WebAuthn) 로그인
  • 데이터는 내 서버 폴더에 저장돼 외부 의존성 없음
  • 구독·광고·계정 없이 완전 자율 운영
  • React + Vite + Node.js 스택으로 최신 웹 기술 적용

주의할 점·운영 팁

openGym은 AGPL-3.0 라이선스로 배포됩니다. 이 라이선스는 프로그램을 수정·배포할 경우 소스 코드를 동일한 라이선스로 공개해야 한다는 의무가 있습니다. 따라서 서버에 openGym을 설치하고 직접 운영한다면, 수정한 부분이 있더라도 해당 소스 코드를 사용자에게 제공해야 함을 기억해 주세요.

데이터는 여러분이 직접 관리하는 폴더에 저장됩니다. "데이터를 내 폴더에 두고, 내가 직접 백업한다"는 점은 가장 큰 장점 중 하나입니다. 백업이 필요할 때는 해당 폴더를 외부 저장소에 복사하거나, 데이터베이스를 사용한다면 DB 덤프를 만들어 보관하면 됩니다. 이렇게 하면 실수로 데이터가 손실돼도 손쉽게 복구할 수 있습니다.

  • ⭐️ 스타: 3,671개
  • 🍴 포크: 603개
  • 🖥️ 주요 언어: JavaScript
  • 📜 라이선스: AGPL-3.0
  1. 업데이트 전 확인

    새 버전을 적용하기 전에 CHANGELOG와 마이그레이션 가이드를 검토해 데이터 구조가 바뀌는지 확인합니다.

  2. 마이그레이션 수행

    필요한 경우 데이터베이스 스키마를 최신 버전에 맞게 조정하고, 기존 데이터를 백업한 뒤 복원합니다.

정리: 내 운동 기록, 이제 진짜 내 것

openGym은 여러분의 서버에 직접 설치해서 운동 기록을 완전히 소유할 수 있게 해 드려요. 데이터는 여러분이 관리하는 폴더에 저장되니 구독료, 광고, 서비스 종료 같은 걱정 없이 언제든지 접근할 수 있습니다. 현재 GitHub 저장소는 3,671개의 스타와 603개의 포크를 기록했으며, AGPL-3.0 라이선스로 배포됩니다. 처음 만들어진 시점은 3개월 전(2026년 7월)이고, 마지막 업데이트는 이번 달(2026년 10월)입니다.

⭐ 스타3,671개
🍴 포크603개
📜 라이선스AGPL-3.0

설치는 아주 간단합니다. Docker Compose 파일을 다운로드하고 아래 명령어만 실행하면 서버가 바로 구동됩니다. 자세한 설치 방법은 Self-hosting guide 문서에 정리돼 있으니 참고해 주세요.

터미널에서 실행
docker compose up -d
  • Live demo: opengym.duarte-santos.ch/demo/ (브라우저에서 바로 체험)
  • Website: opengym.duarte-santos.ch (설치 안내 및 문서)
  • Android APK: 최신 릴리즈에서 다운로드 가능
  • Roadmap: ROADMAP.md 에서 향후 계획 확인

이런 글도 있어요