开源看板应用:WeKan安装使用

简介

Wekan 是一个完全开源和免费的协作看板应用程序,具有MIT许可证,意味着可以免费使用和分发;无论维护个人待办事项清单,与朋友一起计划假期,还是在团队中为下一个革命性想法工作,看板都是一个无与伦比的工具,可以让事情井然有序;它们可以让您直观地了解项目的当前状态,并通过让您专注于最重要的几个项目来提高您的工作效率。

Wekan可以在自有服务器上安装,即本地化部署,支持许多操作系统平台;Wekan在世界上被很多国家的很多用户所使用,据说有13000多企业在使用Wekan;Wekan已被翻译成约50种语言,在Github上获得了上万个好评。

作为看板类工具,Trello 应该就是标杆了。而 Wekan 基本上算复刻了 Trello,除了没有 Trello 好看,功能非常丰富,部署也十分容易。

功能

  1. 高度可视化,比传统看板具有更丰富的展现能力(例如支持图片、视频、音频和其他附件);

  2. 比传统看板能够容纳更多的信息;

  3. 支持在线协同工作,特别适合项目人员不在同一地点办公的情况;

  4. 支持更加灵活的内容修改、任务状态更新、流程定制等功能;

  5. 支持自动化的规则,例如“进行中”的任务列表中某项任务达到一定条件就自动转移到“已完成”状态的列表中。

总的来说,看板作为项目任务管理工具,是组织项目、分享信息、展开协作的地方。

通过看板,所有与项目有关的人对正在处理和仍待完成的工作能够统一看法。 一般来说看板由看板本身、列表和卡片三个主要概念组成。看板本身可以理解成项目,列表则通常代表工作流或流程,而卡片则通常代表任务,并且任务会在这些列表之间移动直至任务完成。看板软件一般还支持日程管理和计划任务安排,使得它不仅具有信息分享功能,还可以提供真正意义上的项目进度管控的能力。

安装

支持的系统非常多安装指导

最简单的方式,应该是使用Docker部署,鉴于我的生产环境,这边以Ubuntu为例进行安装:

1. 前期准备

安装Snap:

apt install snap

2. 安装WeKan

snap install wekan
snap set wekan root-url='https://wekan.example.com'

关于 root-url示例

比如我在网站上部署可以设置为:

root-url='https://wekan.yydnas.cn'

本地运行的话可以设置为:

root-url='http://127.0.0.1'

3. 设置运行端口

snap set wekan port='3001'

4. 重启服务

systemctl restart snap.wekan.wekan

5. 安装自动升级

  • 在 02:00AM 和 04:00AM 中间运行自动升级程序:

    snap set core refresh.schedule=02:00-04:00
  • 每周日 02:00AM 和 04:00AM 中间运行自动升级程序:

    snap set core refresh.schedule=sun,02:00-04:00
  • 每月最后一周的周日 02:00AM 和 04:00AM 中间运行自动升级程序:

    snap set core refresh.schedule=sun5,02:00-04:00

如果需要禁用自动更新,修改 /etc/hosts ,在其中添加:

127.0.0.1 api.snapcraft.io

6. 邮件设置

sudo snap set wekan mail-url='smtps://user:pass@mailserver.example.com:453'
sudo snap set wekan mail-from='Wekan Boards <support@example.com>'

Troubleshooting Mail

7. 其他设置

其他也支持 LDAPMatomo 还有 Rocket.Chat

配置Nginx

官方给了Nginx的主程序配置以及网站配置,根据自己情况进行修改:

主程序配置: /etc/nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

        ## Max attachment size that can be uploaded to Wekan:
        client_max_body_size 100M;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    types_hash_max_size 2048;
    server_tokens off;
        set_real_ip_from 0.0.0.0/32; # All addresses get a real IP.
        real_ip_header X-Forwarded-For;
        limit_conn_zone $binary_remote_addr zone=arbeit:10m;
        client_body_timeout 60;
        client_header_timeout 60;
        keepalive_timeout 10 10;
        send_timeout 60;
        reset_timedout_connection on;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1.2 TLSv1.1 TLSv1; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:30m;
        ssl_session_timeout 1d;
        ssl_ciphers ECDH+aRSA+AESGCM:ECDH+aRSA+SHA384:ECDH+aRSA+SHA256:ECDH:EDH+CAMELLIA:EDH+aRSA:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA;
        ssl_dhparam /etc/ssl/dh_param.pem;
        ssl_ecdh_curve secp384r1;
        ssl_stapling on;
        ssl_stapling_verify on;
        add_header X-XSS-Protection '1; mode=block';
        add_header X-Frame-Options SAMEORIGIN;
        add_header Strict-Transport-Security 'max-age=31536000';
        add_header X-Content-Options nosniff;
        add_header X-Micro-Cache $upstream_cache_status;

    ##
    # Logging Settings
    ##

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

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";
        gzip_buffers 16 8k;
        gzip_comp_level 1;
        gzip_http_version 1.1;
        gzip_min_length 10;
        gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/x-icon application/vnd.ms-fontobject font/opentype application/x-font-ttf;
        gzip_vary on;
        gzip_proxied any; # Compression for all requests.

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

网站配置: /etc/nginx/sites-available/wekan.conf

# this section is needed to proxy web-socket connections
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

# HTTP
server {
    listen 80; # if this is not a default server, remove "default_server"
    listen [::]:80 ipv6only=on;

    server_name example.com;

    # redirect non-SSL to SSL
    location / {
        rewrite     ^ https://example.com$request_uri? permanent;
    }
}

# HTTPS server
server {
    listen 443 ssl http2; # we enable HTTP/2 here (previously SPDY)
    server_name example.com; # this domain must match Common Name (CN) in the SSL certificate

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    # If your application is not compatible with IE <= 10, this will redirect visitors to a page advising a browser update
    # This works because IE 11 does not present itself as MSIE anymore
    if ($http_user_agent ~ "MSIE" ) {
        return 303 https://browser-update.org/update.html;
    }

    # Pass requests to Wekan.
    # If you have Wekan at https://example.com/wekan , change location to:
    # location /wekan {
    location / {
        # proxy_pass http://127.0.0.1:3001/wekan;
        proxy_pass http://127.0.0.1:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade; # allow websockets
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header X-Forwarded-For $remote_addr; # preserve client IP

        # this setting allows the browser to cache the application in a way compatible with Meteor
        # on every applicaiton update the name of CSS and JS file is different, so they can be cache infinitely (here: 30 days)
        # the root path (/) MUST NOT be cached
        #if ($uri != '/wekan') {
        #    expires 30d;
        #}
    }
}

访问

用浏览器访问对应的网址即可。第一个注册的账号为管理员账号。

进入后台即可正常添加看板。

总结

在我使用体验下来,唯一有点觉得不舒服的地方在于:

标题无法设置日期以及一些属性,这个标题在我想来,可能是出于一个方向,或者说一个目标,然后在下面添加的卡片中,是可以增加比如日期,人员,任务的一些属性等等,表示细分的工作内容。

其他方面设置也很简单,界面比较简洁,确实不失为一个比较好的工具。

0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
滚动至顶部