自托管任务看板 Vikunja:把水电缴费、孩子作业、项目待办统统管起来


站点已经替“家庭数字生活”圆了很多愿望:代码进了 Gitea、照片进了 Immich、影音进了 Jellyfin、密码进了 Vaultwarden、笔记进了 Memos、账本进了 Firefly III——但有一类每天都在发生、却总是靠“脑子里记着”和“微信置顶聊天”硬撑的事务没被正面处理:任务。家里的水电要续费、孩子的作业要签字、项目明天要交差、下个月要完成一次体检……这些任务散落在脑子里死死记着,忘一件就慌一次。滴答清单、Todoist 这些工具很好用,但会员按月收费,待办数据也全程存在别人的服务器上。Vikunja 用一个自托管的看板把家庭和工作的任务统一管起来:待办、项目、多人协作、日历提醒一块面板全搞定。这篇文章把它从零到一讲透。

一、为什么自建任务看板

任务管理工具的痛点是典型的“三高”:数据在别人手里、价格在涨、功能的通用模型不对。混乱的待办最根本的问题从来不是“工具不够多”,而是“没有一处所有任务都能归集的地方”。自托管一款任务看板,等于拥有一个永远不涨价、数据完全私有的“家庭任务中枢”。你可以清晰看到水电费几号该交、孩子的兴趣班下周几有课、工作上的待办还剩几件——所有内容一屏看清,不再依赖某个 App 的会员续费。

二、Vikunja 是什么,为什么选它

自托管任务管理的主要候选有 Planka、Focalboard、Leantime 和今天的主角 Vikunja。Planka 长得像 Trello,交互顺滑但偏“纯看板”;Focalboard 已经停止积极维护;Vikunja 则是三者的综合优等生:它既是看板(看板视图)、又是清单(列表视图)、又是日历(带 remind 提醒),还内置多人协作和分享链接,最重要的是它由活跃社区持续维护、协议开放,被很多团队和个人玩家当作滴答清单的私有化平替。

Vikunja 的几个贴心细节特别像“为家庭场景设计”:项目可以设优先级和标签、每条任务可以加子任务和备注、看板支持拖拽、还有到期日 + 提醒通知(邮件或接上本站的 ntfy 统一推送)。一家人的事务在一张面板上各奔各的节奏,互不干扰又能互相看见。

三、准备工作与目录规划

Vikunja 由前端和后端两个模块组成,官方推荐用 docker compose 一起编排。数据全部落在它的 SQLite 或 Postgres 数据库里,因此只要把 compose 所在目录整体纳入备份,就万无一失。建议固定在 /opt/vikunja 下。

如果你希望任务提醒能实时推给手机,建议提前准备好可用的发信能力(最基本的 SMTP 配置即可),这样 Vikunja 的邮件提醒才不会被服务商判别为垃圾信。

四、Docker Compose 部署 Vikunja

在服务器上执行:

mkdir -p /opt/vikunja

然后创建 /opt/vikunja/docker-compose.yml:

services:
  api:
    image: vikunja/api:latest
    container_name: vikunja-api
    environment:
      - VIKUNJA_SERVICE_PUBLICURL=https://todo.example.com
      - VIKUNJA_DATABASE_TYPE=sqlite
      - VIKUNJA_DATABASE_PATH=/db/vikunja.db
      - VIKUNJA_MAILER_ENABLED=true
      - VIKUNJA_MAILER_HOST=smtp.example.com
      - VIKUNJA_MAILER_PORT=587
      - VIKUNJA_MAILER_USERNAME=
      - VIKUNJA_MAILER_PASSWORD=
      - VIKUNJA_MAILER_FROMEMAIL=notify@example.com
    volumes:
      - ./files:/app/vikunja/files
      - ./db:/db
    restart: unless-stopped
  frontend:
    image: vikunja/frontend:latest
    container_name: vikunja-frontend
    restart: unless-stopped
  proxy:
    image: nginx:alpine
    container_name: vikunja-proxy
    restart: unless-stopped
    ports:
      - "8084:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    depends_on:
      - api
      - frontend

其中 proxy 的 nginx.conf 负责把 / 指向前端、把 /api 指向 api 模块。把它写好后执行 docker compose up -d,通过 http://IP:8084 打开,注册第一个账号即为管理员。

上线后把 VIKUNJA_SERVICE_PUBLICURL 改成真实域名,再用 Caddy 反代加 HTTPS,一个正式可用的家庭任务中枢就位。

五、开始把任务“收编”进来

首次进入先建两个大分类:一个“家庭”,一个“工作”。家庭里按孩子、家务、缴费建项目;工作里按项目名建工程项目。每条任务可以随手标注优先级、截止时间、负责人标签,看板视图下直接把卡从“待办”拖到“进行中”再拖到“完成”,整个过程零学习成本。

一个很实用的做法是给自动生成重复任务:例如“每月 1 号检查水电缴费”“每周日写周报”,Vikunja 支持在任务里设定重复规则,到期自动生成新任务并发提醒,把“别忘了”交给系统而不是交给你自己。

六、多人协作与家庭共享

在项目设置里邀请家人或同事加入协作:对方用自己的账号登录后,就能在同一张面板上认领任务、拖拽状态、互相看到进度。不想给对方账号的时候,还可以使用“分享链接”——把某张看板生成一个只读或可编辑的公开链接,家人不用注册也能一眼看到家庭里的任务全貌。

配合 Vikunja 的日历同步功能,把“截止日”镜像到自己的系统日历,无论你习惯用手机日历还是桌面日历,任务提醒都不会漏。

七、备份与安全

Vikunja 的数据全在 /opt/vikunja/files(附件)和 SQLite 数据库里,备份它们就是备份整个任务中枢,建议用 restic 做异地增量备份。安全上,管理员开启强密码并启用两步验证;如果不是纯内网使用,务必把 8084 端口用反代藏起来、关掉公网直连端口,避免被扫描爆破。

结语

从“脑子里记着”到“看板上一清二楚”只有一层 docker compose 的距离。当你把水电、作业、项目统一放进自托管的 Vikunja,你换回的是一片不再靠记忆力硬扛的轻松,和一份永远属于全家的任务地图。先建好家庭看板,从今天第一条待办开始。


手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

自建 RSS 阅读器:用 FreshRSS 把信息流完全握在自己手里

自建电子书库 Calibre-Web 教程:搭建全家人都能用的私人数字图书馆

评 论
更换验证码