ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenProject 安装指南:Docker Compose、DEB/RPM 包、单容器与 Helm 四种部署方式全解析

OpenProject 安装指南:Docker Compose、DEB/RPM 包、单容器与 Helm 四种部署方式全解析 OpenProject 安装指南Docker Compose、DEB/RPM 包、单容器与 Helm 四种部署方式全解析【免费下载链接】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/openprojectOpenProject 作为开源项目管理软件提供了从快速体验到大规模生产部署的多条安装路径。本文以官方安装总览文档为骨架系统梳理 Docker Compose、DEB/RPM 包、单 Docker 容器与 Helm Chart 四种方式的适用场景、完整命令与配置要点并结合仓库内真实配置与源码佐证帮助你根据实例规模、运维能力与网络环境选出最合适的部署方案并顺利完成安装。四种安装方式总览与选型OpenProject 官方将安装方式划分为四类核心差异在于组件隔离程度、升级可维护性与适用规模方式文档适用场景Docker Composedocs/installation-and-operations/installation/docker/README.md中小型实例官方推荐组件独立容器、易扩展易监控DEB/RPM 包docs/installation-and-operations/installation/packaged/README.md使用包管理器安装支持有限的发行版单 Docker 容器docs/installation-and-operations/installation/docker/README.md快速体验/测试所有进程挤在一个容器内Helm Chartdocs/installation-and-operations/installation/kubernetes/README.md大规模实例Kubernetes 上编排部署官方建议非常明确中小规模实例优先 Docker Compose大规模实例优先 Helm Chart。除这四种外仓库还提供了一些特定平台的补充指南如 Synology NAS、手动安装详见 docs/installation-and-operations/installation/misc/README.md 中的Other分类这些属于非推荐路径仅作参考。值得注意仓库根目录的 docker-compose.yml 是开发环境编排文件面向开发者本地调试包含 backend/frontend/worker/db/hocuspocus 等 dev 服务生产环境的 Compose 文件由官方在独立的openproject-docker-compose仓库维护安装时按下文方式获取即可。Docker Compose 安装官方推荐适合中小实例Docker Compose 方式的核心价值在于一个组件一个容器应用、数据库、缓存各自独立可以单独选择要运行的服务也便于后续的水平扩展与监控。完整的安装说明见 docs/installation-and-operations/installation/docker/README.md 中的 One container per process 一节。安装步骤要点下载官方维护的docker-compose.yml生产版按需编辑环境变量与卷挂载执行docker compose up -d启动整套服务首次启动时 seeder 服务会执行数据库迁移与种子数据初始化。关键配置项Compose 安装同样通过OPENPROJECT_*环境变量传递配置其中最重要的几个环境变量作用说明OPENPROJECT_HOST__NAME应用外部主机名用于生成表单与邮件中的链接必须与浏览器访问的域名一致SECRET_KEY_BASERails 密钥基座需用openssl rand -hex 64生成并妥善保存每次启动必须一致OPENPROJECT_HTTPS是否启用 HTTPS 模式生产环境必须开启默认开启由外部 Web 服务器终止 TLSOPENPROJECT_DEFAULT__LANGUAGE首次安装的基础数据语言决定类型/状态名称等种子数据的创建语言及新用户默认语言所有可配置项的完整清单见 docs/installation-and-operations/configuration/environment/README.md。单 Docker 容器安装快速体验不建议生产单容器模式把所有进程应用、内置 PostgreSQL、memcached放进一个容器一条命令即可启动是官方文档中的Quick Start路径适合测试与体验不推荐用于生产——因为数据库等组件无法独立升级可维护性差。快速启动命令docker run -it -p 8080:80 \ -e SECRET_KEY_BASEyour-secret-key-base \ -e OPENPROJECT_HOST__NAMElocalhost:8080 \ -e OPENPROJECT_HTTPSfalse \ -e OPENPROJECT_DEFAULT__LANGUAGEen \ openproject/openproject:17参数逐一说明-p 8080:80把容器内 80 端口映射到宿主机 8080SECRET_KEY_BASERails 密钥基座替换为openssl rand -hex 64生成的强随机值必须妥善保管且每次启动一致否则既有会话与加密的数据库内容将无法读取OpenProject 会拒绝使用默认或弱值启动OPENPROJECT_HOST__NAME应用主机名用于生成表单和邮件链接需与外部请求的 Host 一致OPENPROJECT_HTTPSfalse关闭默认开启的 HTTPS 模式以便 HTTP 访问生产环境强烈不建议关闭应在外部 Web 服务器做 TLS 终止OPENPROJECT_DEFAULT__LANGUAGE控制首次安装时基础数据类型、状态名称等与演示数据的创建语言同时作为新用户的默认回退语言。首次启动需数分钟完成后终端会显示默认管理员账号用户名admin密码admin浏览器访问http://localhost:8080即可。前台运行按CTRL-C停止后台运行加-d参数。若遇到伪终端分配pseudo-TTY问题导致无法写入/dev/stdout可在-d模式外追加-t参数作为变通。数据持久化与生产化改造官方明确警告上面的一行命令禁用了 HTTPS 且不做持久化不适合生产。生产化至少需要在宿主机创建数据目录如/var/lib/openproject并挂载进容器设置正确的对外主机名防止 HOST header 注入攻击在容器前置负载均衡/反向代理负责 TLS 终止与安全加固。sudo mkdir -p /var/lib/openproject/{pgdata,assets} docker run -d -p 8080:80 --name openproject \ -e OPENPROJECT_HOST__NAMEopenproject.example.com \ -e SECRET_KEY_BASEyour-secret-key-base \ -v /var/lib/openproject/pgdata:/var/openproject/pgdata \ -v /var/lib/openproject/assets:/var/openproject/assets \ openproject/openproject:17命名容器后可用docker stop openproject/docker start openproject控制启停docker rm openproject销毁。macOS 用户若在挂载目录遇到 Operation not permitted 错误应把两个目录创建在宿主机的用户目录下。镜像标签与架构支持镜像基于语义化版本发布关键标签策略标签浮动性用途X.Y.Z/X.Y.Z-slim非浮动精确定位某个版本生产推荐发布新版本后需手动更新X.Y/X.Y-slim浮动每次补丁发布推送注意补丁可能包含数据库迁移X/X-slim浮动每次补丁或次版本发布推送应用变更会自动发生dev/dev-slim浮动每日构建的开发版仅用于测试与早期反馈严禁用于生产数据-slim变体只包含应用镜像与应用服务器用于反向代理之后或作为 Docker Compose / Helm Chart 的基底镜像官方推荐生产环境使用 slim。架构方面自 OpenProject 12.5.6 起同时发布 AMD64 与 ARM64 两种架构但BIM 版本仅支持 AMD64。镜像完整性验证与供应链安全每个发布到 Docker Hub 的镜像都使用 Sigstore cosign 以 keylessOIDC方式签名并附带以下签名证明attestation证明类型Predicate 类型用途Releasehttps://in-toto.io/attestation/release/v0.1构建来源源码仓库、git ref、commit、构建工作流与时间戳SBOMhttps://cyclonedx.org/bom/v1.6软件物料清单列出镜像中每个组件VEX (CycloneDX)https://cyclonedx.org/vex/v1.6对底层容器中不可修复已知漏洞的可利用性说明VEX (OpenVEX)https://openvex.dev/ns/v0.2.0同一证明的 Docker Scout 期望格式验证命令生产与离线部署强烈建议执行cosign verify-attestation \ --type https://cyclonedx.org/bom/v1.6 \ --certificate-identity-regexp https://github.com/.*/.github/workflows/.* \ --certificate-oidc-issuer https://token.actions.githubusercontent.com \ openproject/openproject:16生产环境应把验证固定到不可变的镜像摘要openproject/openprojectsha256:...而非标签。查看 SBOM 用docker scout sbom openproject/openproject:16扫描漏洞并应用官方分流结论用docker scout cves openproject/openproject:16 --vex-author OpenProject Foundation operationsopenproject.com。该流程的完整说明可参考仓库中的安全编码指南。反向代理与子目录部署容器本身不应直接暴露公网官方给出了 Apache 与 nginx 两种前置代理配置。虚拟主机根路径部署假设域名openproject.example.comVirtualHost *:443 ServerName openproject.example.com SSLEngine on SSLCertificateFile /etc/ssl/crt/server.crt SSLCertificateKeyFile /etc/ssl/crt/server.key ProxyRequests off Location / RequestHeader set X-Forwarded-Proto https ProxyPreserveHost On ProxyPass http://127.0.0.1:8080/ ProxyPassReverse http://127.0.0.1:8080/ /Location /VirtualHost对应的 nginx 配置server { listen 443 ssl; server_name openproject.example.com; ssl_certificate /etc/ssl/crt/server.crt; ssl_certificate_key /etc/ssl/crt/server.key; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_pass http://127.0.0.1:8080; } }子目录部署如example.com/openproject容器启动参数追加-e OPENPROJECT_RAILS__RELATIVE__URL__ROOT/openproject代理层相应把/openproject/前缀转发到容器的/openproject/路径。Apache 需确保RewriteRule ^/openproject$ /openproject/处理结尾斜杠nginx 则在location /openproject中把请求透传给后端。无论哪种方式X-Forwarded-Proto: https与ProxyPreserveHost On或 nginx 的proxy_set_header Host $host都是必须的否则内部服务器无法判断外部协议与主机名可能出现重定向到内网地址的问题。HTTPS 与 HSTS 行为默认情况下生产系统会期待 HTTPS 请求由外部 Web 服务器终止 TLS 后通过X-Forwarded-Proto转发协议信息仅当确实需要时设置OPENPROJECT_HTTPSfalse关闭 HTTPS 响应模式但这会禁用会话 cookie 的安全标志生产环境强烈不建议开启 HTTPS 时默认输出 HSTS 头并强制 HTTP 请求重定向到 HTTPS如确需关闭设置OPENPROJECT_HSTSfalse关闭 HTTPS 模式时该标志同时失效。插件扩展与离线安装官方镜像本身不支持插件但可以通过自定义 Dockerfile 添加创建包含Gemfile.plugins声明插件 gem如openproject-slack与 Dockerfile 的目录基于openproject/openproject:17执行bundle install与资产预编译后构建即可slim 镜像需用多阶段构建复制插件产物。对于连接使用自签名证书的外部服务如 SMTP、Nextcloud可用--mount挂载根证书并设置SSL_CERT_FILE或构建镜像把证书拷入/usr/local/share/ca-certificates/后执行update-ca-certificates。离线/隔离网络部署则用docker save/docker load迁移镜像# 有网环境 docker pull openproject/openproject:17 docker save openproject/openproject:17 | gzip openproject-stable.tar.gz # 目标环境 gunzip openproject-stable.tar.gz docker load -i openproject-stable.tarDocker Swarm 水平扩展对需要服务大量用户的场景官方提供了基于 Docker Swarm 的横向扩展方案初始化 swarm 并加入 worker 节点后使用基于官方docker-compose.yml改编的 stack 文件部署多节点时必须配置共享存储NFS 挂载附件与数据库目录或改用 AWS S3/MinIO 存储附件随后通过docker service scale openproject_proxy2 openproject_web6 openproject_worker2扩展代理、Web 与后台任务副本。数据库与 memcached 建议保持单副本数据库在 Swarm 中不可横向扩展swarm 内置负载均衡会自动分发请求。DEB/RPM 包安装包管理器路线包安装是另一条成熟路径安装包会引导完成全部步骤安装依赖库、配置本地或外部 PostgreSQL、安装并配置外部 Apache 反向代理推荐、可选配置 SSL/TLS、Git/SVN 仓库支持与邮件设置。完整流程见 docs/installation-and-operations/installation/packaged/README.md。支持的发行版官方支持仅 64 位Ubuntu 22.04、Ubuntu 20.04、Debian 12、Debian 11、CentOS/RHEL 9.x、SLES 15。安装前用uname -m确认输出为x86_64。需要特别注意官方不再为新的 Linux 发行版构建包如 Ubuntu 24.04只对现行支持的发行版持续发布新版本直到其 EOL如果发行版已 EOL 且无法获取包应参考 packaged → Docker Compose 迁移指南 迁移。此外包安装最适合专用服务器/虚拟机若目标系统已被深度定制或已运行其他软件官方建议改用 Docker 方案。各发行版仓库配置Ubuntu 22.04 / 20.04Debian 系同理路径中替换发行版代号sudo apt-get update sudo apt-get install apt-transport-https ca-certificates wget # 导入签名密钥 sudo curl -fsSL https://packages.openproject.com/srv/deb/opf/openproject/gpg-key.gpg \ -o /usr/share/keyrings/openproject.gpg # 添加软件源以 22.04 为例 sudo curl -fsSL \ https://packages.openproject.com/srv/opf/openproject/stable/17/installer/ubuntu/22.04.list \ -o /etc/apt/sources.list.d/openproject.list sudo apt-get update sudo apt-get install openprojectDebian 12 / 11 把仓库文件替换为debian/12.list、debian/11.list并需安装curl gpg。可用apt-cache policy验证仓库配置是否正确。CentOS 9 / RHEL 9sudo rpm --import https://packages.openproject.com/srv/rpm/opf/openproject/gpg-key.asc # 启用 EPELRHEL 还需 codeready-builder 仓库 sudo subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm # 添加 OpenProject 仓库 sudo curl -fsSL \ https://packages.openproject.com/srv/opf/openproject/stable/17/installer/el/9.repo \ -o /etc/yum.repos.d/openproject.repo sudo yum install openproject # 或 sudo dnf install openprojectSLES 15zypp 体系sudo curl -o /etc/zypp/repos.d/openproject.repo \ https://packages.openproject.com/srv/opf/openproject/stable/17/installer/sles/15.repo sudo zypper refresh openproject sudo zypper install openproject sudo zypper repos # 验证注意CentOS/RHEL 9 与 SLES 15 默认不支持附件全文提取需要时手动安装catdoc unrtf poppler-utils tesseract-ocr依赖并在Administration Information中确认 OpenProject 能识别这些依赖。初始配置向导openproject configure包安装完成后通过向导完成初始化配置。核心命令sudo openproject reconfigure # 交互式选择会被持久化到 /etc/openproject/installer.dat sudo openproject configure # 非交互式复用 installer.dat 中的值向导逐步涵盖版本选择标准版 / BIM 版→ PostgreSQL 数据库本地新建 / 连接已有 / 跳过并手动设置DATABASE_URL→ Apache2 反向代理与 SSL 终止域名、路径前缀、证书路径或选择跳过→ Git/SVN 仓库支持 → 管理员邮箱 → memcached 缓存 → 主机名与协议跳过 Apache 时才显示→ 默认语言仅首次安装生效。其中DATABASE_URL也可手动设置sudo openproject config:set DATABASE_URLpostgresql://[user[:password]][host][:port][/dbname][?param1value1...]若 SSL 由外部服务器终止则需在外部代理上设置ProxyPreserveHost OnApache或proxy_set_header X-Forwarded-Host $host:$server_port;nginx同时传递X-Forwarded-Proto https并执行openproject config:set SERVER_PROTOCOL_FORCE_HTTPStrue确保邮件等场景生成 https 链接。仓库还提供了可参考的 Apache 反向代理配置样例 docs/installation-and-operations/installation/packaged/openproject-apache-example.conf。配置完成后访问http://openproject.example.com/server prefix使用admin/admin登录首次登录会强制改密。Helm Chart 安装Kubernetes适合大规模实例OpenProject 在 Kubernetes 上通过官方 Helm Chart 部署官方文档docs/installation-and-operations/installation/kubernetes/README.md指出Kubernetes 作为容器编排工具可以直接复用 Docker 容器的使用方式见 docs/installation-and-operations/installation/docker/README.md但大规模生产推荐使用 Helm Chart 方式部署。它同样以-slim镜像为基底把 OpenProject 拆分为 web、worker、seeder 等多个 Deployment/Job与 Docker Swarm 的扩展思路一致但编排能力更强适合需要 Kubernetes 原生能力弹性伸缩、滚动更新、多节点高可用的大规模实例。安装 FAQActive Directory 集成安装总览文档中专门回答了如何在 Active Directory 环境下分步安装 OpenProject Enterprise 本地版的问题核心是接入 LDAP 目录服务详见 LDAP 连接指南在 Enterprise 本地版中还可以把 OpenProject 中的群组与 LDAP 群组同步注以上链接路径依据仓库实际目录docs/system-admin-guide/authentication/ldap-connections/对应内容。安装完成后的进阶配置SMTP 邮件、LDAP/AD、SAML、OpenID 认证集成分别参见 出站邮件配置 与 认证集成文档。安装后的运维建议安装只是起点仓库的运维文档体系与安装文档直接衔接升级单容器与 Compose 方式升级时注意浮动标签可能带来数据库迁移务必保证能执行 seeder/migrations 任务详见 升级指南备份与恢复备份指南 与 恢复指南高级配置所有OPENPROJECT_*环境变量与配置项的权威说明见 环境变量文档 与 高级配置总览版本迁移如从 MySQL 迁移到 PostgreSQL、packaged 迁移到 Docker Compose 等见 misc 迁移文档。总结四种安装方式覆盖了 OpenProject 从几分钟上手到大规模高可用的完整梯度单容器适合体验与测试Docker Compose 是中小生产实例的推荐选择DEB/RPM 包适合偏好包管理器、运行在受支持发行版的场景Helm Chart 则是大规模 Kubernetes 集群的标准答案。无论选择哪条路径SECRET_KEY_BASE的安全保存、对外主机名的正确设置、HTTPS/TLS 终止与反向代理的规范化配置都是保证实例安全与长期可维护的共同前提。【免费下载链接】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),仅供参考
返回列表