前言
在 NAS 上部署待办工具,看起来无非就是写一份 Docker Compose、启动容器,再打开浏览器注册账号。但真正开始装 Vikunja 时,最容易卡住的反而不是功能配置,而是挂载目录的读写权限。
本文会以 fnOS 为环境,从创建 Vikunja 数据目录开始,配置 files 和 db 的权限,再通过 Docker Compose 启动容器,并把容器运行用户固定为对应 UID,避免数据库和附件目录因为权限不匹配导致服务异常。部署完成后,再进入 Vikunja 本身的使用流程。
Vikunja 不只是简单的“打勾式待办清单”。同一套任务可以继续按项目组织,设置截止时间,并用于团队成员之间的任务分配和进度管理。文章中会实际创建任务、团队和项目,看看它从个人待办扩展到小型项目管理以后具体怎么使用。
最后还会通过 cpolar 给 3456 端口增加公网访问入口,并配置固定二级子域名,让部署在 NAS 上的 Vikunja 不只是在家里记任务,在手机流量或异地电脑上也能继续查看和更新。
这篇文章最终要完成的,是一套 数据留在自己 NAS、可以长期运行,同时能够跨设备使用的私人任务管理平台。

1.什么是Vikunja?
Vikunja 是一款完全开源、支持私有化自托管的任务 / 项目管理工具,对标付费工具 Todoist、Trello、飞书项目,兼顾个人日常待办与多人团队协作,最大特色是数据完全由自己掌控,同时拥有现代化清爽 UI,也就是前文提到的 “颜值与实力并存” 的开源待办软件Vikunja。
基础技术信息
- 开发语言:后端采用 Go 语言编写,前端基于 Vue.js,程序轻量化、响应速度极快,页面交互无长时间加载等待。
- 开源协议:采用 AGPLv3 开源协议,代码完全公开可查阅,无后台隐私收集、无厂商锁定,你可以随时导出全部任务数据自由迁移Vikunja。
- 部署方式:官方提供一键 Docker 镜像,可部署在 fnOS、群晖等 NAS、Linux 服务器、云主机,默认使用 SQLite 轻量数据库,大型团队可切换 MySQL/PostgreSQL。
- 项目成熟度:开发时长超 8 年,2026 年初正式发布 1.0 稳定版,GitHub 近 4k 星标,Docker 镜像下载量超 700 万,社区维护活跃Vikunja。
核心功能亮点
- 四种任务视图,一套数据自由切换
同一批任务支持4种可视化模式,无需重复创建数据:
- 列表视图:日常待办、购物清单、简单计划首选;
- 看板视图:适配敏捷开发、流程跟踪,对标Trello;
- 甘特图:中长期项目进度规划、任务依赖管理;
- 表格视图:批量筛选、编辑、导出任务数据Vikunja。
- 完备的任务管理能力,不输付费工具
支持优先级、截止时间、重复周期任务、子任务分层、标签分类、文件附件上传、邮件 / 站内提醒、自定义筛选视图,同时支持 CalDAV协议,可与手机系统日历、备忘录双向同步任务。
- 团队协作功能
支持创建命名空间、多级子项目,项目可分享给其他用户,支持任务指派、操作动态记录、精细化权限管控,小型团队、工作室可完全替代付费协作软件。
两大使用模式
-
自托管(推荐NAS用户)
免费无任何功能限制,所有任务、文件数据存储在你自己的NAS / 服务器中,不存在第三方平台泄露、关停丢失数据的风险,也是本文部署教程的核心使用方式。
-
官方云端订阅
不想自建服务的用户可选择官方托管云,按月付费,数据存储在欧盟合规服务器,适合不想折腾部署的用户。
对比商业工具的核心优势
- 无功能付费锁:Trello、Todoist 的甘特图、表格导出、多看板等高级功能均需开通会员,而 Vikunja 自托管后全部功能免费开放;
- 数据主权完全自主:商业工具数据存厂商服务器,Vikunja 本地部署数据仅存你的硬件,隐私安全性更高;
- 轻量化低资源占用:Docker 单容器运行,NAS 低配置硬件也能流畅运行,无需高额硬件开销;
- 无广告、无强制推送,界面简约清爽,长期使用体验舒适。
适用人群
- 个人用户:收纳生活琐事、工作计划、学习备考清单,替代手机自带备忘录;
- 技术爱好者、NAS玩家:fnOS、群晖自建私有服务,实现数据本地存储;
- 小型团队、工作室:免费完成项目分工、进度跟踪,省去协作软件订阅成本。
2.安装前提条件
2.1ssh远程连接到飞牛
- 开启【SSH 服务】
- 使用终端(Windows PowerShell / Mac Terminal)登录:
在设置—>SSH中开启SSH服务:



2.2验证docker是否开启
使用命令:
docker -v
systemctl status -v
也可以直接在飞牛主页查看(其他机器也是这样的哦~)

3.安装Vikunja
首先创建一下安装的目录并进入到该目录:
mkdir -p /docker/Vikunja
cd /docker/Vikunja
chown -R 1000:1000 ./files ./db
chmod -R 777 ./files ./db

创建并编辑 docker-compose.yml文件:
version: "3"
services:
vikunja:
image: vikunja/vikunja:latest
container_name: vikunja
environment:
- VIKUNJA_SERVICE_PUBLICURL=http://192.168.42.147:3456
- VIKUNJA_SERVICE_SECRET=45c1428dbdf63826b7b1a999e012df3b
- VIKUNJA_DATABASE_PATH=/db/vikunja.db
ports:
- "3456:3456"
volumes:
- ./files:/app/vikunja/files
- ./db:/db
restart: unless-stopped
# 强制容器内运行用户uid=1000,彻底解决权限不匹配
user: "1000:1000"

启动容器:
docker compose up -d

部署完成后,在浏览器中输入 http://飞牛IP:346 就能看到Vikunja的界面:

4.使用Vikunja
4.1 登录访问
首次登录要先注册账号密码:

注册完成后,返回登录:

登录成功后,到达主页面:
4.2 创建任务
我们来创建第一个任务:

勾选前面即可分清任务完成与否:

为该任务设置完成时间:


你们还可以编辑这些:

4.3 创建团队
也可以创建团队,为了方便分配团队人员工作:


管理团队人员:

4.4 创建项目
创建项目:


为该项目添加任务:

这里还有不同的形式:

我们通过Docker在fnOS NAS部署完成Vikunja私有待办平台后,默认仅能在局域网内访问,外出通勤、异地办公时无法随时查看、编辑个人任务清单,而多数家庭宽带不具备公网IP,手动设置路由器端口转发操作繁琐且存在安全隐患;这时我们就可以搭配轻量内网穿透工具cpolar使用,它无需复杂网络配置,只需建立一条加密隧道,就能将NAS上本地3456端口运行的Vikunja服务映射生成专属公网访问链接,手机流量、外地电脑均可随时随地连接我们自建的待办系统,完美解决内网服务远程访问的痛点。
5.安装cpolar实现随时随地开发
5.1 什么是cpolar?
cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。
5.2 部署cpolar
cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
sudo systemctl status cpolar

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

6.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,本例使用了:Vikunja,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:3456
- 域名类型:随机域名
- 地区:选择China Top

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

访问成功。

7.保留固定公网地址
使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是Vikunja,大家可以自定义。填写备注信息,点击保留。

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。

修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

总结
Vikunja 比普通待办清单更进一步的地方,是它可以从一条简单任务逐步扩展到项目、团队和不同管理视图,同时又保留了自托管的优势,任务和附件数据都可以放在自己的 NAS 中。
这次部署里更值得记住的其实是目录权限处理。Docker 容器能启动,并不代表挂载的数据目录一定能够正常读写,提前把 UID 和目录权限理顺,后面的升级和长期运行会省掉不少排查时间。
再通过 cpolar 增加固定公网入口以后,这套部署在 fnOS 上的任务系统也可以继续用于异地办公和多设备访问。对于已经有 NAS、又不想把所有任务长期放在第三方平台的人来说,Vikunja 提供的是一种比较完整的自托管选择。

996

被折叠的 条评论
为什么被折叠?



