OpenProject 安装部署全解:Docker 一键搭建开源项目管理平台
【免费下载链接】openprojectOpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracking, roadmaps, Gantt charts, time tracking, collaboration features, and more. Available on premises or in the cloud. ⭐ Star us on GitHub项目地址: https://gitcode.com/GitHub_Trending/op/openproject
商业项目管理工具的按人头授权费,在团队超过 20 人后就会变成一笔不小的开支;而数据存放在厂商云上,又让不少团队负责人不放心。OpenProject 是当下最活跃的开源项目管理软件之一,覆盖工作包、甘特图、看板、时间跟踪等 Jira 同类功能,且可以完全自托管。本文的目标很具体:30 分钟内,用一条 Docker 命令部署 OpenProject,并完成"建项目→建任务→验证"的完整闭环。
30 秒认识 OpenProject
OpenProject 是一个 Web 端、可自托管的开源项目管理平台,面向需要数据主权、又不想被供应商绑定的研发与交付团队。核心能力包括:
- 项目、项目集与产品管理,支持组合视图
- 甘特图排期、敏捷看板,瀑布与 Scrum 两种方法论都能跑
- 工作包(Work Package)全流程跟踪:指派、状态流转、依赖关系
- 时间跟踪与成本统计、Bug 跟踪、Wiki 与会议纪要
- 内置 GitHub、GitLab、Nextcloud 等集成,插件源码位于 modules/ 目录
部署前准备:硬件与依赖清单
先看服务器配置。官方按总活跃用户数给出的分档如下(来自 docs/installation-and-operations/system-requirements/):
| 用户规模 | CPU | 内存 | 磁盘 |
|---|---|---|---|
| ≤200 人 | 4 核 | 4 GB | 20 GB |
| ~500 人 | 8 核 | 8 GB | 40 GB |
| ~1500 人 | 16 核 | 16 GB | 80 GB |
依赖方面,Docker 路线只需两样:
- Docker 引擎 + Docker Compose(推荐安装方式,官方已不再提供新版 Linux 发行版的打包安装)
- 数据库无需自备:镜像内置 PostgreSQL 17。注意 OpenProject 已停止支持 MySQL,不要拿旧数据库硬迁
客户端支持 Chrome、Firefox、Edge、Safari 最新版即可。
安装启动:一条命令拉起服务
若宿主机还没装 Docker,以 Ubuntu 为例:
# 安装 Docker 并设置开机自启 sudo apt update && sudo apt install -y docker.io docker-compose sudo systemctl enable --now docker⚠️ 注意:有一个环境变量必须单独对待。SECRET_KEY_BASE是 Rails 加密密钥,容器每次重启都必须用同一个值,否则已有会话和数据库中的加密内容将全部失效:
# 生成 64 位随机密钥,务必记录在密码管理器里 openssl rand -hex 64创建数据目录并启动容器,全程只有一条docker run:
# 宿主机上创建数据库与附件的数据目录 sudo mkdir -p /var/lib/openproject/{pgdata,assets}# 后台启动 OpenProject 17,挂载数据目录防止重启丢数据 docker run -d --name openproject -p 8080:80 \ -e SECRET_KEY_BASE=换成上一步的64位密钥 \ -e OPENPROJECT_HOST__NAME=localhost:8080 \ -e OPENPROJECT_HTTPS=false \ -e OPENPROJECT_DEFAULT__LANGUAGE=zh \ -v /var/lib/openproject/pgdata:/var/openproject/pgdata \ -v /var/lib/openproject/assets:/var/openproject/assets \ openproject/openproject:17首次启动需要2~5 分钟完成数据库初始化,期间不要反复重启容器。完成后打开浏览器访问http://服务器IP:8080,用admin登录,首次密码由启动日志打印,默认即admin/admin:
# 查看首次启动日志,找到管理员默认密码 docker logs openproject小贴士:生产环境请部署 TLS 反向代理,并把OPENPROJECT_HTTPS=false去掉;该参数只建议本地验证时使用。
首次配置:登录后必做的 3 件事
登录后按顺序处理这三项,避免后续返工:
- 改掉管理员密码。右上角头像进入账户设置,密码策略支持大小写+数字+特殊字符。
- 系统设置:管理后台里确认站点名称、时区。默认语言在安装时已由
OPENPROJECT_DEFAULT__LANGUAGE=zh定为中文,工作包类型、状态名等基础数据均按此语言生成。 - 配置 SMTP 并发送测试邮件:团队成员接收通知、指派提醒都依赖邮件通道。测试邮件走同步发送,真实业务邮件由后台任务异步发出,两者都要验证。
上手实战:从建项目到跑通第一个工作包
用一个真实小任务走完完整流程:
- 点顶部"新建项目",填写名称与标识符,选择要启用的模块(至少勾选工作包、看板):
- 进入项目后创建工作包,填写标题、负责人、计划开始/结束日期。工作包是 OpenProject 的核心实体,一个任务、一个 Bug、一个子交付物都是工作包:
- 把项目页签切到甘特图视图,验证刚才的工作包已按日期渲染出时间条。再给第二个工作包添加"前驱"依赖关系,看时间条是否正确顺延——到这一步,说明部署、数据、前端渲染全部正常:
问题急救站:4 个高频故障
现象 1:端口冲突,容器启动即失败原因:宿主机 8080 端口被占用。 解法:改端口映射重启,如-p 8081:80,同时把OPENPROJECT_HOST__NAME改成对应端口。
现象 2:忘记 admin 密码原因:首次未修改,密码遗失。 解法:进容器重置:
# 在容器内执行管理员密码重置任务 docker exec -it openproject openproject rake \ "admin:password:reset['admin','新密码123!']"现象 3:测试邮件能收到,业务通知收不到原因:业务邮件由后台 worker 异步发送,worker 未运行或积压。 解法:浏览器访问http://你的域名/health_checks/all,查看worker_backed_up一项是否为 PASSED;不是则重启容器并检查日志。
现象 4:容器重建后数据全没了原因:未挂载数据卷,或换了SECRET_KEY_BASE。 解法:确认pgdata、assets两个卷已挂载到宿主机持久目录,并从备份处恢复原密钥。
进阶方向
基础跑通后,可以沿三条线深入:
- 生产化部署:多服务编排的 Docker Compose 与 Kubernetes Helm Chart 安装方式,以及备份、升级操作手册,都在 docs/installation-and-operations/ 目录
- 集成能力:modules/github_integration/、modules/webhooks/ 等模块可把提交、Webhook 事件直接关联到工作包
- 规模化:用户数增长后优先加 Web Workers 数与内存,具体参数见系统需求文档中的扩缩容章节
到这里,你的 OpenProject 实例已经跑通了"部署→配置→建项目→验证"的最小闭环。下一步建议:挑一个正在进行的真实项目,把本周的工作包全部录入系统,让团队用一周时间替代掉旧表格——数据搬进来,价值才真正开始。
【免费下载链接】openprojectOpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracking, roadmaps, Gantt charts, time tracking, collaboration features, and more. Available on premises or in the cloud. ⭐ Star us on GitHub项目地址: https://gitcode.com/GitHub_Trending/op/openproject
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考