PassNAT LogoPassNAT

自托管待办工具Vikunja极简部署指南,飞牛NAS用Docker搭建看板式任务管理并远程访问

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

Vikunja 是一款开源的自托管待办 / 任务管理工具,一个人用、一家人用、一个小团队用都合适。1.x 起把后端和前端合并成了单个容器,部署比以前简单不少。

它同时提供列表、看板、甘特图和表格四种视图 —— 随手记的清单用列表,推进中的事情切到看板拖卡片,需要看排期就切甘特图。任务可以设截止日期、优先级、提醒、子任务和标签,支持 CalDAV,手机上用日历 App 也能同步。数据全部落在自己的 NAS 上。

项目地址:点我跳转

部署安装

如果你需要在外网也能访问项目,建议配置内网穿透服务。推荐使用 帕斯内网穿透,先注册账号备用。详细的操作指南可以 点我查看,包含全平台上手攻略。

⚠ 这个项目有一点要先说:Vikunja 2.x 的编排里必须填公网地址(下面那个 VIKUNJA_SERVICE_PUBLICURL)。它默认开着 CORS,这一行留空的话容器起来会立刻退出,反复重启。所以顺序是先把内网穿透的隧道建好、拿到公网地址,再写编排起容器

在飞牛 NAS 上用 Compose 部署

打开飞牛 NAS 的 Docker 应用,切到上面的 Compose 标签,点「新增项目」。项目名称填 vikunja,路径选一个空目录,来源选「创建 docker-compose.yml」,把下面这段贴进去:

1services:
2 vikunja:
3 image: vikunja/vikunja
4 environment:
5 VIKUNJA_SERVICE_PUBLICURL: http://43.248.187.86:14905/
6 ports:
7 - "3456:3456"
8 volumes:
9 - ./files:/app/vikunja/files
10 - ./db:/db
11 restart: unless-stopped

编排里要认的就三处,从上往下:

image: vikunja/vikunja —— 官方镜像。这里不写版本号,跟官方文档的写法一致,拉到的就是当前最新版;项目以后更新了,在飞牛里重新构建一次就跟上了

VIKUNJA_SERVICE_PUBLICURL —— 填你从内网穿透拿到的公网地址,结尾的斜杠要带上,要跟你实际访问的地址一模一样。这一行不填,容器起不来

ports: "3456:3456" —— 左边是宿主机端口,也就是浏览器要敲的那个;右边是容器内端口,别动。3456 被别的服务占了就改左边,比如 "3457:3456"

volumes 那两行是数据:附件存在 files 目录,SQLite 数据库存在 db 目录,都在项目目录下面,容器重建也不会丢。

启动完成后,用内网穿透给的公网地址打开,就能进 Vikunja 了。

环境变量说明

这个编排里只有 VIKUNJA_SERVICE_PUBLICURL 一个必填项。另外还有一个建议长期部署时加上的:

VIKUNJA_SERVICE_SECRET —— JWT 的签名密钥,填一串足够长的随机字符。不填的话每次容器重启都会重新生成,已经登录的人都要重新登录一次。(注意:老文档里的 VIKUNJA_SERVICE_JWTSECRET 是废弃写法,以 _SECRET 为准)

注意事项

确保 3456 端口未被占用,如有冲突可修改宿主机端口号

数据存储在项目目录的 files 和 db 两个文件夹中,不会因容器重启而丢失

VIKUNJA_SERVICE_PUBLICURL 改了之后要重新构建项目才会生效

首次访问

第一次打开会落在登录页,点下面的「创建账户」注册第一个用户:用户名、电子邮箱地址、密码,三个填完「创建账户」按钮才会亮起来。进去之后左边点「新项目」建一个清单,在「添加任务…」里一条一条把事情敲进去,再切到看板视图,做完的卡片往 Done 那一列拖就行。

注册默认是开着的,也就是说知道你地址的人都能注册。自己一个人用的话,建议在编排里加上 VIKUNJA_SERVICE_ENABLEREGISTRATION: "false" 再重新构建,把注册关掉。

本篇教程结束