建第一個Passkey檔案)
openGym首次啟動全流程從克隆倉庫到創(chuàng)建第一個Passkey檔案【免費下載鏈接】openGymSelf-hosted gym body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.項目地址: https://gitcode.com/GitHub_Trending/op/openGymopenGym 是一款自托管self-hosted的家庭健身房訓練與體重記錄應(yīng)用制定每周計劃、記錄每一次組數(shù)、查看肌肉訓練狀態(tài)還支持從 FitNotes/Strong/Hevy 導入歷史數(shù)據(jù)。全文用不到 10 分鐘帶你完成openGym 自托管部署克隆倉庫、Docker 一鍵啟動、打開瀏覽器、創(chuàng)建第一個Passkey 檔案Face ID / 指紋登錄數(shù)據(jù)完全存放在你自己的服務(wù)器上。一鍵啟動 openGym克隆倉庫并拉起 Docker 容器唯一前提是安裝好 Docker 及其 Compose 插件無需 Node、無需數(shù)據(jù)庫。git clone https://gitcode.com/GitHub_Trending/op/openGym cd openGym cp .env.example .env docker compose pull # 拉取預構(gòu)建鏡像想從源碼構(gòu)建可跳過此步 docker compose up -d這 5 行命令背后docker-compose.yml 編排了 3 個角色容器職責media一次性下載約 140 MB 的動作示范圖片/GIF 到./media/apiNode 后端負責 Passkey 認證WebAuthn與 JSON 數(shù)據(jù)存儲webnginx 托管前端并把/api代理到后端保證整個應(yīng)用處于同一域名下——這是 Passkey 的硬性要求驗證服務(wù)是否健康docker compose ps curl http://localhost:8080/api/health # 應(yīng)返回 {ok:true,...}看到兩個容器均為running、健康檢查通過openGym 就已在http://localhost:8080上運行。首次啟動會先下載動作媒體庫稍慢屬正?,F(xiàn)象。創(chuàng)建你的第一個 Passkey 檔案無需密碼打開http://localhost:8080你會看到登錄頁三個入口Sign in with passkey用 Passkey 登錄——已有檔案時使用Create new profile創(chuàng)建新檔案——新手點這個Continue without account游客模式數(shù)據(jù)僅存本機瀏覽器點擊Create new profile后流程如下給檔案起一個名字最長 40 字符如阿哲點擊Create passkey瀏覽器會彈出系統(tǒng)生物識別窗口——在手機上就是 Face ID / Touch ID / 指紋在 Windows 上是 Windows Hello在 Mac 上是 Touch ID確認成功后立即進入應(yīng)用界面提示W(wǎng)elcome, {你的名字}。Passkey 和傳統(tǒng)密碼的區(qū)別私鑰永遠只保存在你的設(shè)備安全硬件或密碼管理器iCloud 鑰匙串、Google 密碼管理器等里服務(wù)器只存公鑰見 .env.example 中RP_NAMEopenGym的提示文案。因此 openGym 默認沒有密碼也無法被釣魚或撞庫。如果你的實例配置了邀請碼INVITE_ONLY1創(chuàng)建檔案時還需要填入管理員發(fā)放的邀請碼默認實例是開放注冊的無需此步。登錄后你的數(shù)據(jù)放在哪里一切都在主機的./data目錄中備份時打包這一個文件夾即可詳細備份說明見 docs/SELF_HOSTING.md文件內(nèi)容db.json檔案列表與公開 Passkey 數(shù)據(jù)state-user.json每個用戶的計劃、訓練記錄、體重與設(shè)置audit.log管理員活動日志默認開啟secret會話 Cookie 簽名密鑰登錄成功后應(yīng)用會自動把本機已有的游客數(shù)據(jù)合并進新檔案Profile created — data from this device moved into it。之后在手機與電腦間同步時每臺設(shè)備保存時會帶上自己最后看到的版本號若期間另一臺設(shè)備寫過數(shù)據(jù)服務(wù)器會返回沖突并讓設(shè)備合并后重試——多設(shè)備互不覆蓋原理圖如下??關(guān)于手機訪問瀏覽器只允許在 HTTPS或localhost下使用 Passkey所以手機不能通過http://局域網(wǎng)IP:8080登錄。想在手機上用 Passkey需要給實例配置一個 HTTPS 域名Caddy、Cloudflare Tunnel、nginx 均可文檔 docs/SELF_HOSTING.md 有逐項教程臨時方案是先用游客模式或在局域網(wǎng)設(shè)置PASSWORD_LOGIN1開啟密碼登錄。首次啟動常見問題排查速查現(xiàn)象解決方法8080 端口被占用在.env中改為WEB_PORT9090同步更新ORIGIN手機上看不到 Passkey 彈窗你訪問的是http://或 IP 地址請配置 HTTPS 域名登錄報 verification failedRP_ID/ORIGIN與地址欄 URL 不匹配見下表動作圖片/GIF 沒下載docker compose logs media查看重跑docker compose up -d修改.env不生效docker compose restart不會重讀.env請用docker compose up -dRP_ID與ORIGIN的格式是新手最常踩的坑變量正確寫法錯誤寫法RP_IDgym.example.com純主機名https://gym.example.com、帶端口、帶斜杠ORIGINhttps://gym.example.com帶協(xié)議裸域名、帶末尾斜杠本地體驗localhost保持 .env.example 的默認值即可RP_IDlocalhost、ORIGINhttp://localhost:8080。更多問題可查閱 docs/FAQ.md完整的部署、多用戶、通知與更新指南見 docs/SELF_HOSTING.md??偨Y(jié)至此你已經(jīng)走完openGym 首次啟動的完整閉環(huán)克隆倉庫 →docker compose up -d一鍵拉起 → 瀏覽器創(chuàng)建 Passkey 檔案 → 數(shù)據(jù)落地./data。接下來可以試試從 FitNotes/Strong/Hevy 導入歷史數(shù)據(jù)docs/DATA_IMPORTS.md、加載 Push/Pull/Legs 等四個模板計劃或把應(yīng)用添加到主屏幕變成類原生體驗docs/MOBILE.md。你的訓練你的數(shù)據(jù)你的服務(wù)器。?【免費下載鏈接】openGymSelf-hosted gym body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.項目地址: https://gitcode.com/GitHub_Trending/op/openGym創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考