PassNAT LogoPassNAT

自建健身管理系统wger完整部署指南,Docker Compose一键启动训练营养追踪平台

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

wger 是一个完全免费且开源的健身与营养管理平台,采用 Django + PostgreSQL + Redis 架构构建。它提供了一个全面的健身解决方案,包括自定义训练计划、营养追踪、体重管理、进度相册等功能。

无论你是健身新手还是资深爱好者,wger 都能帮你制定个性化的训练方案,记录每一次的进步。项目支持多用户管理,适合个人使用或小型健身房运营。最棒的是,所有功能完全免费,且可以自主部署在自己的服务器上,完全掌控你的数据。

项目地址: 点我跳转

部署安装

如果你想在家里或公司随时随地访问 wger,建议配置内网穿透服务。推荐使用 帕斯内网穿透,先完成账号注册。具体的配置步骤可以参考 帕斯内网穿透全平台使用指南,轻松实现外网访问。

Docker Compose 一键部署

这是最快速、最推荐的部署方式。wger 官方提供了完整的 Docker Compose 配置,只需一条命令就能启动完整的应用栈。

第一步:获取配置文件

打开你的 NAS 设备(飞牛 NAS、群晖、威联通等)或 Linux 服务器,创建一个项目文件夹,然后从 GitHub 克隆官方配置:

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

第二步:启动应用

进入项目目录后,执行以下命令即可启动所有服务:

1docker compose up -d

这条命令会自动下载并启动以下服务:

Web 应用 - wger 主应用服务 Nginx - 反向代理和静态文件服务 PostgreSQL - 数据库服务 Redis - 缓存和消息队列服务 Celery Worker & Beat - 后台任务处理服务

第三步:配置环境变量

进入 'config' 文件夹,编辑 'prod.env' 文件进行必要的配置。以下是一些重要的环境变量说明:

必须修改的关键变量:

SECRET_KEY - Django 密钥,建议改为 50 个字符的随机字符串(可使用 https://djecrety.ir/ 生成) SIGNING_KEY - JWT 签名密钥,必须与 SECRET_KEY 不同 SITE_URL - 你的访问域名或 IP 地址,例如 'http://192.168.1.100' 或 'https://wger.yourdomain.com'

可选但推荐配置:

TIME_ZONE - 时区设置,默认为 'Europe/Berlin',改为 'Asia/Shanghai' 适配中国时区 CSRF_TRUSTED_ORIGINS - 如果使用自定义域名,需要配置此项以避免 CSRF 错误 ALLOW_REGISTRATION - 是否允许用户注册,默认为 'True' ALLOW_GUEST_USERS - 是否允许游客用户,默认为 'True' ALLOW_UPLOAD_VIDEOS - 是否允许上传视频,默认为 'True'

数据库配置(通常无需修改):

DJANGO_DB_PASSWORD - 数据库密码,默认为 'wger'(建议改为强密码) CELERY_FLOWER_PASSWORD - Celery 监控面板密码,默认为 'adminadmin'

其他变量保持默认即可,系统会自动处理同步训练计划、食物数据库等功能。

第四步:访问应用

启动完成后,打开浏览器访问:

1http://你的IP地址:80

或者如果你配置了域名,直接访问你的域名即可。首次访问会看到 wger 的欢迎界面,你可以创建账户开始使用。

第五步:后续管理

查看日志:'docker compose logs -f web' 停止服务:'docker compose down' 更新应用:'docker compose pull && docker compose up -d' 重启服务:'docker compose restart'

端口说明

80 端口 - Nginx 反向代理,这是主要的访问端口 5432 端口 - PostgreSQL 数据库(容器内部使用,无需暴露) 6379 端口 - Redis 缓存(容器内部使用,无需暴露)

如果你的 80 端口已被占用,可以在 'docker-compose.yml' 文件中修改 nginx 的端口映射。找到以下部分:

1ports:
2 - "80:80"

改为你想要的端口,例如 '"8080:80"',然后重新启动服务即可。

数据持久化

wger 会自动创建以下数据卷来保存你的数据:

postgres-data - 数据库数据 redis-data - 缓存数据 celery-beat - 定时任务数据 static - 静态文件 media - 用户上传的文件(如进度照片)

这些数据会永久保存在 Docker 卷中,即使容器重启也不会丢失。


总结

通过以上步骤,你已经成功部署了一个完整的 wger 健身管理系统。这个系统包含了训练计划制定、营养追踪、进度记录等所有功能,完全可以满足个人或小型健身房的需求。

如果遇到任何问题,可以查看官方文档 https://wger.readthedocs.io 或在 GitHub 提交 Issue。祝你健身愉快!