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

在这里插入图片描述

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

什么是 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

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

在这里插入图片描述

至于原因,老苏猜测可能跟系统内核有关系,这也让老苏联想到了,原本基于 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

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

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

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

端口

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

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

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

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

环境

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

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

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

更多的环境变量,可以去看官方文档: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:12container_name: openprojectrestart: unless-stoppedports:- 7090:80volumes:- ./pgdata:/var/openproject/pgdata- ./assets:/var/openproject/assetsenvironment:  - 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

运行

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

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

在这里插入图片描述

但是内存会逐渐上升

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

在这里插入图片描述

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

在这里插入图片描述

点右上角登录

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

在这里插入图片描述

第一次需要修改密码

可以选择简体中文

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

系统提供了演示两个项目

在这里插入图片描述

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

反向代理

假设我们使用域名 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

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

在这里插入图片描述

npm 的设置

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

npm 中的设置

SSL 都勾选了

在这里插入图片描述

如果只是这么设置,可以正常打开 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] 无法验证跨站请求伪造令牌。您是否曾尝试在多个浏览器或选项卡上提交数据?请关闭所有选项卡并重试。

所以老苏又掏出了那段百试百灵的 截端口 代码放入了 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://;  
}

果然问题解决了 😂

参考文档

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/

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

当我问ChatGPT,知识图谱在工程项目管理中有什么用

导读 知识图谱(Knowledge Graph),在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示…

私藏多年的vscode插件分享,让你成为一个高效开发的程序员

vscode插件就像手机里的应用商店一样,可以让我们在高效代码开发、为了美观的代码格式,可以更好的高逼格分享代码等系列功能,本文特意整理了艾编程老师多年来使用vscode的经验,整理的插件集希望对您有帮助! 1、简体中文…

vscode插件(个人正在用的)

插件目录 any-ruleAuto Close TagAuto Rename Tagbackground-coverChinese (Simplified) (简体中文) Language Pack for Visual Studio CodeDebugger for JavaError LensESLintExtension Pack for JavaImage previewIntelliCodeIntelliCode API Usage ExamplesLanguage Support…

程序员请收好:10个非常有用的 Visual Studio Code 插件!

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 一个插件列表,可以让你的程序员生活变得轻松许多。 以下为译文: 无论你是经验丰富的开发人员还是刚刚开始第一份工作的初级开发人员,…

VSCode好用的插件

文章の目录 1、Chinese (Simplified) (简体中文) Language Pack(汉化vscode 必备)2、Bracket Pair Colorizer(给代码中的括号添加亮色,便于区分)3、Auto Close Tag(自动补全标签,必备&#xff0…

30个实用VSCode 插件,让你的开发效率倍增!

1. Image preview 通过此插件,当鼠标悬浮在图片的链接上时,可以实时预览该图片,除此之外,还可以看到图片的大小和分辨率。 2. Auto Rename Tag 使用该插件,可以在重命名一个 HTML 标签时,自动重命名 HTML…

跟我做一个可以聊天的 Visual Studio Code 插件

你每天有在用 Visual Studio Code 吗? 根据面向程序开发人员的时间跟踪工具 WakeTime 统计 , 在 2020 年全球开发者使用 Visual Studio Code 的时间合共 1800 万小时 。这是一个非常惊人的数字 。 你有想过开发一个 Visual Studio Code 插件吗 &#xff…

vscode常用的9个插件,推荐给你们

1. Settings Sync 开发必备神器之一!可以帮助你在不同的设备之间同步vscode所有的配置、插件!!! 虽然配置有好几个步骤,但是一旦配置好了之后使用非常的方便,只需要记住快速上传和快速下载的快捷键即可。甚至你可以选…

VS Code实用插件推荐

一、外观优化插件 1.1 Chinese 中文插件包,看起来清晰明了,安装完重启vs即可生效; 1.2 Better Comments 一款美化注释的插件,可以根据不同种类的注释,显示不同的颜色,一目了然。还可以通过扩展配置文件…

VSCode插件推荐

1. VSCode汉化包插件 :Chinese (Simplified) (简体中文) Language VSCode汉化包,原始默认是英文的所以我们需要下一个中文插件。 2. VSCode自动补全标签 :Auto Close Tag Auto Close Tag 对Html或Xml文件自动创建结束标签; 如在…

VScode神仙插件,程序员必备

前言 Visual Studio Code(VS Code)是微软2015年推出的一个轻量但功能强大的源代码编辑器,基于 Electron 开发,支持 Windows、Linux 和 macOS 操作系统。它内置了对JavaScript,TypeScript和Node.js的支持并且具有丰富的其它语言和扩展的支持&a…

VSCode提高代码开发效率插件:(一)差异对比插件

写代码经常会用到代码对比的功能,以前常用独立的软件Merge,Vscode中也有类似功能的插件。之前开发单片机一直用的Keil,但是用Keil编译去掉BroseInformation速度提上来了但是没法函数跳转了。 Vscode可以解决这个问题了。SourceInsight之类的代…

VScode 常用插件推荐,非常全面

文章目录 一、主题美化PeacockMaterial ThemeMaterial Theme IconsbackgroundPower ModeRainbow CSVIndent RainbowPolacode 二、检查格式化ESLintPrettier - Code formatterPrettier ESLintStylelint 三、编程美化Document ThisBetter CommentsRainbow Brackets 四、集成插件D…

android 新浪微博客户端的表情功能的实现

这是一篇好文章,我转来收藏,技术的最高境界是分享。 最近在搞android 新浪微博客户端,有一些心得分享弄android客户端表情功能可以用以下思路1.首页把新浪的表情下载到本地一文件夹种,表情图片的命名要用新浪微博表情原来的命名比…

夸克两年SVIP试水

那就这样喽 以后不用了就是🙄 然后还有另外一个目的就是 影视资源可以直接上传,然后就可能不会那么卡 可是现在很多资源网站都有视频直链加密,你点击了云收藏他有很大几率是不会收藏成功的(e.g.这个m3u8链接只有你这个IP才能用&a…

mix2 android 8.0,小米MIX2终于用上安卓8.0,米粉欢呼:MIUI9完美了

原标题:小米MIX2终于用上安卓8.0,米粉欢呼:MIUI9完美了 安卓8.0的系统出来啦!部分小米用户已经可以用上了基于安卓8.0系统的MIUI9 7.12.18体验版,据说速度“快到飞起”! 安卓8.0版本重点是提升了电池续航能…

Android模仿新浪微博(主页微博,评论界面)

主页微博: 获取当前登录用户及其所关注(授权)用户的最新微博接口:http://open.weibo.com/wiki/2/statuses/friends_timeline 代码详解: 1.异步get请求数据,由于数据中带图片,故需要多线程管理…

音视频技术开发周刊 | 291

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 谷歌将 AI 芯片团队并入云计算部门 追赶微软和亚马逊 OpenAI推出的ChatGPT获得一定成功,微软是OpenAI的重要投资者,它将ChatGPT植入必应搜索&#…

生成式AI年度观察 | 技术及产品快速迭代,生成内容质量及安全性仍需提升

原文链接: https://mp.weixin.qq.com/s/ED9mo5pxuDdyZmrFe-u7qw 一、2022年生成式AI发展观察 1.扩散模型和ChatGPT能力出众,多种生成模态涌现 扩散模型Diffusion(以下简称“扩散模型”)和神经网络模型CLIP结合,文生图实…

可信AI年度观察 | 生成式AI技术及产品快速迭代,生成内容质量及安全性仍需提升

自2021年起,生成式人工智能(以下简称“生成式AI”)连续两年入选Gartner《Hype Cycle for Artificial Intelligence》,被认为是未来重要的AI技术趋势。2022年以来,生成式AI产品不断涌现,生成内容模态多样&am…