본문으로 건너뛰기

트렌딩 - GitHub 인기 레포 & HuggingFace 모델

DuarteSantos8/openGym

JavaScript0 / 0

Docker Compose로 바로 띄우는 PWA형 운동 기록 서버

TL;DR

openGym은 Docker Compose로 띄워 쓰는 자체 호스팅 운동·체중 기록 웹 앱이며 PWA와 패스키 인증을 지원해 기기 간 동기화를 제공합니다. 모든 데이터는 호스트의 ./data 폴더에 JSON으로 저장되며 백업·이전이 단순합니다. 프로그레션 규칙, 1RM 추정, RPE/RIR 기록과 대규모 운동 라이브러리로 장기 트레이닝 관리에 적합합니다.

핵심 포인트

  • 데이터 소유권을 전제로 설계되어 ./data 폴더 하나만 백업하면 모든 사용자 상태와 기록을 보관할 수 있습니다. 프런트엔드의 프로그레션 로직과 1RM 계산이 테스트 파일과 함께 저장되어 로컬에서 동작하는 연산이 서버 의존을 줄입니다. 패스키는 개인 장치에만 비공개 키를 유지해 서버 측에 민감 정보가 남지 않습니다.
  • 프로그레션 규칙을 내장해 세트별 목표, 실패 처리, 정체 시 deload까지 자동으로 계산합니다. Greyskull LP 같은 구체적 알고리즘과 복합 리프팅 규칙을 포함해 초보자부터 중급자까지 연속성 있는 증가를 제공합니다. 각 운동 목표는 왜 그 값인지 텍스트로 알려주며, 실패 시 자동으로 부하를 유지하지 않는 정책을 적용합니다.
  • 모바일 친화적 사용성에 집중해 화면을 켜 둔 채 훈련을 이어가고, 휴대폰에서 타이머 푸시를 받는 등 실사용 흐름을 줄였습니다. 애니메이션 데모와 세트별 가이드, 전용 타임드 익서사이즈 처리로 체계적인 세션 운영이 가능합니다. 또한 외부 앱(FitNotes, Strong, Hevy, Apple Health)에서 데이터를 가져와 기존 이력을 유지할 수 있습니다.
  • 자가 호스팅과 로컬 JSON 데이터 저장으로 개인 데이터 완전 제어가 가능합니다.

이미지 분석

앱 홈 화면 스크린샷: 주간 캘린더, 오늘 운동, 체중 그래프, 연속성 스택을 보여줍니다.
홈 화면은 주간 플랜과 당일 워크아웃 진입 버튼, 체중 목표선과 최근 추세를 시각적으로 결합해 한눈에 상태를 확인하게 구성되어 있습니다. 체중 카드가 목표선(황색 점선)과 현재 값(녹색 점)으로 변화 방향을 강조하며 사용자가 목표까지 남은 양을 빠르게 파악할 수 있습니다. 하단 네비게이션과 중앙의 시작 버튼으로 실제 세션 진입 흐름이 직관적으로 설계된 점도 확인됩니다.
가이드 워크아웃 화면 스크린샷: 운동 애니메이션, 세트 입력, 타이머·건너뛰기 버튼을 포함합니다.
워크아웃 화면은 각 운동에 대해 애니메이션 데모(근육 강조 포함)와 세트별 무게·반복 입력 UI를 동시에 제공합니다. 중앙의 타이머 오버레이와 Resume/Skip 버튼으로 세트 간 흐름을 끊지 않고 빠르게 조작할 수 있게 설계되어 트레이닝 중 사용성을 높입니다. 마지막으로 이전 세션 기록을 불러오는 자동 프리필과 권장 증량 제안 텍스트가 목표 산정 흐름을 보조합니다.
통계 화면 스크린샷: 총 운동 횟수, 월별 횟수, 12주 연속 등 스탯 카드와 활동 히트맵, 체중 그래프를 표시합니다.
Stats 화면은 요약 카드와 12개월 활동 히트맵, 체중 추세 그래프를 결합해 장기적 진척을 시각화합니다. 체중 그래프는 선택한 기간(3M 등)에 따라 축과 목표선이 조절되며 변화량이 녹색으로 강조되어 감소·증가 방향을 명확히 보여줍니다. 활동 히트맵은 시간 대비 훈련량을 시각화해 규칙성 분석과 루틴 유지에 도움을 줍니다.

446

Stars

31

Forks

+204

Trending

0

조회수

446 watchers18 open issuesGNU Affero General Public License v3.0

관련 토론

아직 관련 토론이 없습니다.

댓글

댓글을 작성하려면 로그인이 필요합니다.