资讯动态

openGym部署前置准备:Docker Compose环境搭建完整教程

发布时间:2026/10/9 19:27:09 来源:尧图企业网站定制
openGym部署前置准备Docker Compose环境搭建完整教程【免费下载链接】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 是一款自托管的健身房与体重记录应用规划训练计划、记录超组/热身/有氧训练、查看肌肉负荷与疲劳状态还支持从 FitNotes、Strong、Hevy 导入历史数据。它的官方部署方式只依赖Docker Compose——不需要在服务器上安装 Node、Postgres 或任何数据库。本文带你完成 openGym Docker Compose 部署前的全部准备环境检查、仓库克隆、.env配置直到一键启动并通过健康检查。部署前必知openGym 的容器架构在动手之前先花 1 分钟看懂 openGym 由哪几部分组成。整个部署就是3 个容器 1 个数据目录media一次性容器首次启动时下载约 140 MB 的动作演示图片和 GIF 到media/img与media/gif完成即退出apiNode 服务负责登录passkey与数据存储所有用户数据以 JSON 形式写入宿主机的./data目录webnginx 容器对外暴露 8080 端口负责提供前端页面并把/api请求代理给 api 容器。完整的编排逻辑都在根目录的 docker-compose.yml 中media 服务定义、api 服务定义、web 服务定义。理解了这一点后面排查问题会轻松很多。Docker Compose 部署前置条件清单在开始之前请逐项确认你的服务器满足以下条件检查项要求说明Docker 引擎已安装并运行唯一硬性依赖Compose 插件docker compose可用现代发行版默认自带端口占用8080web、3000api被占用时可在.env中改为WEB_PORT磁盘空间≥ 1 GB首次启动会下载 ~140 MB 动作媒体网络可访问容器镜像仓库docker compose pull需要拉取预构建镜像HTTPS 域名手机使用 passkey 登录时必需纯局域网 IP 无法使用 passkey见下文避坑为什么 passkey 这么重要openGym 默认用 passkeyFace ID / 指纹登录浏览器强制要求 HTTPS仅http://localhost例外。所以电脑上用没问题、手机上用不了几乎是 100% 的 HTTPS 问题不是环境没搭好。克隆仓库并配置 .env 环境变量在服务器上执行以下命令获取代码仓库地址https://gitcode.com/GitHub_Trending/op/openGymgit clone https://gitcode.com/GitHub_Trending/op/openGym cd openGym cp .env.example .envopenGym 的全部配置都通过.env文件完成官方模板.env.example顶部就给了可直接运行的本地默认值RP_IDlocalhost ORIGINhttp://localhost:8080 WEB_PORT8080 RP_NAMEopenGym只在你自己的电脑上体验的话保持默认即可。如果你打算用手机访问正式部署需要提前决定一个域名并改为RP_IDgym.example.com ORIGINhttps://gym.example.com⚠️两个高频错误RP_ID只能写裸主机名无协议、无端口、无斜杠ORIGIN必须带协议且不带结尾斜杠。另外后期修改RP_ID会使所有已注册的 passkey 失效所以域名要在别人注册账号之前定好。一条命令启动Docker Compose 部署步骤配置完成后部署只有三步docker compose pull # 拉取预构建镜像amd64 arm64 docker compose up -d # 后台启动三个容器 docker compose ps # 确认 web 与 api 状态为 running首次启动时media 容器会打印类似↓ Downloading exercise media (~140 MB, one time)…的日志下载完成后 web 容器才会就绪。如果你所在网络拉取镜像困难也可以跳过pull改用docker compose up -d --build从源码构建api/Dockerfile 与 web/Dockerfile 已内置构建流程主机上依然不需要 Node 环境。部署验证健康检查与首次登录用下面的命令确认服务真正可用docker compose ps curl http://localhost:8080/api/health # 返回 {ok:true,...} 即成功然后打开http://localhost:8080点击Create profile创建你的第一个 passkey 档案就能进入应用首页。查看容器日志可以随时执行docker compose logs -f停止栈用docker compose down。部署避坑三个高频问题与修复现象原因与修复手机浏览器不弹 passkey你访问的是http://局域网IP:8080不是 HTTPS。方案挂一个域名走 HTTPSdocs/SELF_HOSTING_HTTPS.md 专门讲了无公网域名的局域网方案或临时开启PASSWORD_LOGIN1用密码登录提示 8080 端口已被占用在.env中改WEB_PORT9090然后重新docker compose up -d动作图片/动画一直空白媒体下载未完成执行docker compose logs media查看重跑docker compose up -d或手动运行 scripts/fetch-media.sh还有一个新手容易踩的坑修改.env后执行docker compose restart不会重新读取环境变量必须用docker compose up -d重建容器。部署之后备份与进阶路线openGym 的所有用户数据档案、passkey 公钥、训练记录、自定义动作媒体都集中在宿主机的./data目录备份只需一行tar czf opengym-backup-$(date %F).tar.gz data/后续可深入阅读的资料仓库内均为相对路径文档官方自托管完整指南域名、反代、多用户管理docs/SELF_HOSTING.mdKubernetes 部署清单kubernetes/ 目录说明见 docs/SELF_HOSTING_KUBERNETES.md常见问题速查docs/FAQ.md全部环境变量参考表README.md到这里你的 openGym 自托管实例已经跑起来了。记住核心原则一个.env管所有配置一个data/目录管所有数据这就是 openGym Docker Compose 部署的全部复杂度。️【免费下载链接】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创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑