Raspberry Pi에서 자체 호스트 Wger를 사용하여 운동 및 이득을 계획 및 추적

Raspberry Pi에서 자체 호스트 Wger를 사용하여 운동 및 이득을 계획 및 추적

피트니스 체제를 계획하는 것은 어렵고 이를 추적하는 것은 더 어렵습니다. Wger는 목표를 추적하고, 질량을 최대화하고, 이두박근을 벤치마킹하고, 다이어트를 고안하는 데 도움이 되는 자체 호스팅 웹 앱입니다. 설정이 간단하고 여러 장치에서 진행 상황을 동기화할 수 있는 모바일 앱이 함께 제공됩니다.

Raspberry Pi에서 운동 추적 웹 앱을 자체 호스팅해야 하는 이유는 무엇입니까?

운동을 하는 슈퍼맨 조끼를 입은 근육질의 남자

근육 증가, 체중 감량 또는 기타 신체 기능 및 미적 개선에 대해 진지하게 생각하고 있다면 계획을 세우고 기록을 유지하는 것이 중요합니다.

당신은 당신의 몸에 무엇이 들어가는지, 그리고 그것이 연료로 소비하는 필수 칼로리를 알아야 합니다. 운동이 균형 잡히고 효과적인지 확인해야 합니다. 마찬가지로 중요한 것은 운동과 다이어트가 어떤 영향을 미치고 있는지 측정해야 합니다. 허벅지가 두꺼워? 당신의 둔근이 더 단단합니까? 체중이 원하는 방향으로 움직이고 있습니까?

이러한 요소를 추적하고 기록하는 데 도움이 되는 수십 개의 앱이 있습니다. 그러나 대부분은 광고를 포함하고 있으며 구독 결제 옵션을 기반으로 하거나 일회성 요금을 지불하지 않는 한 특정 기능이 작동하지 않는 부분 유료화 모델을 사용합니다. 거의 모두가 귀하의 데이터를 수집하므로 귀하가 근육량을 추적하는 동안에도 광고 회사에서 귀하를 추적할 수 있습니다.

또 다른 대안은 식단과 운동을 Excel 스프레드시트에 꼼꼼하게 기록하는 것입니다.

Wger는 Raspberry Pi에서 자체 호스팅할 수 있는 완전한 기능을 갖춘 운동 관리자입니다. 무료이며 오픈 소스이므로 원하는 방식으로 수정하거나 배포할 수 있습니다. 페이월 뒤에 잠긴 기능이 없으며 사용자가 소유한 하드웨어에서 실행되기 때문에 아무도 사용자를 추적하지 않는다는 것을 확신할 수 있습니다.

Raspberry Pi에 Wger Workout Manager를 설치하는 방법

Wger는 상당히 강력한 애플리케이션이므로 사용 가능한 Raspberry Pi 4B가 있는 경우 Raspberry Pi 4B를 사용하는 것이 좋습니다.

당사 가이드에 따라 Raspberry Pi를 웹 서버로 설정한 다음 SSH(Secure Shell)를 사용하여 Pi에 연결하십시오.

모든 패키지를 업데이트하고 업그레이드한 다음 wger ​​GitHub 리포지토리를 새 디렉터리에 복제합니다.

git clone https://github.com/wger-project/docker.git wger

새 디렉터리로 변경한 다음 nano 텍스트 편집기를 사용하여 Docker Compose 파일을 엽니다.

cd wger
nano docker-compose.yml

작성 당시 Docker Compose 파일에는 파일 상단에 버전 지시문이 없습니다. 즉, Docker Compose를 불러오려고 하면 작동하지 않으며 다음 오류가 표시됩니다.

네트워크에 대해 지원되지 않는 구성 옵션: ‘default

서비스에 대해 지원되지 않는 구성 옵션: ‘nginx

볼륨에 대해 지원되지 않는 구성 옵션: ‘postgres-data

Docker Compose 버전을 지정해야 합니다. Docker Compose 사양의 버전 3에서는 wger ​​Docker Compose 파일에 사용되는 특정 구문 지원이 제거되었지만 현재 Raspberry Pi OS에서는 사용할 수 없는 버전 3.9에서 다시 도입되었기 때문에 버전 3 이전 버전을 사용하는 것이 필수적입니다. 예를 들어 버전 3.7을 지정하면 다음 또는 유사한 오류 메시지가 표시됩니다.

services.web.depends_on에 잘못된 유형이 포함되어 있습니다. 배열이어야 합니다.

우리는 wger를 작동시키기 위한 가장 안정적인 Docker Compose 버전이 2.2라는 것을 발견했습니다. Docker Compose 파일 맨 처음에 다음 줄을 삽입합니다.

version: '2.2'

Nginx는 wger ​​Docker Compose 파일에 포함되어 있으며 wger가 작동하려면 Nginx가 필요합니다. 기본적으로 Nginx는 포트 80에서 수신 대기합니다. 그러나 Pi를 사용하여 다른 사이트 및 서비스를 호스팅하고 서버로 설정하는 가이드를 따랐다면 이미 Apache가 포트 80에서 수신 대기하고 있습니다. 아래로 스크롤하여 nginx 로 이동하세요. 섹션에서 80:80 이라고 표시된 ports: 아래 줄을 찾습니다 . 이것을 다음과 같이 변경하십시오.

81:80

Ctrl + O 를 누른 다음 Ctrl + X 를 눌러 nano를 저장하고 종료 합니다. 분리 모드에서 Docker Compose를 불러옵니다.

docker-compose up -d

…Docker Compose가 이미지를 다운로드하고 필요한 컨테이너를 설정하는 동안 기다립니다. 프로세스가 완료되면 다음을 실행합니다.

docker-compose ps

…컨테이너의 상태를 확인합니다. 각각의 상태는 “Up(정상)”이어야 합니다.

멋진 복고풍 용어로 docker-compose ps의 출력

이제 your-pi-local-ip-address:81 에서 wger ​​인스턴스를 방문할 수 있습니다 . 땀방울과 분필 가루가 뿌린 아지랑이 속에서 바벨을 놓는 강한 근육질의 팔 세트의 영감을 주는 배경 이미지가 표시되지만 등록하거나 로그인할 수는 없습니다.

도메인 이름을 사용하여 wger에 액세스하려면 등록 기관의 DNS 페이지를 방문하여 새 “A” 레코드를 만드십시오. 호스트를 “@”로 설정하고 값을 공용 IP 주소로 설정합니다.

터미널로 돌아가서 Apache의 사이트 사용 가능 디렉터리로 이동하고 nano를 사용하여 새 구성 파일을 만듭니다.

cd /etc/apache2/sites-available
sudo nano wger.conf

새 파일에 다음을 붙여넣습니다.

<VirtualHost *:80>
ServerName your-domain.tld
ProxyPass / http://127.0.0.1:81/
ProxyPassReverse / http:/127.0.0.1:81/
ProxyPreserveHost On
</VirtualHost>

Ctrl + O 를 누른 다음 Ctrl + X 를 눌러 nano를 저장하고 종료 합니다. 구성을 활성화한 다음 Apache를 다시 시작합니다.

sudo a2ensite wger.conf
sudo service apache2 restart

이제 모든 브라우저에서 도메인 이름으로 wger ​​인스턴스를 방문할 수 있습니다. 페이지 상단의 등록 버튼을 누르고 이름, 이메일 주소 및 비밀번호를 입력 하십시오 . 다른 작업을 수행하지 마십시오. 그렇지 않으면 다음과 같은 오류 메시지가 표시됩니다.

CSRF 확인에 실패했습니다. 요청이 중단됨

이는 wger가 Django를 데이터베이스로 사용하고 신뢰할 수 있는 소스를 별도의 환경 파일에 정의해야 하기 때문입니다.

나노의 wger ​​환경 파일

컨테이너를 종료한 다음 nano를 사용하여 이 파일을 엽니다.

docker-compose down
nano config/prod.env

이메일의 “보낸 사람” 주소를 설정하고 시간대를 조정하십시오. 이제 시작하는 줄을 찾으십시오.

CSRF_TRUSTED_ORIGINS

웹 주소와 Pi의 루프백 주소를 포함하도록 이를 변경한 후 다음 행의 주석을 제거하십시오.

X_FORWARDED_PROTO_HEADER_SET=True

인터넷에서 임의의 사람들이 wger ​​인스턴스에 액세스하여 운동을 추적하는 것을 원하지 않으면 “응용 프로그램”섹션까지 아래로 스크롤하고 다음을 설정하십시오.

ALLOW_REGISTRATION=False
ALLOW_GUEST_USERS=False

Ctrl + O 를 누른 다음 Ctrl + X 를 눌러 nano를 저장하고 종료 합니다.

마지막으로 할 일은 스누퍼가 MITM(man-in-the-middle) 공격을 사용하여 트래픽을 가로챌 수 없도록 TLS 인증서와 암호화 키를 설정하는 것입니다.

sudo certbot

목록에서 도메인 이름을 선택하면 Certbot이 TLS 인증서와 암호화 키를 가져와 배포합니다. 변경 사항을 적용하려면 Apache를 한 번 더 다시 시작하십시오.

sudo service apache2 restart

wger 운동 사이트에 대한 모든 연결은 HTTPS로 업그레이드됩니다.

Raspberry Pi에서 Wger를 사용하여 피트니스 관리

바벨과 함께 쪼그리고 앉는 여자

키보드로 열심히 일한 후에 체육관에 갈 준비가 거의 된 것입니다! 이전에 제공한 자격 증명을 사용하여 계정에 로그인하면 “운동”, “영양 계획” 및 “체중”의 세 섹션이 있는 빈 대시보드가 ​​표시됩니다. 각 열의 하단에 있는 녹색 버튼을 사용하여 이들 각각에 데이터를 입력하는 것은 귀하에게 달려 있습니다.

wger 대시보드

항목을 수동으로 생성하거나 각 페이지 상단의 각 범주에 대한 메뉴 모음을 클릭하고 데이터가 포함된 CSV 파일을 가져올 수 있습니다.

트레이닝 메뉴 에는 일정, 캘린더, 갤러리 등 운동과 관련된 모든 것이 포함되어 있습니다. 운동 을 클릭 한 다음 운동 추가 를 클릭합니다 . 운동에 이름을 지정한 다음 확인란을 선택하여 원하는 날짜를 선택하십시오. 저장 을 클릭하면 운동 루틴에 특정 운동을 추가할 수 있습니다. 상자에 입력하면 이 텍스트가 포함된 제안이 표시됩니다.

위기 운동에 대한 wger ​​제안

운동을 선택하면 슬라이더를 사용하여 담당자 수를 설정하고 관련된 가중치와 같은 세부 정보를 추가할 수 있습니다. 운동을 저장하면 훈련할 근육 그룹이 빨간색으로 강조 표시된 요약이 표시됩니다. 톱니바퀴를 클릭하고 새 체중 기록 을 선택하여 모든 운동 세션에 메모를 추가할 수 있습니다 .

샘플 wger ​​운동

영양 에서 BMI를 확인하고, 영양 계획을 만들고, 일일 칼로리 섭취량을 계산할 수 있습니다. 재료를 검색할 필요가 없습니다. 78,000개 이상의 제품에서 매일 식사를 선택하고 영양가를 확인하세요. 영양 계획에 식사를 추가하고 달력에 식단 개요를 유지하십시오.

이동 중에도 운동 추적

체육관에 노트북을 가져가는 사람은 많지 않고 wger는 대부분의 브라우저에서 잘 표시되지만 Android용 wger ​​전용 앱을 사용하면 더 잘 작동합니다 . 이 앱은 Google Play 에서도 사용할 수 있습니다 .

Android 기기에 앱을 설치한 후 일반적인 방법으로 앱을 열고 Use custom server 를 선택합니다 . 사용자 이름과 비밀번호를 입력한 다음 서버의 URL을 입력하십시오.

wger 모바일 앱은 웹 앱과 동일하게 작동합니다. 트레이닝 로그에 액세스하고, 운동을 추가하고, 식사 계획을 입력할 수 있습니다.

Raspberry Pi에 Wger 설치: 성공

Wger는 개인 정보 보호에 관심이 있고 데이터를 제3자에게 판매하지 않고 본격적인 운동과 다이어트를 계획하려는 경우 완벽한 솔루션입니다. 이것이 귀하와 관련이 없다면 모바일 앱 스토어에서 제공되는 많은 상용 제품 중 하나를 고려하십시오.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다