看板工具在团队协作,项目管理中发挥着很大非常大的作用。对于个人而言,看板工具也可作为任务管理甚至当做todo-list来使用。本着不折腾会死的精神,我们来找找有什么好用的看板工具……
要求
作为一个爱折腾的程序猿,我们肯定不能走寻常路,所以:必须是支持 self-host(自托管)的开源项目,不能部署在自己服务器怎么显现出我们的极客精神;
最好是自己熟悉的开发语言(php,python,golang等),出了bug可以第一时间自己搞定;
好用性、易用性、诸如此类等等等;
对比
基于上面的要求,我们寻找到了3个看起来还不错的看板工具:restyaboard,wekan,kanboard。现在我们来分别试用一下。
Restyaboard
官网的介绍瞬间让人觉得高大上,看了 feature 也觉得很不错,于是首选来尝试一下。
安装
官方提供了安装脚本 restyaboard.sh,具有强迫症的程序猿是不会在不知所以然的情况下让人随便在服务器上胡乱安装软件修改配置的,所以我们有必要研究一下这个脚本干了啥:POSTGRES_DBxxx 需要依赖 postgres;
get_geoip_data() 安装配置了 php-geoip 模块;
update_version() 检查是首次安装还是更新版本;
add-apt-repository ppa:ondrej/php 偷偷添加了一个php的ppa,大概是要安装新版本的php;
然后就是安装各种php、php-fpm、php module,nginx等;
整个脚本研究下来,暂时也没发现什么大问题,除了需要 postgres、php版本变更,所以就跟着脚本开始安装,一切倒也很顺利。
坑货
安装进行到最后一步是安装restyaboard的各种插件,然后开始报错了。从脚本中找到安装方法:
ZSH
curl -v -L -G -o /tmp/apps.json https://raw.githubusercontent.com/RestyaPlatform/board-apps/master/apps.json
chmod -R go+w "/tmp/apps.json"
for fid in `jq -r '.[] | .id + "-v" + .version' /tmp/apps.json`
do
mkdir "$dir/client/apps"
chmod -R go+w "$dir/client/apps"
curl -v -L -G -o /tmp/$fid.zip https://github.com/RestyaPlatform/board-apps/releases/download/v1/$fid.zip
unzip /tmp/$fid.zip -d "$dir/client/apps"
done
1
2
3
4
5
6
7
8
9curl-v-L-G-o/tmp/apps.jsonhttps://raw.githubusercontent.com/RestyaPlatform/board-apps/master/apps.json
chmod-Rgo+w"/tmp/apps.json"
forfidin`jq-r'.[] | .id + "-v" + .version'/tmp/apps.json`
do
mkdir"$dir/client/apps"
chmod-Rgo+w"$dir/client/apps"
curl-v-L-G-o/tmp/$fid.ziphttps://github.com/RestyaPlatform/board-apps/releases/download/v1/$fid.zip
unzip/tmp/$fid.zip-d"$dir/client/apps"
done
看样子是从 github 下载插件就可以了,天真的我以为手动操作就行了。结果到 github 一看,就只有3个没用的插件;再到官网查找插件的安装,结果每一个插件都是付费的!!!
心中万千只?奔腾而过……只好回滚安装,手动把所有变更一一改回去。
Wekan
官网,据说与 Trello 的界面最为接近,看起来界面也挺友好的,于是觉得也来尝试一下。
安装
官方提供多种安装方式,为了便于偷懒,我们采用了最简单的docker 方式安装。
很容易安装完成后,使用的时候却发现总是报错,无法正常创建任务;同时,Wekan暂时不支持 LDAP登陆,在 issue 中可以看到。
故放弃;
Kanboard
官网,界面给人的第一印象比较普通,不过官方介绍中功能却是比较强大。
安装
Kanboard 采使用 PHP 开发,数据库使用 SQLite,所以在服务器上安装部署十分简单。具体安装方法可以查看官方文档,大致步骤如下:服务器运行 PHP;
下载解压 kanboard.zip 源码到 web 根目录;
配置Nginx;
当然,如果为了便于以后更新版本,我们也可以直接从 github 安装,采用 composer。
LDAP
为了支持 LDAP 登陆,我们需要稍微修改一下配置文件config.php :
config.php
PHP
// 开启调试模式
define('DEBUG', true);
// 将日志打印到文件,其它可选项:syslog, stderr, stdout, file
define('LOG_DRIVER', 'file');
// 日志存放文件
define('LOG_FILE', DATA_DIR.DIRECTORY_SEPARATOR.'debug.log');
// 开启LDAP登陆支持,默认关闭
define('LDAP_AUTH', true);
define('LDAP_SERVER', 'ldap://127.0.0.1');
define('LDAP_PORT', 389);
define('LDAP_SSL_VERIFY', false);
define('LDAP_START_TLS', false);
define('LDAP_BIND_TYPE', 'proxy');
define('LDAP_USERNAME', 'your_bind_dn');
define('LDAP_PASSWORD', 'your_bidn_dn_pasword');
define('LDAP_USER_BASE_DN', 'ou=users,dc=chenjiehua,dc=me');
define('LDAP_USER_FILTER', 'uid=%s');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20// 开启调试模式
define('DEBUG',true);
// 将日志打印到文件,其它可选项:syslog, stderr, stdout, file
define('LOG_DRIVER','file');
// 日志存放文件
define('LOG_FILE',DATA_DIR.DIRECTORY_SEPARATOR.'debug.log');
// 开启LDAP登陆支持,默认关闭
define('LDAP_AUTH',true);
define('LDAP_SERVER','ldap://127.0.0.1');
define('LDAP_PORT',389);
define('LDAP_SSL_VERIFY',false);
define('LDAP_START_TLS',false);
define('LDAP_BIND_TYPE','proxy');
define('LDAP_USERNAME','your_bind_dn');
define('LDAP_PASSWORD','your_bidn_dn_pasword');
define('LDAP_USER_BASE_DN','ou=users,dc=chenjiehua,dc=me');
define('LDAP_USER_FILTER','uid=%s');
搞定,使用一切正常。如果你在安装、使用过程中遇到异常,也可以通过 debug log 进行排查。
总结
对比尝试了这三个开源的看板工具,最后发现 Kanboard 最值得推荐。虽然界面没有特别酷炫,但是功能各方面都十分完整,也可以作为个人的 任务管理 或者 TODO-List 使用。