可能大家年齡都到了一定階段,我明顯感覺周圍去健身房系統性健身訓練的人越來越多。剛好最近又在 GitHub 上發現了一個挺有意思的開源項目——openGym,一套自建的力量訓練記錄工具,完成度挺高,支持中文且開源,就想分享下。(圖片截取自項目)
![]()
筆者沒有啥健身記錄,也就偶爾整兩下,所以提供不了項目內數據展示,還請見諒哈!
![]()
關於openGym
完整項目名:DuarteSantos8/openGym。
openGym 是一個開源、自託管的健身記錄項目。它和普通運動打卡工具不太一樣,更偏向真正去健身房或者長期做力量訓練的人使用。可以提前創建每週訓練計劃,例如週一練胸、週三練背、週五練腿。真正開始訓練以後,再按照當天的訓練內容逐組記錄重量、次數和完成情況。
官方目前提供了超過一千個動作的數據,並帶有動作圖片或者 GIF。除了普通力量訓練,還支持超級組、計時動作、有氧、徒手訓練、RPE/RIR、漸進負重等功能。訓練一段時間以後,可以查看體重趨勢、訓練熱力圖、估算 1RM 和不同肌羣的訓練情況。
![]()
但它目前並不能自動同步手環、手錶或智能健身器械的數據,所以如果你想要的是一套「運動健康數據自動彙總平臺」,它就不太合適了。
主要功能
可以創建自己的訓練動作和訓練計劃,根據星期安排固定 Routine。
訓練的時候會自動讀取上一次使用的重量,並提供休息計時、PR 判斷以及漸進負重建議。
對於臥推、深蹲、硬拉這類動作,還可以根據訓練記錄估算 1RM,並查看變化趨勢。
它同時支持體重記錄,可以給自己設置目標體重,再通過曲線查看變化。
另外還有一個比較直觀的 GitHub 風格訓練熱力圖,一年裏面哪些天訓練過,基本一眼就能看出來。
如果已經在用其他健身工具,也支持從 Strong、Hevy、FitNotes 等應用導入部分歷史數據。
手機端則可以作爲 PWA 使用,添加到手機桌面以後,體驗會更接近一個普通 App。
注意:openGym 的完整體驗依賴 HTTPS。如果只是通過 NAS_IP:端口 訪問,可以正常打開頁面,但無法使用 Passkey 登錄、通知等功能。因此,想長期使用,建議提前準備好域名和 HTTPS 反代。
部署流程
我們以威聯通NAS爲例,通過Docker Compose的方式進行部署。
部署代碼如下,有些必須要修改的內容我都做了註釋請注意,若有排版問題,請藉助AI工具恢復:
services: media: image: alpine/git container_name: opengym-media volumes: - /share/Container/openGym/media/img:/out/img - /share/Container/openGym/media/gif:/out/gif entrypoint: ["/bin/sh", "-c"] command: - | if [ -z "$$(ls -A /out/img 2>/dev/null)" ]; then echo "Downloading exercise media..." git clone --depth 1 https://github.com/hasaneyldrm/exercises-dataset /tmp/ds cp /tmp/ds/images/*.jpg /out/img/ cp /tmp/ds/videos/*.gif /out/gif/ echo "Exercise media ready." else echo "Exercise media already present." fi restart: "no" api: image: ghcr.io/duartesantos8/opengym-api:1.2.5 container_name: opengym-api restart: unless-stopped environment: PORT: "3000" DATA_DIR: /data # 改成你自己的域名,有端口也別漏了 RP_ID: 你的域名 ORIGIN: https://你的域名 RP_NAME: openGym volumes: - /share/Container/openGym/data:/data web: image: ghcr.io/duartesantos8/opengym-web:1.2.5 container_name: opengym-web restart: unless-stopped depends_on: media: condition: service_completed_successfully api: condition: service_started ports: - "9527:80" # 左側端口建議修改 volumes: - /share/Container/openGym/media/img:/usr/share/nginx/html/img:ro - /share/Container/openGym/media/gif:/usr/share/nginx/html/gif:ro
打開威聯通的Container Statin創建新的應用程序。
![]()
注意一個正常現象:opengym-media 第一次啓動會下載大約 140MB 的動作圖片和 GIF,完成後容器會自動退出,這是正常的。最終保持運行的主要是 opengym-api 和 opengym-web。
使用一覽
部署完畢後,瀏覽器輸入反代好的域名,即可訪問服務。初始頁面如下。建議選擇第一項,通過passkey(通行密鑰)登錄。
![]()
指定一個文件名匹配passkey,並創建。
![]()
至於說存在哪裏,就看大家的個人情況了。我是選擇存放Google密碼管理工具中,這樣iOS、Android都能隨便用。
![]()
進入首頁後,可以發現整個UI都是以移動端爲基準進行設計的。點擊右上角的小齒輪圖標進入設置。
![]()
如下圖,語言更改爲中文,無需確認即時生效。底部可看到,能直接添加到主屏幕,作爲全屏應用。
![]()
切換至手機端,發送到桌面後,體驗的確和App相差無幾。我們可以使用入門計劃,也可自己添加。
![]()
可以將各種訓練動作加入計劃中,每天執行。也可以自己創建。
![]()
同個賬戶內的進度,也都是自動同步。
![]()
最後我再借用他人的長期訓練數據截圖給大家看看吧!
![]()
![]()
最後
正在系統性健身訓練的朋友,可以部署一個看看!
感謝觀看,本文完~
更多遊戲資訊請關註:電玩幫遊戲資訊專區
電玩幫圖文攻略 www.vgover.com
