在 Raspberry Pi 上自行託管 Wger 以計劃和跟踪您的鍛煉和收穫

在 Raspberry Pi 上自行託管 Wger 以計劃和跟踪您的鍛煉和收穫

計劃您的健身計劃很困難,而跟踪它更難。Wger 是一款自託管網絡應用程序,可幫助您跟踪目標、最大化體重、對二頭肌進行基準測試以及設計飲食。它設置簡單,並附帶移動應用程序,可以跨設備同步您的進度。

為什麼要在 Raspberry Pi 上自行託管鍛煉跟踪 Web 應用程序?

穿著超人背心的肌肉發達的傢伙在鍛煉

如果您真的想增加肌肉、減輕體重或以其他方式改善身體的表現和美觀,那麼制定計劃並保持計劃並保持記錄很重要。

你需要知道什麼進入了你的身體,以及它作為燃料消耗的重要卡路里;您需要確保您的鍛煉平衡且有效。同樣重要的是,您需要衡量您的鍛煉和飲食所產生的影響。你的大腿粗嗎?你的臀部收緊了嗎?您的體重是否朝著您希望的方向移動?

有許多應用程序可以幫助您跟踪和記錄這些因素。然而,大多數都包含廣告,並且要么基於訂閱支付選項,要么使用免費增值模式,除非您支付一次性費用,否則某些功能將無法使用。幾乎所有這些都收集您的數據,因此即使您跟踪肌肉質量,廣告公司也可以跟踪您。

另一種選擇是在 Excel 電子表格中詳細記錄您的飲食和鍛煉。

Wger 是一個功能齊全的鍛煉管理器,您可以在 Raspberry Pi 上自行託管。它是免費和開源的,這意味著您可以按照您選擇的任何方式修改或分發它。沒有鎖定付費專區的功能,並且因為它在您擁有的硬件上運行,所以您可以確定沒有人跟踪您。

如何在 Raspberry Pi 上安裝 Wger 鍛煉管理器

Wger 是一個相當強大的應用程序,因此我們建議您使用 Raspberry Pi 4B(如果有的話)。

按照我們的指南將 Raspberry Pi 設置為 Web 服務器,然後使用 Secure Shell (SSH) 連接到 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 的版本。必須使用版本 3 之前的版本,因為 wger Docker Compose 文件中使用的某些語法支持在 Docker Compose 規範的版本 3 中被刪除,但隨後在版本 3.9 中重新引入——目前不適用於 Raspberry Pi OS。例如,如果您指定版本 3.7,您將看到以下或類似的錯誤消息:

services.web.depends_on 包含無效類型,它應該是一個數組

我們發現讓 wger 工作的最可靠的 Docker Compose 版本是 2.2。在 Docker Compose 文件的開頭插入以下行:

version: '2.2'

Nginx 包含在 wger Docker Compose 文件中,wger 需要它才能運行。默認情況下,Nginx 偵聽端口 80。但是,如果您使用 Pi 託管其他站點和服務並按照我們的指南將其設置為服務器,則您已經讓 Apache 偵聽端口 80。向下滾動到nginx部分,找到ports:下面的行,上面寫著80:80。將此更改為:

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 的sites-available目錄,並使用 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保存並退出 nano ,然後使用Ctrl + X。激活配置,然後重新啟動 Apache:

sudo a2ensite wger.conf
sudo service apache2 restart

您現在可以從任何瀏覽器使用您的域名訪問您的 wger 實例。點擊頁面頂部的“註冊”按鈕,然後輸入您的姓名、電子郵件地址和密碼。不要做任何其他事情,否則您將收到一條錯誤消息,內容如下:

CSRF 驗證失敗。請求中止

這是因為 wger 使用 Django 作為數據庫,需要在單獨的環境文件中定義可信來源。

nano 中的 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保存並退出 nano ,然後使用Ctrl + X。

最後要做的是設置 TLS 證書和加密密鑰,以確保窺探者無法使用中間人 (MITM) 攻擊來攔截您的流量。

sudo certbot

從列表中選擇您的域名,Certbot 將獲取並部署 TLS 證書和加密密鑰。再次重啟 Apache 以使更改生效:

sudo service apache2 restart

與您的 wger 鍛煉網站的任何連接都將升級到 HTTPS。

在 Raspberry Pi 上使用 Wger 來管理您的健身

拿著槓鈴深蹲的女人

在使用鍵盤進行了所有艱苦的訓練之後,您幾乎可以去健身房了!使用您之前提供的憑據登錄到您的帳戶,您將看到一個包含三個部分的空儀表板:“鍛煉”、“營養計劃”和“體重”。您可以使用每列底部的綠色按鈕將數據輸入其中的每一個。

儀表板

您可以手動創建條目,或單擊每個頁面頂部每個類別的菜單欄,然後導入包含您的數據的 CSV 文件。

訓練菜單包含與您的訓練有關的所有內容,包括日程安排、日曆、圖庫等。單擊鍛煉,然後單擊添加鍛煉。為您的鍛煉命名,然後標記複選框以選擇您想要鍛煉的日期。單擊“保存”後,您就可以將特定練習添加到您的日常鍛煉中。當您在框中鍵入內容時,您會看到包含此​​文本的建議。

wger 對緊縮運動的建議

選擇練習後,您可以使用滑塊設置重複次數,並添加詳細信息,例如所涉及的重量。保存鍛煉,您將看到一個摘要,其中要訓練的肌肉群以紅色突出顯示。您可以通過單擊齒輪並選擇新體重記錄為任何鍛煉課程添加註釋。

樣本 wger 鍛煉

Nutrition下,您可以檢查 BMI、制定營養計劃併計算每日卡路里攝入量。無需搜索成分:您可以從 78,000 多種產品中選擇您的日常膳食,然後查看其營養價值。在營養計劃中添加膳食,並在日曆中記錄您的飲食概況。

隨時隨地跟踪您的鍛煉

帶筆記本電腦去健身房的人並不多,儘管 wger 在大多數瀏覽器中顯示效果很好,但如果您使用Android 專用的 wger 應用程序,效果會更好。該應用程序也可以在Google Play上找到。

在您的 Android 設備上安裝該應用程序後,以通常的方式打開它並選擇Use custom server。輸入您的用戶名和密碼,然後輸入您的服務器的 URL。

wger 移動應用程序與網絡應用程序的工作方式相同。您可以訪問您的訓練日誌、添加鍛煉並輸入您的膳食計劃。

在你的樹莓派上安裝 Wger:成功

如果您關心隱私,並且希望在不將您的數據出售給第三方的情況下計劃認真的鍛煉和飲食,Wger 是完美的解決方案。如果這與您無關,請考慮移動應用商店中提供的眾多商業產品之一。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *