开源项目管理工具Plane

这篇具有很好参考价值的文章主要介绍了开源项目管理工具Plane。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

开源项目管理工具Plane,群晖,docker,项目管理

本文软件由网友 不长到一百四誓不改名 推荐,不过这次是在他推荐之前,就已经完成了的 🙂

什么是 Plane ?

Plane 是一个简单的、可扩展的、开源的项目和产品管理工具。它允许用户从一个基本的任务跟踪工具开始,逐步采用各种项目管理框架,如 AgileWaterfall 等。

命令行安装

在群晖上以 Docker 方式安装。

老苏折腾时,latest 对应 0.7

新建安装目录

# 新建文件夹 plane 和 子目录
mkdir -p /volume1/docker/plane/{pgdata,redisdata,uploads}

# 进入 plane 目录
cd /volume1/docker/plane

env.txt

官方的提供了 .env.example 文件,地址在:https://github.com/makeplane/plane/blob/develop/.env.example,你可以在本地复制粘贴生成后,上传到 plane 目录,也可以直接用下面的命令下载

# 下载 env.txt
wget -O env.txt https://raw.githubusercontent.com/makeplane/plane/develop/.env.example

# 下不动的话可以加个代理
wget -O env.txt https://ghproxy.com/raw.githubusercontent.com/makeplane/plane/develop/.env.example

虽然参数很多,但是要跑起来,需要修改的并不多,原本的内容老苏只填了 email 部分,因为要通过邮件邀请团队成员

# Email Settings
EMAIL_HOST=smtp.88.com
EMAIL_HOST_USER=wbsu2003@88.com
EMAIL_HOST_PASSWORD=<第三方邮件客户端密码>
EMAIL_PORT=25
EMAIL_FROM="laosu <wbsu2003@88.com>"

其他的部分未做修改,但是要跑起来,还需要在文件的最后面加上 3 行内容

# Auto generated and Required that will be generated from setup.sh
NEXT_PUBLIC_API_BASE_URL=https://plane.laosu.ml:444
WEB_URL=https://plane.laosu.ml:444
SECRET_KEY=IVBfieeGdbKOIXC1a+Pqb989ju41Swyv6sxNUZLv6ZA=
  • SECRET_KEY:可以用命令 openssl rand -base64 32 来生成;

开源项目管理工具Plane,群晖,docker,项目管理

  • NEXT_PUBLIC_API_BASE_URL:后端 API 的地址;
  • WEB_URL:前端网页地址;

以上两个地址,老苏曾经尝试过用局域网 IP + 端口,但在登录时会显示 404 错误,实际地址变成了 http://192.168.0.197:3639/api/api/users/me/, 显然应该是多了一层 api,不确定是不是 bug,用域名或者干脆留空的话,是可以正常登录的

# Default Creds
DEFAULT_EMAIL="captain@plane.so"
DEFAULT_PASSWORD="password123"

设置的是缺省的用户和密码,你可以改出你自己的

nginx.conf

将下面的内容保存为 nginx.conf

upstream plane {
    server plane-nginx:80;
}

error_log /var/log/nginx/error.log;

server {
    listen       80;
    root   /www/data/;
    access_log /var/log/nginx/access.log;
    location / {
        proxy_pass http://plane-web:3000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location /api/ {
        proxy_pass http://plane-api:8000/api/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location /uploads/ {
        proxy_pass http://plane-minio:9000/uploads/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

docker-compose.yml

官方的示例:https://github.com/makeplane/plane/blob/develop/docker-compose-hub.yml

你可以下载下来自己修改

# 下载 docker-compose.yml
wget -O docker-compose.yml https://raw.githubusercontent.com/makeplane/plane/develop/docker-compose-hub.yml

# 下不动的话可以加个代理
wget -O docker-compose.yml https://ghproxy.com/raw.githubusercontent.com/makeplane/plane/develop/docker-compose-hub.yml

也可以直接将下面老苏修改后的内容保存为 docker-compose.yml 文件

version: "3.8"

services:
  plane-web:
    container_name: plane-frontend
    image: makeplane/plane-frontend:latest
    restart: always
    command: /usr/local/bin/start.sh
    environment:
      NEXT_PUBLIC_API_BASE_URL: ${NEXT_PUBLIC_API_BASE_URL}
      NEXT_PUBLIC_GOOGLE_CLIENTID: 0
      NEXT_PUBLIC_GITHUB_APP_NAME: 0
      NEXT_PUBLIC_GITHUB_ID: 0
      NEXT_PUBLIC_SENTRY_DSN: 0
      NEXT_PUBLIC_ENABLE_OAUTH: 0
      NEXT_PUBLIC_ENABLE_SENTRY: 0
    #ports:
    #  - 3636:3000

  plane-api:
    container_name: plane-backend
    image: makeplane/plane-backend:latest
    restart: always
    command: ./bin/takeoff
    environment:
      DJANGO_SETTINGS_MODULE: plane.settings.production
      DATABASE_URL: postgres://${PGUSER}:${PGPASSWORD}@${PGHOST}:5432/${PGDATABASE}
      REDIS_URL: redis://plane-redis:6379/
      EMAIL_HOST: ${EMAIL_HOST}
      EMAIL_HOST_USER: ${EMAIL_HOST_USER}
      EMAIL_HOST_PASSWORD: ${EMAIL_HOST_PASSWORD}
      EMAIL_PORT: ${EMAIL_PORT}
      EMAIL_FROM: ${EMAIL_FROM}
      AWS_REGION: ${AWS_REGION}
      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
      AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME}
      FILE_SIZE_LIMIT: ${FILE_SIZE_LIMIT}
      WEB_URL: ${WEB_URL}
      GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET}
      DISABLE_COLLECTSTATIC: 1
      DOCKERIZED: 1
      OPENAI_API_KEY: ${OPENAI_API_KEY}
      GPT_ENGINE: ${GPT_ENGINE}
      SECRET_KEY: ${SECRET_KEY}
      DEFAULT_EMAIL: ${DEFAULT_EMAIL}
      DEFAULT_PASSWORD: ${DEFAULT_PASSWORD}
      USE_MINIO: 1
    depends_on:
      - plane-db
      - plane-redis
    #ports:
    #  - 3637:8000

  plane-worker:
    container_name: plane-worker
    image: makeplane/plane-worker:latest
    restart: always
    command: ./bin/worker
    environment:
      DJANGO_SETTINGS_MODULE: plane.settings.production
      DATABASE_URL: postgres://${PGUSER}:${PGPASSWORD}@${PGHOST}:5432/${PGDATABASE}
      REDIS_URL: redis://plane-redis:6379/
      EMAIL_HOST: ${EMAIL_HOST}
      EMAIL_HOST_USER: ${EMAIL_HOST_USER}
      EMAIL_HOST_PASSWORD: ${EMAIL_HOST_PASSWORD}
      EMAIL_PORT: ${EMAIL_PORT}
      EMAIL_FROM: ${EMAIL_FROM}
      AWS_REGION: ${AWS_REGION}
      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
      AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME}
      FILE_SIZE_LIMIT: ${FILE_SIZE_LIMIT}
      WEB_URL: ${WEB_URL}
      GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET}
      DISABLE_COLLECTSTATIC: 1
      DOCKERIZED: 1
      OPENAI_API_KEY: ${OPENAI_API_KEY}
      GPT_ENGINE: ${GPT_ENGINE}
      SECRET_KEY: ${SECRET_KEY}
      DEFAULT_EMAIL: ${DEFAULT_EMAIL}
      DEFAULT_PASSWORD: ${DEFAULT_PASSWORD}
      USE_MINIO: 1
    depends_on:
      - plane-api
      - plane-db
      - plane-redis

  plane-db:
    container_name: plane-db
    image: postgres:14
    restart: always
    command: postgres -c 'max_connections=1000'
    environment:
      POSTGRES_USER: ${PGUSER}
      POSTGRES_DB: ${PGDATABASE}
      POSTGRES_PASSWORD: ${PGPASSWORD}
    volumes:
      - ./pgdata:/var/lib/postgresql/data

  plane-redis:
    container_name: plane-redis
    image: redis:6.2
    restart: always
    volumes:
      - ./redisdata:/data

  plane-minio:
    container_name: plane-minio
    image: minio/minio
    volumes:
      - ./uploads:/export
    environment:
      MINIO_ROOT_USER: ${AWS_ACCESS_KEY_ID}
      MINIO_ROOT_PASSWORD: ${AWS_SECRET_ACCESS_KEY}
    command: server /export --console-address ":9090"
    #ports:
    #  - 3638:9000

  createbuckets:
    image: minio/mc
    depends_on:
      - plane-minio
    entrypoint: >
      /bin/sh -c " /usr/bin/mc config host add plane-minio http://plane-minio:9000 \$AWS_ACCESS_KEY_ID \$AWS_SECRET_ACCESS_KEY; /usr/bin/mc mb plane-minio/\$AWS_S3_BUCKET_NAME; /usr/bin/mc anonymous set download plane-minio/\$AWS_S3_BUCKET_NAME; exit 0; "

  plane-nginx:
    container_name: plane-nginx
    image: nginx
    ports:  
      - 3639:80
    volumes:  
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
    depends_on:
      - plane-web
      - plane-api

然后执行下面的命令

# 新建文件夹 plane 和 子目录
mkdir -p /volume1/docker/plane/{pgdata,redisdata,uploads}

# 进入 plane 目录
cd /volume1/docker/plane

# 将 docker-compose.yml、env.txt、nginx.conf 放入当前目录

# 一键运行  
docker-compose --env-file env.txt up -d

开源项目管理工具Plane,群晖,docker,项目管理

如果没意外的话,除了 plane_createbuckets_1 外,另外 7 个容器应该都是正常启动的

开源项目管理工具Plane,群晖,docker,项目管理

老苏将用到的 env.txtconfig.conf docker-compose.yml 文件放到了 https://github.com/wbsu2003/synology/tree/main/Plane,方便大家对比着看

运行

在浏览器中输入 https://plane.laosu.ml:444 就能看到登录界面

开源项目管理工具Plane,群晖,docker,项目管理

默认用户:captain@plane.so,密码为:password123

需要设置角色

开源项目管理工具Plane,群晖,docker,项目管理

创建工作区

开源项目管理工具Plane,群晖,docker,项目管理

邀请成员

输入要邀请的人员

开源项目管理工具Plane,群晖,docker,项目管理

可以一次输入多个邮件地址

开源项目管理工具Plane,群晖,docker,项目管理

接下来的提示界面看看就可以了

开源项目管理工具Plane,群晖,docker,项目管理

完成后就可以看到 Dashboard 界面了

开源项目管理工具Plane,群晖,docker,项目管理

团队成员

如果邮件设置没问题,受邀请的成员很快会收到邮件

开源项目管理工具Plane,群晖,docker,项目管理

开源项目管理工具Plane,群晖,docker,项目管理

但是实际上地址存在问题,获取的地址是 http:///workspace-member-invitation/1a927b8e-ed1b-4f16-8383-07eee3cf1392?email=wbsu2003@hotmail.com

需要自行添加域名后变成 https://plane.laosu.ml:444/workspace-member-invitation/1a927b8e-ed1b-4f16-8383-07eee3cf1392?email=wbsu2003@hotmail.com

可以选择接受或者忽略

开源项目管理工具Plane,群晖,docker,项目管理

尚未接受邀请的成员会有 Pending 标志

开源项目管理工具Plane,群晖,docker,项目管理

接下来就可以开始建项目( Create Project),功能就留给需要的人自己摸索吧

开源项目管理工具Plane,群晖,docker,项目管理

遗留问题

  1. 就是上面提到的邮件的邀请链接问题;
  2. 上传图片没解决;

不知道是设置问题还是软件本身的 bug

参考文档

makeplane/plane: Plane helps you track your issues, epics, and product roadmaps in the simplest way possible.
地址:https://github.com/makeplane/plane

Plane - The open source project management tool
地址:https://plane.so/

Plane Documentation
地址:https://docs.plane.so/

Plane - Open-source project planning tool to streamline issues, sprints, and product roadmaps. (W.I.P., Linear/JIRA Alternative) - New release update v0.2-dev 🚀 🍰 : selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/10q7h1z/plane_opensource_project_planning_tool_to/文章来源地址https://www.toymoban.com/news/detail-530701.html

到了这里,关于开源项目管理工具Plane的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Docker项目实战】使用Docker部署nullboard任务管理工具

    nullboard简介 Nullboard 是对看板/任务列表管理器的极简主义演绎,旨在紧凑、可读且使用快速。 任务看板工具是一种项目管理工具,用于帮助团队组织和跟踪任务的进度。它通常以可视化的方式呈现任务列表,使团队成员可以清楚地了解项目中的任务、优先级以及任务的状态。

    2024年01月17日
    浏览(44)
  • 开源项目-私人牙医管理系统

    哈喽,大家好,今天给大家带来一个开源项目-私人牙医管理系统,项目使用springboot+mysql技术实现 私人牙医管理系统的主要功能包括客户管理,医生管理,药品管理,文章管理模块 客户管理主要有客户数据,客户列表,添加客户功能  客户数据     客户列表     添加客户

    2024年02月14日
    浏览(58)
  • 【开源项目】ELADMIN 后台管理系统

    一个基于 Spring Boot 2.1.0 、 Spring Boot Jpa、 JWT、Spring Security、Redis、Vue的前后端分离的后台管理系统 开发文档:  https://eladmin.vip 体验地址:  ELADMIN 账号密码:   admin / 123456 后端源码 前端源码 github GitHub - elunez/eladmin: 项目基于 Spring Boot 2.1.0 、 Jpa、 Spring Security、redis、Vue的前

    2024年02月07日
    浏览(67)
  • 开源项目-会议室预约管理系统

    哈喽,大家好,今天给大家带来一个开源项目-会议室管理系统。项目基于SpringBoot+VUE开发。 会议室管理系统主要分为 前台会议室预约管理系统 和 会议室后台管理系统 两部分 前台会议室预约管理系统主要有申请会议室,预约进程,查看历史会议三部分 后台管理系统主要有会

    2024年02月11日
    浏览(50)
  • 开源项目的版本管理:Git的最佳实践

    🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言

    2024年02月05日
    浏览(47)
  • 开源项目-erp企业资源管理系统(毕设)

    哈喽,大家好,今天给大家带来一个开源项目-erp企业资源管理系统,项目通过ssh+oracle技术实现。 系统主要有基础数据,人事管理,采购管理,销售管理,库存管理,权限管理模块 基础数据有商品类型,商品,供应商,客户,仓库管理功能    

    2024年02月15日
    浏览(60)
  • 开源项目 | 可二次开发的开源后台、支持支付系统通用的支付、对账、清算、账户管理、支付订单管理等功能

    在RuoYi项目基础上改造,通过多模块的方式整合其他经常被用到的功能模块,特别感谢RuoYi。基于SpringBoot2.0的开发的系统 易读易懂、界面简洁美观。具备支付系统通用的支付、对账、清算、账户管理、支付订单管理等功能;目前已接通微信支付渠道,应用微信公众号商城 在此

    2024年01月21日
    浏览(68)
  • 基于JAVA的教学过程管理系统 开源项目

    基于JAVA+Vue+SpringBoot+MySQL的教学过程管理系统,包含了课程档案、课程题目、课程成绩、消息通知、课堂签到、课堂任务模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,教学过程管理系统基于角

    2024年02月03日
    浏览(51)
  • 基于JAVA的民宿预定管理系统 开源项目

    基于JAVA+Vue+SpringBoot+MySQL的民宿预定管理系统,包含了民宿档案模块、民宿订单模块、民宿评价模块、民宿留言模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,民宿预定管理系统基于角色的访问

    2024年01月23日
    浏览(78)
  • Maven —— 项目管理工具

            在这篇文章中,荔枝会介绍如何在项目工程中借助Maven的力量来开发,主要涉及Maven的下载安装、环境变量的配置、IDEA中的Maven的路径配置和信息修改以及通过Maven来快速构建项目。希望能对需要配置的小伙伴们有帮助哈哈哈哈~~~ 前言 一、初识Maven 1.1 Maven作用:

    2024年02月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包