OpenProject安装部署与使用介绍

OpenProject安装部署与使用介绍

1. OpenProject简介

1-1. 什么是OpenProject

​ OpenProject是一个功能全面的开源项目管理软件,它提供了一套集成的工具来支持项目规划、协作和监控。它的核心功能包括任务和问题跟踪、时间管理、新闻和文档管理,以及集成版本控制系统。OpenProject支持敏捷和瀑布项目管理方法,允许团队使用看板和甘特图来组织和监控项目进度。

​ 该软件以其灵活性和可定制性而闻名,用户可以根据项目需求调整工作流程和界面。OpenProject还提供了丰富的报表功能,帮助团队成员和管理层洞察项目状态和性能。此外,它支持多项目管理,使得大型组织能够同时管理多个项目。

​ OpenProject的开源特性意味着用户可以自由访问源代码,并根据需要进行修改。用户可以选择自托管OpenProject,以确保数据安全和合规性。它还拥有一个活跃的社区,为用户提供支持和分享最佳实践的平台。无论是小型团队还是大型企业,OpenProject都能提供强大的项目管理解决方案,以提高工作效率和透明度。

1-1. OpenProject优缺点

OpenProject优势

  1. 开源和免费:作为开源软件,OpenProject 允许用户自由使用和修改源代码,没有许可证费用。
  2. 自托管:用户可以在自己的服务器上部署 OpenProject,这有助于确保数据的安全性和合规性。
  3. 多功能:提供了项目管理、任务跟踪、时间跟踪、文档管理、甘特图、看板等多种功能。
  4. 灵活性和可定制性:用户可以根据需要自定义工作流程、字段和视图。
  5. 支持敏捷和瀑布:适合敏捷开发和传统瀑布模型,支持 Scrum 和 Kanban 等方法论。
  6. 多项目管理:能够同时管理多个项目和子项目。
  7. 报表和分析:提供多种报表工具,帮助团队和管理层监控项目进度和性能。
  8. 社区支持:拥有一个活跃的社区,用户可以在社区中寻求帮助和分享经验。
  9. 多语言支持:支持多种语言,适合不同语言的用户。
  10. 插件系统:通过插件扩展功能,虽然与商业解决方案相比,插件生态可能不那么丰富。

OpenProject不足

  1. 性能问题:在处理大量数据或用户时,性能可能不如一些商业解决方案。
  2. 用户界面:用户界面可能不如一些现代的项目管理工具直观和用户友好。
  3. 学习曲线:对于新用户来说,可能需要一定的时间来熟悉和掌握 OpenProject 的所有功能。
  4. 技术支持:虽然有社区支持,但可能不如商业解决方案那样提供专业的技术支持。
  5. 插件限制:虽然支持插件,但插件的数量和质量可能不如一些商业竞争对手。
  6. 集成限制:与其他系统的集成可能不如一些商业工具那样广泛和深入。
  7. 安全性和更新:自托管意味着用户需要自己负责软件的安全更新和维护。
  8. 移动应用:可能没有专门的移动应用,或者移动应用的功能不如桌面版本全面。
  9. 定制开发成本:如果需要深度定制,可能需要额外的开发成本。
  10. 文档和培训资源:虽然有文档和社区,但可能不如商业解决方案那样提供全面的培训和文档资源。

【注意】

虽然Openproject是开源项目,但有部分功能是付费的,例如Openproject的工作组规划,进行项目拖拽的方式进行可视化管理的功能,开源版不可用

2. OpenProject安装部署

2-1. 部署前需要了解事项

Openproject官方网址:https://www.openproject.org/

官方提供了4种不同的部署方式

  • 使用DEB或RPM包安装
  • 使用Docker container容器化部署
  • 部署在Kubernetes容器编排集群中
  • Helm部署,容器包管理器部署(类比与linux系统使用yum安装工具)

需自行安装docker环境,本次部署采用容器化部署,并使用持久化挂载存储

Docker是一种轻松分发自包含应用程序的方法。project为社区版提供了一个Docker镜像,可以在服务器上轻松安装和升级。然而,与手动或基于包的安装相反,需要先安装Docker引擎。

官方提供了2个启动示例:

  • 样例1,无持久化运行,试用调试场景
docker run -d -p 8080:80 \
  -e OPENPROJECT_SECRET_KEY_BASE=secret \
  -e OPENPROJECT_HOST__NAME=localhost:8080 \
  -e OPENPROJECT_HTTPS=false \
  openproject/openproject:15
  • 样例2,有持久化存储,可运行于生产
sudo mkdir -p /var/lib/openproject/{pgdata,assets}

docker run -d -p 8080:80 --name openproject \
  -e OPENPROJECT_HOST__NAME=openproject.example.com \
  -e OPENPROJECT_SECRET_KEY_BASE=secret \
  -v /var/lib/openproject/pgdata:/var/openproject/pgdata \
  -v /var/lib/openproject/assets:/var/openproject/assets \
  openproject/openproject:15

示例1 非常适合快速入门,但我们强烈建议不要将此设置用于生产目的,因为它禁用HTTPS模式并且不安全。
此外,如果你想在生产环境中运行OpenProject,你需要确保重新启动容器时数据不会丢失。
为了实现这一点,官方建议在安装Docker引擎的主机系统上创建一个目录(例如:/var/lib/openproject),所有这些数据都将存储在其中。

即使docker stop openprojectdocker start openproject,数据依旧存在

2-2. 安装部署

  • 拉取镜像
[root@hdt-dmcp-openproject ~]# docker pull openproject/openproject:14

考虑有些用户下载镜像时可能因网络问题,下载不了,例如提示:

Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

<可以通过百度分享下载,镜像是我在官方下载后打包上传分享的>

通过网盘分享的文件:openproject_14_img.tar
链接: https://pan.baidu.com/s/1iMMQCoq49Tle428B7NQOyQ?pwd=da3p 提取码: da3p

也可以通过浏览器自行去dockerhub的官方仓库去拉取上传至服务器,镜像来源dockerhub官方镜像地址:https://hub.docker.com/

登录可以直接点击download下载

[root@hdt-dmcp-openproject ~]# docker images
REPOSITORY                TAG       IMAGE ID       CREATED       SIZE
openproject/openproject   14        560aae2c41ce   2 weeks ago   2.68GB
  • 创建持久化存储目录
[root@hdt-dmcp-openproject ~]# mkdir -p /var/lib/openproject/{pgdata,assets,bin}

[root@hdt-dmcp-openproject ~]# cd /var/lib/openproject/
[root@hdt-dmcp-openproject openproject]# ll
total 12
drwxr-xr-x  5 app  app  4096 Nov 18 16:43 assets
drwxr-xr-x  2 root root 4096 Nov 18 16:43 bin
drwx------ 19  102  107 4096 Nov 18 16:44 pgdata

assets 应用信息,属于映射目录

bin 脚本目录,并非映射目录,用来管理容器的目录

pgdata 数据postgre存储目录

  • 创建启动脚本
[root@hdt-dmcp-openproject openproject]# cd bin
[root@hdt-dmcp-openproject bin]# vim project_run.sh 
#!/bin/bash
docker run -d -p 8080:80 --name openproject \
  -e OPENPROJECT_HOST__NAME=172.16.20.224:8080 \
  -e OPENPROJECT_SECRET_KEY_BASE=secret \
  -e OPENPROJECT_HTTPS=false \
  -e OPENPROJECT_DEFAULT__LANGUAGE=zh-CN \
  -v /var/lib/openproject/pgdata:/var/openproject/pgdata \
  -v /var/lib/openproject/assets:/var/openproject/assets \
  openproject/openproject:14

[root@hdt-dmcp-openproject bin]# chmod +x project_run.sh 

注意:

  1. 8080:80 ,容易服务端口为80,映射到服务器的端口为8080,可自定义把8080改为自己想要的端口,但80不能改
  2. OPENPROJECT_HOST__NAME=172.16.20.224:8080,这里的IP需要改为自己的IP地址,且端口映射和-p 参数的同步
  3. OPENPROJECT_HTTPS=false,表示禁用ssl,https协议,这个可根据自己环境选择
  4. openproject/openproject:14,为version14,最新版已经更新到15,也可以自己下载15的镜像,这里标签改为15即可
  • 启动服务
[root@hdt-dmcp-openproject bin]# bash project_run.sh
  • 查看运行情况
[root@hdt-dmcp-openproject bin]# docker ps
CONTAINER ID   IMAGE                        COMMAND                  CREATED        STATUS        PORTS                  NAMES
47c08f6d693f   openproject/openproject:14   "./docker/prod/entry…"   23 hours ago   Up 23 hours   0.0.0.0:8080->80/tcp   openproject
  • 访问登录

第一次登录时默认的账号为admin,密码为admin

3. Project界面使用

  • 创建项目

  • 工作包(任务)管理
    • 在项目中,你可以创建工作包来管理任务。工作包可以是任务、里程碑、阶段等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/919522.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

标题gitLab如何打标签

标题gitLab打标签 1、首先进入到项目里面&#xff0c;找到Repository下的Tages&#xff0c;点击进入 如果是还没有创建过标签&#xff0c;会提示如何用命令创建 git tag -a v1.4 -m "version 1.4"2、也可以直接在界面创建&#xff0c;点击new Tag按钮 3、填写标签…

在centos7中安装SqlDeveloper的Oracle可视化工具

1.下载安装包 &#xff08;1&#xff09;在SqlDeveloper官网下载&#xff08;Oracle SQL Developer Release 19.2 - Get Started&#xff09;对应版本的安装包即可&#xff08;安装包和安装命令如下&#xff09;&#xff1a; &#xff08;2&#xff09;执行完上述命令后&#x…

【D3.js in Action 3 精译_040】4.4 D3 弧形图的绘制方法

当前内容所在位置&#xff1a; 第四章 直线、曲线与弧线的绘制 ✔️ 4.1 坐标轴的创建&#xff08;上篇&#xff09; 4.1.1 D3 中的边距约定&#xff08;中篇&#xff09;4.1.2 坐标轴的生成&#xff08;中篇&#xff09; 4.1.2.1 比例尺的声明&#xff08;中篇&#xff09;4.1…

Flink监控checkpoint

Flink的web界面提供了一个选项卡来监控作业的检查点。这些统计信息在任务终止后也可用。有四个选项卡可以显示关于检查点的信息:概述(Overview)、历史(History)、摘要(Summary)和配置(Configuration)。下面依次来看这几个选项。 Overview Tab Overview选项卡列出了以…

跨平台WPF框架Avalonia教程 十五

ListBox 列表框 列表框从元素源集合中显示多行元素&#xff0c;并允许选择单个或多个。 列表中的元素可以组合、绑定和模板化。 列表的高度会扩展以适应所有元素&#xff0c;除非特别设置&#xff08;使用高度属性&#xff09;&#xff0c;或由容器控件设置&#xff0c;例如…

【Redis】Redis实现的消息队列

一、用list实现【这是数据类型所以支持持久化】 消息基于redis存储不会因为受jvm内存上限的限制&#xff0c;支持消息的有序性&#xff0c;基于redis的持久化机制&#xff0c;只支持单一消费者订阅&#xff0c;无法避免消息丢失。 二、用PubSub【这不是数据类型&#xff0c;是…

从0-1训练自己的数据集实现火焰检测

随着工业、建筑、交通等领域的快速发展,火灾作为一种常见的灾难性事件,对生命财产安全造成了严重威胁。为了提高火灾的预警能力,减少火灾损失,火焰检测技术应运而生,成为火灾监控和预防的有效手段之一。 传统的火灾检测方法,如烟雾探测器、温度传感器等,存在响应时间慢…

【vmware+ubuntu16.04】ROS学习_博物馆仿真克隆ROS-Academy-for-Beginners软件包处理依赖报错问题

首先安装git 进入终端&#xff0c;输入sudo apt-get install git 安装后&#xff0c;创建一个工作空间名为tutorial_ws&#xff0c; 输入 mkdir tutorial_ws#创建工作空间 cd tutorial_ws#进入 mkdir src cd src git clone https://github.com/DroidAITech/ROS-Academy-for-Be…

13. Linux上CUDA的安装

这个专栏记录我学习/科研过程中遇到的一些小问题以及解决方案&#xff0c;一些问题可能比较蠢请见谅。自用&#xff0c;仅供参考。 ------------------------------------------------------------------------------------ Linux上CUDA的安装 在安装之前&#xff0c;首先要确…

ThinkPHP6门面(Facade)

门面 门面&#xff08;Facade&#xff09; 门面为容器中的&#xff08;动态&#xff09;类提供了一个静态调用接口&#xff0c;相比于传统的静态方法调用&#xff0c; 带来了更好的可测试性和扩展性&#xff0c;你可以为任何的非静态类库定义一个facade类。 系统已经为大部分…

(计算机毕设)基于SpringBoot+Vue的房屋租赁系统的设计与实现

博主可接毕设设计&#xff01;&#xff01;&#xff01; 各种毕业设计源码只要是你有的题目我这里都有源码 摘 要 社会的发展和科学技术的进步&#xff0c;互联网技术越来越受欢迎。网络计算机的生活方式逐渐受到广大人民群众的喜爱&#xff0c;也逐渐进入了每个用户的使用。互…

[Admin] Dashboard Filter for Mix Report Types

Background RevOps team has built a dashboard for sales team to track team members’ performance, but they’re blocked by how to provide a manager view based on sales’ hierarchy. Therefore, they seek for dev team’s help to clear their blocker. From foll…

游戏引擎学习第19天

介绍 这段内容描述了开发者在进行游戏开发时&#xff0c;对于音频同步和平台层的理解和调整的过程。以下是更详细的复述&#xff1a; 开发者表达了他希望今天继续进行的工作内容。他提到&#xff0c;昨天他讲解了一些关于音频的内容&#xff0c;今天他想稍微深入讲解一下他正…

高阶云服务-ELB+AS

ELBAS 弹性负载均衡弹性伸缩 原来1台web服务器不满足相应&#xff0c;现部署多台提供相同服务&#xff1b; 由于多个服务器多个ip该如何提供给应用呢&#xff1f; 引申出负载均衡&#xff08;HAProxy&#xff0c;LVS01四层&#xff0c;Nginx七层&#xff09; 防单点故障做主备…

STM32设计防丢防摔智能行李箱-分享

目录 目录 前言 一、本设计主要实现哪些很“开门”功能&#xff1f; 二、电路设计原理图 1.电路图采用Altium Designer进行设计&#xff1a; 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 随着科技的不断发展&#xff0c;嵌入式系统、物联网技术、智能设备…

Mysql中REPLACE INTO详解及和INSERT INTO的区别

前言 我们在进行数据库操作的时候&#xff0c;经常会遇到这样的场景&#xff1a; 首先判断数据是否存在&#xff1b;如果不存在&#xff0c;则插入&#xff1b;如果存在&#xff0c;则更新。 博主之前是是Java来进行逻辑判断&#xff0c;例如&#xff1a; 看起来似乎也很简洁…

基于Java Springboot发艺美发店管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…

element ui 走马灯一页展示多个数据实现

element ui 走马灯一页展示多个数据实现 element ui 走马灯一页展示多个数据实现 element ui 走马灯一页展示多个数据实现 主要是对走马灯的数据的操作&#xff0c;先看js处理 let list [{ i: 1, name: 1 },{ i: 2, name: 2 },{ i: 3, name: 3 },{ i: 4, name: 4 },]let newL…

ACM招新赛<赛后题解与反思总结>③

问题 A: 数数(Easy) 题目描述 某一天&#xff0c;工作室需要统计人数&#xff0c;现在小劉开始数人数&#xff0c;但是由于小劉数学极差&#xff0c;因此他数数的时候总是会忘记数数字8&#xff0c;也就是说他数完7以后&#xff0c;就会直接数数字9&#xff0c;直观的讲就是数字…

网络安全:我们的安全防线

在数字化时代&#xff0c;网络安全已成为国家安全、经济发展和社会稳定的重要组成部分。网络安全不仅仅是技术问题&#xff0c;更是一个涉及政治、经济、文化、社会等多个层面的综合性问题。从宏观到微观&#xff0c;网络安全的重要性不言而喻。 宏观层面&#xff1a;国家安全与…