本文軟件由網(wǎng)友
不長到一百四誓不改名
推薦;
什么是 OpenProject ?
OpenProject
是一個開源、基于Web
的項目管理系統(tǒng),提供了免費的社區(qū)版和收費的企業(yè)版。OpenProject
擁有完善的文檔,API
,及豐富的功能,可以為項目團隊提供整個項目生命周期的支持,因而成為企業(yè)的一個很好的選擇。
前言
使用 Docker
安裝 OpenProject
有兩種方式:一種是多容器方式,適合生產(chǎn)環(huán)境,另一種是單容器方式,安裝簡單但不適應(yīng)于生產(chǎn)環(huán)境
群暉本身并不適合作為生產(chǎn)環(huán)境的服務(wù)器,所以這次老蘇選擇了單容器方式安裝,用于體驗功能還是可以的
其實兩種方式老蘇都嘗試了,但是在日常運行的小機器上均失敗了,老蘇猜測可能是兩個原因:
- 機器內(nèi)存太小
熟悉老蘇的讀者都知道,老蘇日常安裝的小機器只有 4G
內(nèi)存,很多時候安裝失敗,可能都是這個原因?qū)е碌模?/p>
- 無法生成足夠的隨機數(shù)
老蘇在跟蹤容器的日志時,發(fā)現(xiàn)有一條??下面這樣的錯誤
rake aborted!
failed to get urandom
最近幾個基于 Ruby
的項目都是這個錯誤,所以老蘇咨詢了 ChatGPT
,它給出的結(jié)論是:因為系統(tǒng)缺乏隨機性,無法生成足夠的隨機數(shù)。
老蘇用 ChatGPT
給的命令查了一下群暉系統(tǒng)的熵池狀態(tài),按照 ChatGPT
的說法,如果該值小于 1000
,則表示熵池的可用熵值不足,就可能會導(dǎo)致 failed to get urandom
錯誤。
cat /proc/sys/kernel/random/entropy_avail
在日常的小機器上,這個值只有 130
而在另一臺上,這個值超過了 1000
至于原因,老蘇猜測可能跟系統(tǒng)內(nèi)核有關(guān)系,這也讓老蘇聯(lián)想到了,原本基于 Apache
的鏡像總會遇到的隨機數(shù)錯誤: Function not implemented: AH00141: Could not initialize random number generator
雖然跟ChatGPT
經(jīng)過了多輪交互,但是給的方案并不能解決這個問題,它提出的辦法是通過增加系統(tǒng)負載來增加系統(tǒng)熵池的可用熵值,從而有助于解決 failed to get urandom
錯誤。
例如:
# 安裝群暉診斷工具 Diagnosis Tool
sudo synogear install
# 在 60 秒內(nèi)使用 4 個工作進程以隨機寫入方式寫入 4GB 的數(shù)據(jù)。
sudo fio --name=test --ioengine=sync --rw=randwrite --bs=4k --numjobs=4 --size=4G --runtime=60 --time_based
但是老蘇發(fā)現(xiàn)并沒有什么用,和之前的 AH00141
一樣,最后還是只能換機器安裝
安裝
終于到了安裝環(huán)節(jié)了,還是在群暉上以 Docker 方式安裝。
在注冊表中搜索 openproject
,選擇第一個 openproject/community
,版本選擇 12
。
之所以選 12
而不是更高版本,是因為在這里,12
相當(dāng)于往常使用的 latest
卷
在 docker
文件夾中,創(chuàng)建一個新文件夾 openproject
,并在其中建兩個子文件夾,分別是 assets
和 pgdata
文件夾 | 裝載路徑 | 說明 |
---|---|---|
docker/openproject/assets |
/var/openproject/assets |
存放資源,例如上傳的附件等 |
docker/openproject/pgdata |
/var/openproject/pgdata |
存放數(shù)據(jù)庫 |
端口
本地端口不沖突就行,不確定的話可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口號
本地端口 | 容器端口 |
---|---|
7090 |
80 |
默認情況下,容器對外暴露了 PostgreSQL
數(shù)據(jù)庫端口5432
老蘇覺得沒必要,只留下了 Web
端口
環(huán)境
可變 | 值 |
---|---|
OPENPROJECT_HOST__NAME |
url 地址,可以是 IP 也可以是域名 |
OPENPROJECT_HTTPS |
是否使用 https 協(xié)議 |
OPENPROJECT_SECRET_KEY_BASE |
密碼,可以用openssl rand -hex 64 生成 |
SECRET_KEY
可以用 Vaultwarden
的密碼生成器,也可以用 openssl rand -hex 64
老蘇只修改了幾個必要的環(huán)境變量
更多的環(huán)境變量,可以去看官方文檔: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
# 運行容器(局域網(wǎng))
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
安裝,將下面的內(nèi)容保存為 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
然后執(zhí)行下面的命令
# 新建文件夾 openproject 和 子目錄
mkdir -p /volume1/docker/openproject/{assets,pgdata}
# 進入 openproject 目錄
cd /volume1/docker/openproject
# 將 docker-compose.yml 放入當(dāng)前目錄
# 一鍵啟動
docker-compose up -d
運行
第一次啟動會花費一些時間
CPU
占用會先飆升,然后逐漸降低
但是內(nèi)存會逐漸上升
當(dāng)日志中看到 Listening on http://0.0.0.0:8080
時,就可以開始訪問了
在瀏覽器中輸入 http://群暉IP:7090
就能看到主界面
點右上角登錄
默認的賬號:
admin
,密碼:admin
第一次需要修改密碼
可以選擇簡體中文
跟著設(shè)置向?qū)В瓿芍缶涂梢蚤_始使用了
系統(tǒng)提供了演示兩個項目
其中 Demo project
是經(jīng)典項目管理,而 Scrum project
則是敏捷管理
反向代理
假設(shè)我們使用域名 https://project.laosu.ml:444
Openproject 的設(shè)置
以 docker cli
為例,需要修改環(huán)境變量,其中:
-
OPENPROJECT_HOST__NAME
:主機名改為了域名,有端口的也要的帶上; -
OPENPROJECT_HTTPS
:要啟動https
協(xié)議,所以要設(shè)為true
# 運行容器(互聯(lián)網(wǎng))
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
當(dāng)然你已經(jīng)安裝過的話,可以直接編輯、修改環(huán)境變量
npm 的設(shè)置
域名 | 局域網(wǎng)地址 | 備注 |
---|---|---|
project.laosu.ml |
192.168.0.199:7090 |
Openproject 訪問地址 |
在 npm
中的設(shè)置
SSL
都勾選了
如果只是這么設(shè)置,可以正常打開 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] 無法驗證跨站請求偽造令牌。您是否曾嘗試在多個瀏覽器或選項卡上提交數(shù)據(jù)?請關(guān)閉所有選項卡并重試。
所以老蘇又掏出了那段百試百靈的 截端口
代碼放入了 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/文章來源:http://www.zghlxwxcb.cn/news/detail-776098.html
Install OpenProject with Docker
地址:https://www.openproject.org/docs/installation-and-operations/installation/docker/文章來源地址http://www.zghlxwxcb.cn/news/detail-776098.html
到了這里,關(guān)于領(lǐng)先的項目協(xié)作管理軟件OpenProject的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!