领先的项目协作管理软件OpenProject

这篇具有很好参考价值的文章主要介绍了领先的项目协作管理软件OpenProject。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

openproject,群晖,docker,项目管理

本文软件由网友 不长到一百四誓不改名 推荐;

什么是 OpenProject ?

OpenProject 是一个开源、基于 Web 的项目管理系统,提供了免费的社区版和收费的企业版。OpenProject 拥有完善的文档,API,及丰富的功能,可以为项目团队提供整个项目生命周期的支持,因而成为企业的一个很好的选择。

前言

使用 Docker 安装 OpenProject 有两种方式:一种是多容器方式,适合生产环境,另一种是单容器方式,安装简单但不适应于生产环境

群晖本身并不适合作为生产环境的服务器,所以这次老苏选择了单容器方式安装,用于体验功能还是可以的

其实两种方式老苏都尝试了,但是在日常运行的小机器上均失败了,老苏猜测可能是两个原因:

  • 机器内存太小

熟悉老苏的读者都知道,老苏日常安装的小机器只有 4G 内存,很多时候安装失败,可能都是这个原因导致的;

  • 无法生成足够的随机数

老苏在跟踪容器的日志时,发现有一条👇下面这样的错误

rake aborted!  
failed to get urandom

最近几个基于 Ruby 的项目都是这个错误,所以老苏咨询了 ChatGPT,它给出的结论是:因为系统缺乏随机性,无法生成足够的随机数。

老苏用 ChatGPT 给的命令查了一下群晖系统的熵池状态,按照 ChatGPT 的说法,如果该值小于 1000,则表示熵池的可用熵值不足,就可能会导致 failed to get urandom 错误。

cat /proc/sys/kernel/random/entropy_avail

在日常的小机器上,这个值只有 130

openproject,群晖,docker,项目管理

而在另一台上,这个值超过了 1000

openproject,群晖,docker,项目管理

至于原因,老苏猜测可能跟系统内核有关系,这也让老苏联想到了,原本基于 Apache 的镜像总会遇到的随机数错误: Function not implemented: AH00141: Could not initialize random number generator

虽然跟ChatGPT 经过了多轮交互,但是给的方案并不能解决这个问题,它提出的办法是通过增加系统负载来增加系统熵池的可用熵值,从而有助于解决 failed to get urandom 错误。

例如:

# 安装群晖诊断工具 Diagnosis Tool
sudo synogear install

# 在 60 秒内使用 4 个工作进程以随机写入方式写入 4GB 的数据。
sudo fio --name=test --ioengine=sync --rw=randwrite --bs=4k --numjobs=4 --size=4G --runtime=60 --time_based

但是老苏发现并没有什么用,和之前的 AH00141 一样,最后还是只能换机器安装

安装

终于到了安装环节了,还是在群晖上以 Docker 方式安装。

在注册表中搜索 openproject ,选择第一个 openproject/community,版本选择 12

openproject,群晖,docker,项目管理

之所以选 12 而不是更高版本,是因为在这里,12 相当于往常使用的 latest

openproject,群晖,docker,项目管理

docker 文件夹中,创建一个新文件夹 openproject,并在其中建两个子文件夹,分别是 assetspgdata

文件夹 装载路径 说明
docker/openproject/assets /var/openproject/assets 存放资源,例如上传的附件等
docker/openproject/pgdata /var/openproject/pgdata 存放数据库

openproject,群晖,docker,项目管理

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
7090 80

默认情况下,容器对外暴露了 PostgreSQL数据库端口5432

openproject,群晖,docker,项目管理

老苏觉得没必要,只留下了 Web 端口

openproject,群晖,docker,项目管理

环境

可变
OPENPROJECT_HOST__NAME url 地址,可以是 IP 也可以是域名
OPENPROJECT_HTTPS 是否使用 https 协议
OPENPROJECT_SECRET_KEY_BASE 密码,可以用openssl rand -hex 64 生成

SECRET_KEY 可以用 Vaultwarden 的密码生成器,也可以用 openssl rand -hex 64

openproject,群晖,docker,项目管理

老苏只修改了几个必要的环境变量

openproject,群晖,docker,项目管理

更多的环境变量,可以去看官方文档:https://www.openproject.org/docs/installation-and-operations/configuration/environment/

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 openproject 和 子目录
mkdir -p /volume1/docker/openproject/{assets,pgdata}

# 进入 openproject 目录
cd /volume1/docker/openproject

# 运行容器(局域网)
docker run -d \
   --restart unless-stopped \
   --name openproject \
   -p 7090:80 \
   -v $(pwd)/pgdata:/var/openproject/pgdata \
   -v $(pwd)/assets:/var/openproject/assets \
   -e OPENPROJECT_HOST__NAME=192.168.0.199:7090 \
   -e OPENPROJECT_HTTPS=false \
   -e OPENPROJECT_SECRET_KEY_BASE=$(openssl rand -hex 64) \
   openproject/community:12

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  cherry:
    image: openproject/community:12
    container_name: openproject
    restart: unless-stopped
    ports:
      - 7090:80
    volumes:
      - ./pgdata:/var/openproject/pgdata
      - ./assets:/var/openproject/assets
    environment:  
      - OPENPROJECT_HOST__NAME=192.168.0.199:7090 
      - OPENPROJECT_HTTPS=false
      - OPENPROJECT_SECRET_KEY_BASE=cb160b11cfaa0419cc979050194fbe974e5151cb11a15241679618d1c12338aea29d00479841376bea0204a3ef3be74fb9c3adb6f0739ddcd712cf1ef7efdc3b

然后执行下面的命令

# 新建文件夹 openproject 和 子目录
mkdir -p /volume1/docker/openproject/{assets,pgdata}

# 进入 openproject 目录
cd /volume1/docker/openproject

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

第一次启动会花费一些时间

openproject,群晖,docker,项目管理

CPU 占用会先飙升,然后逐渐降低

openproject,群晖,docker,项目管理

但是内存会逐渐上升

openproject,群晖,docker,项目管理

当日志中看到 Listening on http://0.0.0.0:8080 时,就可以开始访问了

openproject,群晖,docker,项目管理

在浏览器中输入 http://群晖IP:7090 就能看到主界面

openproject,群晖,docker,项目管理

点右上角登录

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

openproject,群晖,docker,项目管理

第一次需要修改密码

openproject,群晖,docker,项目管理

可以选择简体中文

openproject,群晖,docker,项目管理

跟着设置向导,完成之后就可以开始使用了

openproject,群晖,docker,项目管理

系统提供了演示两个项目

openproject,群晖,docker,项目管理

其中 Demo project 是经典项目管理,而 Scrum project 则是敏捷管理

openproject,群晖,docker,项目管理

反向代理

假设我们使用域名 https://project.laosu.ml:444

Openproject 的设置

docker cli 为例,需要修改环境变量,其中:

  • OPENPROJECT_HOST__NAME:主机名改为了域名,有端口的也要的带上;
  • OPENPROJECT_HTTPS:要启动 https 协议,所以要设为 true
# 运行容器(互联网)
docker run -d \
   --restart unless-stopped \
   --name openproject \
   -p 7090:80 \
   -v $(pwd)/pgdata:/var/openproject/pgdata \
   -v $(pwd)/assets:/var/openproject/assets \
   -e OPENPROJECT_HOST__NAME=project.laosu.ml:444 \
   -e OPENPROJECT_HTTPS=true \
   -e OPENPROJECT_SECRET_KEY_BASE=$(openssl rand -hex 64) \
   openproject/community:12

当然你已经安装过的话,可以直接编辑、修改环境变量

openproject,群晖,docker,项目管理

npm 的设置

域名 局域网地址 备注
project.laosu.ml 192.168.0.199:7090 Openproject 访问地址

npm 中的设置

openproject,群晖,docker,项目管理

SSL 都勾选了

openproject,群晖,docker,项目管理

如果只是这么设置,可以正常打开 https://project.laosu.ml:444,但是在登录时会显示错误

  • 英文会显示👇
[Error 422] Unable to verify Cross-Site Request Forgery token. Did you try to submit data on multiple browsers or tabs? Please close all tabs and try again.
  • 中文会显示👇
[错误 422] 无法验证跨站请求伪造令牌。您是否曾尝试在多个浏览器或选项卡上提交数据?请关闭所有选项卡并重试。

openproject,群晖,docker,项目管理

所以老苏又掏出了那段百试百灵的 截端口 代码放入了 Advanced

location / {  
    proxy_set_header Host $host:444;  
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Protocol $scheme;
    proxy_pass  http://192.168.0.199:7090;  
    proxy_redirect http:// https://;  
}

openproject,群晖,docker,项目管理

果然问题解决了 😂

参考文档

opf/openproject: OpenProject is the leading open source project management software.
地址:https://github.com/opf/openproject

opf/openproject-deploy: Recipes to deploy OpenProject with Docker, Docker Compose, Kubernetes, etc.
地址:https://github.com/opf/openproject-deploy

OpenProject - open source project management software
地址:https://www.openproject.org/

Install OpenProject with Docker
地址:https://www.openproject.org/docs/installation-and-operations/installation/docker/文章来源地址https://www.toymoban.com/news/detail-776098.html

到了这里,关于领先的项目协作管理软件OpenProject的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件项目管理 第四章 软件项目的范围管理 课后习题参考答案——主编:李冰、张桥珍、刘玉娥

    1.选择题 (1)需求分析是回答系统必须( A )的问题。      A.做什么        B.怎么做        C.何时做        D.为谁做 (2)WBS非常重要,下列哪项不是其很重要的原因( D )。     A.帮助组织工作        B.防止遗漏工作        C.为项目估算提供依据    

    2024年02月11日
    浏览(53)
  • 软考:软件工程:软件维护与项目管理

    提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 (1)自己的科研经历, 科研内容 ,学习的相关领域知识,要熟悉熟透了 (2)自己的实习经历,做了 什

    2024年02月10日
    浏览(64)
  • 如何应用项目管理软件进行敏捷开发管理

    敏捷开发(Agile Development)是一种软件开发方法论,强调在不断变化的需求和环境下,通过迭代、协作和自适应的方式来开发软件。敏捷方法的目标是提供更快、更灵活、更高质量的软件交付,以满足客户需求并实现项目成功。 在技术研发团队使用敏捷开发来完成一个迭代时

    2024年02月12日
    浏览(59)
  • 软件项目管理==风险计划

    请列举出几个软件项目中的风险现象 从人员方面 从软件生命周期各阶段方面 从软件项目管理进度方面 成本管理方面 掌握现有技术和工具方面 风险现象 软件行业人员流动率很高 项目经理或技术骨干的辞职 雇佣了技术能力不强的开发人员 使用了不熟悉的开发工具 软件项目

    2024年02月04日
    浏览(85)
  • 软件工程头歌软件测试(实验五)软件项目管理(实验六)

    白盒测试 单元测试 软件维护 维护的事件流 通常维护的事件流如下图所示: 维护记录的内容 1)程序标识; 2)源语句数; 3)机器指令数; 4)使用的程序设计语言; 5)程序安装的日期; 6)自安装以来程序运行次数; 7)自安装以来程序失效次数 8)程序变动的层次和标识

    2024年02月05日
    浏览(65)
  • java spring cloud 工程企业管理软件-综合型项目管理软件-工程系统源码

    Java版工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示1、项目进度图表  2、项目信息 施工地图:1、展示当前角色权限下能

    2024年02月06日
    浏览(57)
  • 软件设计师——项目管理(二)

    本文主要是【项目管理】——软件设计师——项目管理的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句:狠狠沉淀,顶峰相见 6.某软件项目的活动图如下图所示,其中顶点表示项目里

    2024年01月23日
    浏览(44)
  • 推荐几款实用的项目进度管理软件

    做好项目的进度管理是项目经理的重要职责,在这个过程中,并非单凭人力就可以把控。项目进度管理软件出现,成为人们在项目管理过程中最需要的工具之一。一个项目无论大小,都需要一款高效且实用的项目管理工具,对项目流程进行把控、及时共享工作文档,从而让工

    2024年02月07日
    浏览(41)
  • 持续集成对软件项目管理的作用

    l、对项目目标管理的作用 软件项目的目标是开发出可运行的、客户满意的软件系统持续集成有统一的代 码库。要求开发人员定期地、不断地向代码库提交代码。新近提交的代码会经过编 译与测试.与代码库中旧有的代码相整合,形成安全稳定运行的代码库.既软件系 统。

    2024年02月10日
    浏览(33)
  • 软件开发项目管理工具哪个好?

    瀑布模型是一种按照固定的阶段顺序进行项目开发的方法,它要求在进入下一个阶段之前,必须完成当前阶段的所有任务。瀑布模型的优点是清晰、简单、易于控制,但也存在一些缺点,如缺乏灵活性、难以应对需求变化、风险较高等。 为了克服瀑布模型的局限性,许多项目

    2023年04月09日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包