
本文是
2021年2月完成的,最近因为工作比较忙,就把这些老文章翻出来,但为了发表,老苏差不多又重写了一遍。因为当时跑的是
wger/apache,现在新的wger/apache版本在老苏的机器上,会遇到AH00141: Could not initialize random number generator错误。
什么是 wger ?
wger是一个用Django编写的锻炼管理器,是一个免费的开源Web应用程序,可以帮助您管理个人锻炼,体重和饮食计划,还可以用作简单的健身房管理实用程序。它还提供了REST API,可轻松与其他项目和工具集成。
前期准备
反向代理
如果要从公网访问,需要先要准备好域名,当然这一步不是必须的,只在局域网使用的话也是可以的
| 域名 | 局域网地址 | 备注 | 
|---|---|---|
| https://wger.laosu.ml | http://192.168.0.197:8456 | wger的访问地址 | 
用 Nginx Proxy Manager 做反代处理;实际访问时,因为老苏没有备案,所以是 https://wger.laosu.ml:444
其中:
- 192.168.0.197为群晖的- IP
- 8456是准备分配给- wger的端口

SSL 设置里一般没啥问题的话都是全部勾选

科学上网
Production 模式安装时,会执行 yarn install 安装相关依赖

不确定安装失败会不会有什么问题,有可能是下面这样的

建议将 yarnpkg.com 放入白名单中,来确保安装成功

命令行安装
docker-compose.yml
用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
version: '3'
services:
  web:
    image: wger/server:latest
    container_name: wger_server
    restart: unless-stopped
    env_file:
      - ./.env.txt
    volumes:
      - ./static:/home/wger/static
      - ./media:/home/wger/media
    #ports:
    #  - "8000"
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:8000
      interval: 10s
      timeout: 5s
      retries: 5
    depends_on:
      db:
        condition: service_healthy
      cache:
        condition: service_healthy
  nginx:
    image: nginx
    container_name: wger_nginx
    restart: unless-stopped
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./static:/wger/static:ro
      - ./media:/wger/media:ro
    ports:
      - 8456:80
    healthcheck:
      test: service nginx status
      interval: 10s
      timeout: 5s
      retries: 5
    depends_on:
      - web
  db:
    image: postgres:14
    container_name: wger_db
    restart: unless-stopped
    environment:
      - POSTGRES_USER=wger
      - POSTGRES_PASSWORD=wger
      - POSTGRES_DB=wger
    volumes:
      - ./data:/var/lib/postgresql/data/
    #expose:
    #  - 5432
    healthcheck:
      test: pg_isready -U wger
      interval: 10s
      timeout: 5s
      retries: 5
  cache:
    image: redis:6.2
    container_name: wger_cache
    restart: unless-stopped
    #expose:
    #  - 6379
    healthcheck:
      test: redis-cli ping
      interval: 10s
      timeout: 5s
      retries: 5
.env.txt
另外要下载 .env.txt 文件,并如下修改,其他的暂时默认即可
- TIME_ZONE:默认是- Europe/Berlin,改为- Asia/Shanghai;
- SITE_URL:默认是- http://localhost,改为前面设置的域名- https://wger.xxsu.ml:8443;
启用 CSRF_TRUSTED_ORIGINS 和 X_FORWARDED_PROTO_HEADER_SET
只要取消前面的
#即可启用;
- CSRF_TRUSTED_ORIGINS:值改为- https://wger.laosu.ml:444,http://192.168.0.197:8456,多个域名的话用逗号分隔;
- X_FORWARDED_PROTO_HEADER_SET:默认的- True就可以;

命令
然后执行下面的命令
# 新建文件夹 wger 和 子目录
mkdir -p /volume2/docker/wger/{data,media,static}
# 进入 wger 目录
cd /volume2/docker/wger
# 修改目录权限
chmod 777 static
# 下载 .env.txt 文件
curl -sSL https://raw.githubusercontent.com/wger-project/docker/master/config/prod.env -o .env.txt
## 下不动就加个代理试试
curl -sSL https://ghproxy.com/raw.githubusercontent.com/wger-project/docker/master/config/prod.env -o .env.txt
# 下载 nginx.conf
curl -sSL https://raw.githubusercontent.com/wger-project/docker/master/config/nginx.conf -o nginx.conf
## 下不动就加个代理试试
curl -sSL https://ghproxy.com/raw.githubusercontent.com/wger-project/docker/master/config/nginx.conf -o nginx.conf
# 修改 .env.txt 文件中的时区设置
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
文件夹结构

容器资源占用状况

运行
前面说过,容器启动时会有个 yarn install 的过程,这个时间还是比较长的,当日志中看到 Listening at: http://0.0.0.0:8000 时

就可以浏览器中输入 http://群晖IP:8456 或者 https://wger.laosu.ml:444了,如果一切正常的话,就可以看到主界面了

点 LOGIN

默认的账号:
admin,密码:adminadmin
登录成功后,从左至右依次为 锻炼计划、营养计划、体重

很奇怪,虽然识别了中文,但是居然还是英文界面

而官网 https://wger.de/ 是支持中文的,不知道这是不是 bug

参考文档
wger-project/wger: Self hosted FLOSS fitness/workout, nutrition and weight tracker written with Django
地址:https://github.com/wger-project/wger
wger-project/docker: Production…ish docker-compose image for wger
地址:https://github.com/wger-project/docker
Welcome to wger Workout Manager’s documentation! — wger Workout Manager 2.1 alpha documentation
地址:https://wger.readthedocs.io/en/latest/
wger-project/docs: Documentation for wger
地址:https://github.com/wger-project/docs
wger Workout Manager - Features
地址:https://wger.de/













![[WTL/ATL]_[初级]_[TreeView控件如何显示ToolTip]](https://img-blog.csdnimg.cn/e6bafa1613b24008923ef65bb38e52b3.png#pic_center)





