锻炼管理器wger的安装

news2024/11/15 21:01:01

在这里插入图片描述

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

因为当时跑的是 wger/apache ,现在新的 wger/apache 版本在老苏的机器上,会遇到 AH00141: Could not initialize random number generator 错误。

什么是 wger ?

wger 是一个用 Django 编写的锻炼管理器,是一个免费的开源 Web应用程序,可以帮助您管理个人锻炼,体重和饮食计划,还可以用作简单的健身房管理实用程序。它还提供了 REST API ,可轻松与其他项目和工具集成。

前期准备

反向代理

如果要从公网访问,需要先要准备好域名,当然这一步不是必须的,只在局域网使用的话也是可以的

域名局域网地址备注
https://wger.laosu.mlhttp://192.168.0.197:8456wger 的访问地址

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_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 就可以;

在这里插入图片描述

命令

然后执行下面的命令

# 新建文件夹 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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/342658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows Git Bash 配置

Windows Git Bash 配置 本文参考的文章: 在 Windows 的 Git Bash 中使用包管理器 - iris (ginshio.org)Git bash 安装 pacman & Windows 解压 zst 文件 | 伪斜杠青年 (lckiss.com) 一、Git的安装 Git 的安装应该是都会的,但还是应该说以下&#…

前端常见基础面试题css篇

目录 1.css3有哪些新特性? 2.CSS有哪些基本选择器?它们的权重是如何表示的? 3.css 选择器的类型优先级排序 4.写出几种CSS实现元素两个盒子垂直水平居中的代码 5.CSS 常见的伪类和伪元素有哪些? 6.CSS的引入方式有哪些?ink…

CMMI-外包与采购管理

外包与采购管理(Outsourcing and Procurement Management, OPM)是指外包管理和采购管理,目的是选择合适的承包商和供应商,并依据合同进行有效的管理。外包与采购管理过程域是SPP模型的重要组成部分。本规范阐述了外包与采购管理过…

自定义认证器

自定义认证器工作流程 1、设备向AWS IoT发送http请求,包含token和token签名 2、IoT判断这是一个自定义认证请求,然后确认token和token签名是否匹配 3、Lambda函数验证token之后,将输出5项数据, isAuthenticated:求是…

Zookeeper入门与应用

Zookeeper入门与应用1.简介1.1.应用场景1.2.Zookeeper的设计目标1.3数据模型2. 单机安装3.常用shell命令3.1.查询3.2.创建3.3.更新3.4.删除4.zookeeper的Acl权限控制案例/远程登录acl 超级管理员5.zookeeper的 JavaAPI连接到Zookeeper5.1.新增节点5.2.修改节点5.3.删除节点5.4.…

4、数组、切片、map、channel

目录一、数组二、切片三、map四、channel五、引用类型一、数组 数组: 数组是块连续的内存空间,在声明的时候必须指定长度,且长度不能改变所以数组在声明的时候就可以把内存空间分配好,并赋上默认值,即完成了初始化数组…

Spring反射内置工具类ReflectionUtils

Spring反射内置工具类ReflectionUtils前言反射1,什么是反射2,反射的实现2.1获取class对象的三种实现2.1.1Object ——> getClass();2.1.2 任何数据对象(包括数据基本类型)都有一个静态的class属性通过Class类的静态方法&#x…

TX Text Control .NET 31.0 SP1 for WPF 企业版Crack

将文档编辑、创建和 PDF 生成添加到 WPF 应用程序。 TX Text Control for WPF Enterprise 是一个免版税、完全可编程的丰富编辑控件,它在专为 Visual Studio 设计的可重用组件中为开发人员提供了广泛的文字处理功能。它提供全面的文本格式,强大的邮件合并…

golang fmt.Sprintf(“%.2f“) 的舍入问题

首先,fmt.Sprintf("%.2f")使用的是banker rounding 而不是四舍五入,banker rounding 的定义如下(来自百度百科):1.要求保留位数的后一位如果是4,则舍去。例如5.214保留两位小数为5.21。2.如果保留…

第四代英特尔至强重磅发布,芯片进入下半场:软硬加速、绿色可持续

编辑 | 宋慧 出品 | CSDN 云计算 2023 年的第二周,英特尔重磅发布其企业级芯片领域重要的产品——第四代英特尔 至强 可扩展处理器。作为数据中心处理器当之无愧的王牌产品,迄今为止,英特尔已经向全球客户交付了超8500万颗​至强可扩展处理器…

agent扩展-自定义外部加载路径

自定义classLoader实现加载外部jar, 以skywalking agent 类加载器为例子 整体思路 扩展findClass ,解决loadClass可以查找到扩展findResource,解决getResources可以获取到资源 基本原理 ClassLoader loadClass的加载顺序 findLoadedClass 加载本地已经…

Spring Boot学习篇(十三)

Spring Boot学习篇(十三) shiro安全框架使用篇(五) 1 准备工作 1.1 在SysUserMapper.xml中书写自定义标签 <select id"findRoles" resultType"string">select name from sys_role where id (select roleid from sys_user_role where userid (S…

Matlab论文插图绘制模板第77期—对数刻度横向柱状图

在之前的文章中&#xff0c;分享了Matlab对数刻度柱状图的绘制模板&#xff1a; 进一步&#xff0c;再来看一下对数刻度横向柱状图的绘制模板。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;Matlab论文插图绘制模板系列&#xff0c;旨在降低大家使用Matlab进行科研绘…

[WTL/ATL]_[初级]_[TreeView控件如何显示ToolTip]

场景 在开发界面程序时&#xff0c;CTreeViewCtrl(它实际内部封装的就是Win32的TreeView控件)一般会用来作为选择某些类型的树形菜单&#xff0c;点击某项的时候&#xff0c;右边能显示某些对应的数据。当这个控件的宽度固定时&#xff0c;有时候每行的文本项可能由于过长从而…

【图像分类】基于PyTorch搭建LSTM实现MNIST手写数字体识别(双向LSTM,附完整代码和数据集)

写在前面&#xff1a; 首先感谢兄弟们的关注和订阅&#xff0c;让我有创作的动力&#xff0c;在创作过程我会尽最大能力&#xff0c;保证作品的质量&#xff0c;如果有问题&#xff0c;可以私信我&#xff0c;让我们携手共进&#xff0c;共创辉煌。 在https://blog.csdn.net/A…

【CSS】元素居中总结-水平居中、垂直居中、水平垂直居中

【CSS】元素居中一、 水平居中1.行内元素水平居中&#xff08;1&#xff09;text-align2.块级元素水平居中2.1 margin&#xff08;1&#xff09;margin2.2布局&#xff08;1&#xff09;flex justify-content&#xff08;推荐&#xff09;&#xff08;2&#xff09; flexmargin…

张驰咨询:关于六西格玛,有一些常见的疑惑!

​ 很多想要学习六西格玛的学员&#xff0c;经常会有这些困惑&#xff1a; 以前没有接触过六西格玛&#xff0c;需要什么基础吗&#xff1f;自学还是培训&#xff1f;哪些行业会用到六西格玛呢&#xff1f;学习六西格玛对以后的工作有哪些帮助&#xff1f;如何选择六西格玛培…

STM32配置读取双路24位模数转换(24bit ADC)芯片CS1238数据

STM32配置读取双路24位模数转换&#xff08;24bit ADC&#xff09;芯片CS1238数据 CS1238是一款国产双路24位ADC芯片&#xff0c;与CS1238对应的单路24位ADC芯片是CS1237&#xff0c;功能上相当于HX711和TM7711的组合。其功能如下所示&#xff1a; 市面上的模块&#xff1a; …

股票买卖接口怎么来的?

现在股票买卖接口主要是在线上研发&#xff0c;有专业的开发团队进行源码开发和完善&#xff0c;但是&#xff0c;常常会在开发过程中出现问题&#xff0c;也就是遇到一些特殊的情况需要及时处理&#xff0c;那么股票买卖接口怎么开发实现出来的&#xff1f;一、股票买卖接口开…

案例分享| 助力数字化转型:广州期货交易所全栈信创项目管理平台上线

广州期货交易所项目管理平台基于易趋&#xff08;easytrack&#xff09;进行实施&#xff0c;通过近半年的开发及试运行&#xff0c;现已成功交付上线、推广使用&#xff0c;取得了良好的应用效果。1. 关于广州期货交易所&#xff08;以下简称广期所&#xff09;广期所于2021年…