Self-Hosted 待办事项: Vikunja
之前使用的是Nextcloud上面的Task和Deck。渐渐的发现NC还是一如既往的不好使。于是又开始搜刮自托管的TODO方案。Vikunja似乎可以满足需要,搞一个试一试。
用了一段时间之后的体验-2024-01-07
一个对于个人使用来讲已经算得上完备的Todo。但是对于团队项目管理还有不足。所以并不能说是project management的方案(尽管Gantt chart以及kanban都是有的)。
一个遗憾是没有offline模式。这个对于一个Todo来讲相当可惜。坐飞机的时候没有办法愉快的思考人生了(穷人没有飞机Wifi)。
另一个遗憾是不支持定期重复。这个对于个人用户来讲确实有些遗憾。
Vikunja简介
其实就是一个TODO list。但是确实包含一些相对已经比较高端了的 Project Management的功能。
个人认为,一个好的TODO list,应该包括几乎所有的Project Management的功能,但是可以在Org chart方面没那么强大。同时,应该做到兼顾最基础的功能的易用性,和当情况变复杂时,充足的扩展性。
同时,一个TODO的界面需要有一定的颜值。否则界面不好看,本来就拖延症,更不想干活了。目前来看呢,Vikunja还算是比较符合这些要求了吧。
Vikunja的优点
Vikunja默认的界面就可以很方便的添加新的Task,然后也可以把目前没有完成的Task显示出来,这方面跟一个最基本的TODO没什么区别。
同时也允许添加 "project",用来分类管理“一类“ task。相当于文件夹的概念。之所以说是“文件夹“,是因为这里不仅是 single parent的关系(其实也就是category,通常这种都只有一个父节点),而且是可以嵌套的。比如我这里就是 Home Server -> Hardware -> ZFS Mirror NVME pool。这里肯定有小伙伴说,这平时根本就用不上。但这就是我觉得很重要的一点,一个工具的扩展性还是很重要的,我可以先不用,但是当我要用的时候,你如果没有,那我就很难受了。
对于不适合“单一父节点“关系的情况,Vikunja也提供了 Label,跟tag差不多。这里的label应该就是相当于单独一个Key,并不会再附加Value了。实际使用中应该是绝对够用了。(如果是key + value,那更贴切的叫法应该是attribute,不过我总是受GCP的影响,看到Label总觉得就是个string KV pairs)
Vikunja还支持多人合作。这又是一个,普通用户觉得可以没有,但是一但发现有需要,而功能又没有,就开始觉得难受的功能。
Vikunja还支持每天发送一封Email简报,提醒你Overdue的task。这部分功能目前还没有配置,但是我觉得应该还是很有用的,之后应该会配置上。
针对一个Task,Vikunja提供了丰富的Metadata,满足各种需求。
举一些例子:
- Progress
- 这个其实会比很多人想象中的更常用。比如,有一件task,创建了之后,发现其工作量远远大于一开始的估计。这个时候怎么办?拆成小的subtask自然是可以的。可是有的时候,并不能或者不想给一个task做分解,因为太费脑子(有时相当于做一个小的design了),而只是这个工作需要多分成几天完成。这个时候用progress,就非常顺手。
- Relation
- 上面提到的subtask的概念,这自然是非常常用的。Vikunja里面自然也是支持的。
- Start Date + End Date + Due Date
- 注意,Vikunja这里并不只是把这几个attribute拿来排序/filter之类的。Vikunja居然支持甘特图!对于视觉类动物人类来说,有图,才清楚嘛。
- 至于 color, assignee, repeating。这类都是常规操作了。
Vikunja还有一些通常只在Project Management上面能看到的高级功能,比如Gantt Chart and Kanban。有时候家庭事项也是需要正经的时间管理的,支持甘特图和看板大大提高了这个TODO工具的适用范围。
Vikunja同时也支持CalDAV。虽然个人对这个协议目前不是很感冒,因为各家server对它的支持都比较参差不齐,有时候移动端桌面端使用这个协议的App,其feature set和CalDAV并不是很吻合,这个时候使用体验就相当凑合。不是不能用,但是不是这里打个折扣,就是那里缺个Feature,说不定哪天什么东西又不能用了。
Vikunja的不足
最大的不足就是缺乏移动端的支持。现在是通过PWA来做移动端,其实就相当于网页。虽然作为PWA来说,体验也很不错了,移动端的UX优化也是可以的了。但是因为是网页,所以不可能有离线支持。这对于移动端来讲就有点可惜。如果坐飞机的时候想事情,分析某个项目的Action Items List的话,没法访问服务器,就没法记录,实在是有点可惜(只是举个例子)。
不过Vikunja似乎在复活移动端的App:
下载了试用了一下,似乎还是不太能用。希望以后可以越来越好吧。
顺便吐槽一下iOS的政策。每年那么贵的developer fee。对于开源生态的开发者开发iOS的APP实在不友好。不过想一下,iOS似乎也没有什么理由针对开源开发者免费,有钱不赚WBD嘛。因此很可能就算以后有了iOS的native application,估计也很难是免费的了。
Docker部署
官方给了比较详尽的文档,有Walkthrough还有一些范例:
在这里说一下几个需要注意的地方: