锻炼管理器wger的安装

本文是 20212 月完成的,最近因为工作比较忙,就把这些老文章翻出来,但为了发表,老苏差不多又重写了一遍。

因为当时跑的是 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 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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_ORIGINSX_FORWARDED_PROTO_HEADER_SET

只要取消前面的 # 即可启用;

  • CSRF_TRUSTED_ORIGINS:值改为 https://wger.laosu.ml:444,http://192.168.0.197:8456,多个域名的话用逗号分隔;
  • X_FORWARDED_PROTO_HEADER_SET:默认的 True 就可以;

命令

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 新建文件夹 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了,如果一切正常的话,就可以看到主界面了

title

LOGIN

title

默认的账号:admin,密码:adminadmin

登录成功后,从左至右依次为 锻炼计划营养计划体重

title

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

而官网 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/