OpenProject安装配置
OpenProject简介
OpenProject 是一款开源的项目管理软件,用于协作和组织团队的工作。它提供了丰富的功能,使团队能够有效地规划、跟踪和完成项目,具备关键特性和功能:
- 项目计划和追踪: OpenProject 允许用户创建项目计划、任务和阶段,以及设置截止日期和优先级。团队成员可以追踪任务的进度并及时更新状态。
- 协作和团队沟通: OpenProject 提供了协作工具,如讨论板、共享文件和团队日历,以便团队成员之间更好地沟通和共享信息。
- 缺陷跟踪: 该软件支持缺陷和问题的跟踪,帮助团队发现和解决项目中的问题。
- 文档管理: OpenProject 具有文档管理功能,使团队能够轻松地共享和访问项目文档,包括文档版本控制。
- 报表和分析: 用户可以生成各种报表,以便了解项目的整体状况,并根据数据做出决策。
- 自定义工作流程: OpenProject 允许用户根据其团队的需求自定义工作流程,以适应不同类型的项目。
- 集成: OpenProject 可以与其他工具和服务进行集成,如版本控制系统、日历应用和电子邮件。
- 用户权限和安全性: 提供了灵活的用户权限设置,以确保只有授权人员可以访问敏感信息。
总体而言,OpenProject 通过提供一套强大而灵活的工具,有助于团队更有效地协作、规划和完成项目。由于其开源性质,用户可以根据需要进行定制和扩展。
基于docker-compose的安装
OpenProject提供了多种安装方式,包括基于包的安装、基于多容器编排(docker-compose)的安装以及基于单个容器的安装方式等。综合考虑便利性和稳定性,选择了基于docker-compose的安装方式。
工作模式
采用Docker Compose的方式启动,在内网提供http服务,通过群晖的反向代理为外网提供https服务。
基础材料
-
安装环境
基于群晖NAS,使用群晖官方提供的Container Manager
-
配置文件
基于OpenProject官方提供的
docker-compose.yml
模板文件,根据实际需要修改。 -
功能增强文件
使用github上的文件解锁OpenProject的企业功能,记为enterprise_token.rb,与docker-compose文件放在同一目录。具体内容参见:
https://gist.github.com/markasoftware/f5b2e55a2c2e3abb1f9eefcdf0bfff45
安装步骤
-
上传文件至群晖文件目录
-
修改启动参数,大部分使用默认参数,需要修改的主要有:
OPENPROJECT_HTTPS
设为"true"OPENPROJECT_HSTS
设为"true"OPENPROJECT_HOST__NAME
设为"外部hostname:端口号"proxy
服务的外部端口号- 将功能增强文件以数据卷的方式挂载到容器中
- 此外,可以考虑修改数据库参数
DATABASE_URL
-
使用Container Manager启动
配置
反向代理
如前所述,容器提供的是http服务,但是使用群晖的反向代理对外提供的是https服务,所以需要在外部终止TLS/SSL。具体如下图所示。“自定义标题”,实际上就是nginx中的proxy_set_header
配置,其中Upgrade
和Connection
是为了解决Websocket的代理问题,剩余几项是为了解决种种TLS/SSL。此外,在启动时已经配置了OPENPROJECT_HTTPS
为true
,以保证OpenProject知道对外提供的是https服务。
邮箱通知
在管理界面设置邮箱信息,配了很长时间一直报各种各样的错,最后才发现是Emission email address
和SMTP username
必须要一致。下图以QQ邮箱为例给出了配置方式。
配置OneDrive作为文件存储
OpenProject的商业版本从13.1开始支持使用Onedrive/SharePoint作为文件存储,我做了一下测试。主要的流程与之前使用AutoAPI保持E5开发者账号的活跃度很类似,稍微不太一样的地方是需要获取Drive ID。
一开始参照官方文档来获取,使用Graph Explorer和Sharepoint的信息来获取,比较麻烦。后来发现直接使用Graph Explorer,登录Onedrive账号,开启Sites.Read.All
权限,然后调用https://graph.microsoft.com/v1.0/me/drives ,Response中的id
字段就是Drive ID。
添加成功后,可以在Project settings中开启File storages
模块,然后添加刚才设置的File storage即可。
参考资料
- https://learn.microsoft.com/en-us/answers/questions/730575/how-to-find-site-id-and-drive-id-for-graph-api
- https://gist.github.com/markasoftware/f5b2e55a2c2e3abb1f9eefcdf0bfff45
- https://www.openproject.org/docs/system-admin-guide/integrations/one-drive/#set-up-the-integration
- https://blog.csdn.net/qq_31275085/article/details/104790941
- https://www.synoforum.com/resources/synology-reverse-proxy-under-the-hood.135/