OpenProject 安裝

讓有經驗的DevOps,可以一天建立OpenProject專案管理系統。 另外官網建議14.5或以上,應該改用 docker compose方式 https://github.com/opf/openproject-docker-compose/issues 但是到目前為止,用 docker 可直接一路升級到 15.3.2 不須改用docker compose

Docker安裝

docker-ce 版本  24.0.2-1  或 以上

docker volume create project_assets
docker volume create project_pgdata

# 14.0.0版以前(不含14.0.0)
docker run -d --restart=always -p 8091:80 --name openproject  -e OPENPROJECT_DEFAULT__LANGUAGE=zh-TW -e OPENPROJECT_HTTPS=false -e OPENPROJECT_SECRET_KEY_BASE=安全密碼 -v project_pgdata:/var/openproject/pgdata -v project_assets:/var/openproject/assets -v project_fonts:/app/public/fonts openproject/community:13.4.1

# 14.0.0版以後(含14.0.0)
docker run -d --restart=always -p 8091:80 --name openproject  -e OPENPROJECT_DEFAULT__LANGUAGE=zh-TW -e OPENPROJECT_HTTPS=false -e OPENPROJECT_SECRET_KEY_BASE=安全密碼 -v project_pgdata:/var/openproject/pgdata -v project_assets:/var/openproject/assets -v project_fonts:/app/public/fonts openproject/openproject:14.0.1

#以上參數需要修改如下
8091:80  ->  8091為主機的port(沒被佔用)
OPENPROJECT_DEFAULT__LANGUAGE=zh-TW  -> zh-CN or en 
OPENPROJECT_HTTPS=false  -> 網站內部使用,所以不需要https,https交給代理伺服器即可
OPENPROJECT_SECRET_KEY_BASE=安全密碼 

#若需要開放資料庫(postgres)給外部使用, 則加上 -p 5432:5432 , 且新增一個superuser連線

#新增superuser
docker exec -it --user postgres openproject bash
psql
postgres=# CREATE ROLE root WITH LOGIN SUPERUSER PASSWORD '密碼';

#外面連線進來
psql -h <ip>  -U <帳號> <資料庫>
ex:
psql -h 172.17.0.2 -U root openproject


安裝openproject(不需要內建的postgres資料庫)

docker run -d --restart=always -p 8091:80 --name openproject  -e OPENPROJECT_DEFAULT__LANGUAGE=zh-TW -e OPENPROJECT_HTTPS=false -e OPENPROJECT_SECRET_KEY_BASE=安全密碼 -e DATABASE_URL=postgres://user:pass@host:port/dbname -v project_assets:/var/openproject/assets -v project_fonts:/app/public/fonts openproject/openproject:15.4.0

#以上參數需要修改如下
8091:80  ->  8091為主機的port(沒被佔用)
OPENPROJECT_DEFAULT__LANGUAGE=zh-TW  ## 簡中zh-CN or 英文en 
OPENPROJECT_HTTPS=false  # 網站內部使用,所以不需要https,https交給代理伺服器即可
OPENPROJECT_SECRET_KEY_BASE=安全密碼 #老實說我也不知幹嘛的,沒認真K文件
DATABASE_URL=postgres://user:pass@host:port/dbname   # 外部已預先安裝好的postgres

安裝完畢,瀏覽器輸入http://ip:8091 ,登入預設 admin/admin

匯出PDF出現繁體中文亂碼解決方式

image.png

  1. 下載 NotoSansTC 繁體中文,
    或是建議下載可簡繁正確顯示(簡變成繁)
    獅尾繁中黑體 Swei Fan SansSweiFanSansCJKtc-Regular.ttf檔案
  2. 將 NotoSansTC-xxx.ttf  或 SweiFanSansCJKtc-Regular.ttf 複製並取代 /app/public/fonts/noto/ 的所有ttf檔案

    image.png


  3. 此時就可以正常匯出了(但字型就只會有一種)
    image.png

體驗企業版

  1. 目前測試14.x.x -> 15.1.0測試ok
  2. 申請試用 
    https://www.openproject.org/docs/enterprise-guide/enterprise-on-premises-guide/enterprise-on-premises-trial/
  3. 神人協助
    https://gist.github.com/markasoftware
https://gist.github.com/markasoftware/f5b2e55a2c2e3abb1f9eefcdf0bfff45/raw/148c5067e30eae04f96e3233144b4404f70ade47/enterprise_token.rb

############ REPLACE app/models/enterprise_token.rb in the source code with this file! ################
############ also be sure to RESTART OpenProject after replacing the file.             ################
############ it doesn't show that enterprise mode is enabled in the settings, but all  ################
############ enterprise mode features, such as KanBan boards, are enabled.             ################

資料庫備份

OP使用的是postgres資料庫,備份也使用標準的postgres指令

# 備份OP資料庫
docker exec -it <OP容器名稱> su - postgres -c 'pg_dump -d openproject -x -O' > openproject.sql

# 若資料庫非內建
docker exec -it <資料庫容器名稱> pg_dump -U postgres -d openproject -x -O > openproject.sql

postgres 連線指令

# -U 帳號
# -d 資料庫名稱
# -h 主機
# -W 需要輸入密碼
# -p 埠(預設5432)
psql -U root -d openproject -p 5432 -h localhost -W

升級

OP升級很友善,與nextcloud一樣會自動判斷,自行升級

# 拉下最新版
docker pull openproject/openproject:14.1.1

# 備份資料庫
docker exec -it openproject su - postgres -c 'pg_dump -d openproject -x -O' > openproject.sql
# 備份檔案(除非大版本更新,否則可以省略)

# 升級
docker stop openproject
docker rename openproject openproject_20240806

# 這裡我將postgres開放並改port為5433、http port改8091
docker run -d --restart=always -p 8091:80 -p 5433:5432 --name openproject  -e OPENPROJECT_DEFAULT__LANGUAGE=zh-TW -e OPENPROJECT_HTTPS=true -e OPENPROJECT_SECRET_KEY_BASE=<密碼> -v project_pgdata:/var/openproject/pgdata -v project_assets:/var/openproject/assets openproject/openproject:14.1.1

# 查看執行狀況
docker logs -f openproject