Self-hosted project tool plane manages your own TodoList

Original link: https://justin3go.com/%E5%8D%9A%E5%AE%A2/2023/09/29%E8%87%AA%E6%89%98%E7%AE%A1%E9% A1%B9%E7%9B%AE%E5%B7%A5%E5%85%B7plane%E7%AE%A1%E7%90%86%E8%87%AA%E5%B7%B1%E7%9A% 84TodoList.html

Self-hosted project tool plane manages your own TodoList & ZeroWidthSpace;

Preface ​

I discovered the plane project management tool some time ago, which is known as the open source alternative to jira. Then I took a look and found that the backend of this project was actually using the Django framework. I instantly became interested in the plane warehouse, so I started playing with it a little bit. , I have deployed this plane tool as my own project management tool and TodoList management tool.

Basic deployment ​

First of all, the things in the project are very important, and some of them are relatively private, so https is essential for the author.

Thanks to the advantages of docker, deployment is very simple. Basically, you can follow the self-hosting tutorial in the official document . However, the first step is to directly clone the entire warehouse because I still want to learn it. If you just want to deploy, If you don’t want to worry about the code, you can clone according to the parameters in the official document. The author’s command is as follows:

shell

 git clone [email protected]:makeplane/plane.git

Then run the setup.sh file in it. Since the author is using https, the command is as follows:

shell

 ./setup.sh https://plane.justin3go.com

Then enter according to the prompts…

Finally, configure the environment variables in the root directory, such as:

  1. If you need to send emails, remember to configure your email address
  2. It is best to change the pg account password.
  3. ENABLE_SIGNUP is set by the author 0 , and registration is not allowed because it is for personal use.
  4. Anyway, you can configure it according to your own situation. The default configuration is also fine. If you are not satisfied, you can just change it.

Then run the following command

 docker compose -f docker-compose-hub.yml up

https->nginx related configuration ​

It is very worth noting that NGINX_PORT needs to be set to another port, because the author is deploying two nginx on the same machine, and one nginx is used as a proxy forwarding for https. For example, the author sets it to NGINX_PORT=8888 . At this time, the project structure for this:

Here again, I still use https_nginx installed with docker and operate in the /root/work/nginx directory:

The directory structure is:

 nginx ├─ cert │ ├─ plane.justin3go.com.key │ └─ plane.justin3go.com.pem ├─ conf.d │ └─ default.conf ├─ docker-compose.yml ├─ dockerReset.sh └─ logs ├─ access.log └─ error.log

I won’t go into details about the files under cert, they are the relevant certificate files that I downloaded from SSL.

The conf.d file is as follows, and the following operations have been performed:

  1. Listen to port 443, set up ssl, and forward the proxy to port 8888
  2. Listen on 80 and redirect to 443

 server { listen 443 ssl http2; server_tokens off; # 修改为自己的域名 server_name plane.justin3go.com; # ssl证书存放位置 ssl_certificate /etc/nginx/cert/plane.justin3go.com.pem; ssl_certificate_key /etc/nginx/cert/plane.justin3go.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; root /www/data/; access_log /var/log/nginx/access.log; client_max_body_size 4M; location / { proxy_pass http://plane.justin3go.com:8888/; } } server { listen 80; root /www/data/; #请填写绑定证书的域名 server_name plane.justin3go.com; #把http的域名请求转成https return 301 https://plane.justin3go.com$request_uri; }

The docker-compose.yml file is as follows:

yaml

 version : ' 3.8 ' services :  nginx :    image : nginx:stable-alpine      # 指定服务镜像    container_name : nginx_https    # 容器名称    restart : always                 # 重启方式    ports :                          # 映射端口      - " 80:80 "      - " 443:443 "    volumes :                        # 挂载数据卷      - /etc/localtime:/etc/localtime      - /root/work/nginx/conf.d:/etc/nginx/conf.d      - /root/work/nginx/logs:/var/log/nginx      - /root/work/nginx/cert:/etc/nginx/cert

dockerReset.sh is a very simple docker command script file, depending on your situation whether you need it:

shell

 # 关闭容器docker-compose stop || true ; # 删除容器docker-compose down || true ; # 对空间进行自动清理docker system prune -a -f docker compose up -d # 查看日志# docker logs plane-proxy;

The author will also upload all the above nginx-https configurations to this warehouse for easy use, if you need it.

Finally, just run the following command:

shell

 sudo chmod +x ./dockerReset.sh # run shell script ./dockerReset.sh

Note: You need to run the plane docker image first, and then run the nginx-https docker image here. Because there will be a command on the plane side to delete the default.conf file, the order cannot be exchanged.

Deployment Talk ​

In fact, you can also directly change the docker-compose-hub.yml file in the plane project, change the proxy part to the proxy part in docker-compose.yml and modify it to the above https configuration, which is what I first deployed. The method adopted at that time, but because the source code of the plane project was changed, it was not very elegant, so an nginx agent was added for decoupling.

Basic introduction to plane ​

You can see the core concepts of plane in this link . I won’t introduce them in detail here. They are basically the concepts that everyone is exposed to, and the documentation is also very clear.

As its own TodoList ​

Everyone should be familiar with using plane as a project management tool, but here I use it as a personal TodoList management tool. The basic idea is as follows:

Each year’s plan is a project, for example, there will be a personal plan for 2024 in a few months:

Use labels to distinguish different categories in planning:

views to filter views:

Of course, I am still exploring ways to combine more functions with todolist, such as using cycle as my day plan. The iusse view also has Gantt charts, calendar charts and other display methods, which are also very convenient:

As well as statistical charts such as display boards, you should have some ideas after one year:

Finally ​

Managing projects is actually similar to managing yourself. I hope to find a reasonable way to use this Plane tool;

It is worth mentioning that there are still many bugs in plane, such as the project background image cannot be modified, the website icon is not displayed, etc. This is also found in iusse. I hope it will get better. Of course, if you have the energy, you can also try it. Contribute code.

This article is reproduced from: https://justin3go.com/%E5%8D%9A%E5%AE%A2/2023/09/29%E8%87%AA%E6%89%98%E7%AE%A1%E9% A1%B9%E7%9B%AE%E5%B7%A5%E5%85%B7plane%E7%AE%A1%E7%90%86%E8%87%AA%E5%B7%B1%E7%9A% 84TodoList.html
This site is for inclusion only, and the copyright belongs to the original author.