简介
什么是 Taskrr ?
Taskrr 是一个开源的、轻量级的周期任务追踪工具。它和传统的待办事项(To-Do)应用不同,关注的是"上次做这件事是什么时候"——比如浇花、清理除湿机滤网、备份 NAS、给水壶除垢,这些没有截止日期但有周期的事情。
项目采用 Go 语言开发,Web UI 和 SQLite 数据库都打包在一个约 12MB 的单一二进制文件中,运行时内存约 12MB,CPU 占用不到 0.5%,非常适合在树莓派或任何小主机上常驻运行。
主要特点
- 一键记录:每次做完一件事,点击 Quick log 即可记录,也可以选择具体时间和添加备注,历史记录支持编辑和撤销
- 周期提醒:为任务设置周期(如“每
2 周”),卡片会从绿色渐变为红色,直观显示距离下次执行的剩余时间
- 日历与活动图:内置月度日历查看已完成和即将到来的任务,附带近
30 天的活动统计图表
- 灵活过滤:支持按“即将到期”、“已超期”、“从未做过”、“已归档”等维度过滤,支持批量操作
- 标签与分组:支持标签搜索和筛选、文件夹分组,可按名称或上次完成时间排序
- 多用户支持:支持多用户独立数据,本地密码登录和可选的
OIDC 单点登录(已适配 Authentik 和 Pocket ID)
- 任务共享:管理员可开启任务共享,让多个用户协作管理同一任务
- 后台管理:内置管理后台,支持用户管理、注册审批、活跃会话、运行日志、一键备份与恢复
- Webhook 提醒:任务到期时可通过
Webhook 推送通知,支持 ntfy、Gotify、Apprise、Home Assistant、Discord 等
- 可定制主题:支持颜色自定义、明暗模式切换、动态背景、毛玻璃效果、浮动窗口
- 开源免费:基于
MIT 协议开源,可免费使用和修改
应用场景
- 家庭日常维护:记录浇花、清洁空调滤网、更换净水器滤芯等周期性家务
- NAS 运维:跟踪硬盘健康检查、系统更新、数据备份等运维任务的执行情况
- 设备保养:记录咖啡机除垢、车辆保养、家电维护等设备的定期保养
- 团队协作:多用户共享周期任务,适合实验室设备巡检、仓库盘点等场景
Taskrr 是一个专注于“周期”而非“截止日期”的任务管理工具,填补了传统待办清单和日程管理之间的空白。
安装
在群晖上以 Docker 方式安装。
本文写作时, latest 版本对应为 1.14.1;
由于镜像托管在 ghcr.io,群晖 Docker 套件无法直接搜索,需要通过命令行安装。
docker cli 安装
如果你熟悉命令行,可能用 docker cli 更快捷
# 新建文件夹 taskrr 和 子目录
mkdir -p /volume1/docker/taskrr/data
# 进入 taskrr 目录
cd /volume1/docker/taskrr
# 修改目录权限
chmod a+rw data
# 一键启动
docker run -d \
--name=taskrr \
--restart=unless-stopped \
-p 8787:8787 \
-v $(pwd)/data:/data \
ghcr.io/unmaykr-a/taskrr:latest
docker-compose 安装
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
version: '3.8'
services:
taskrr:
image: ghcr.io/unmaykr-a/taskrr:latest
container_name: taskrr
restart: unless-stopped
ports:
- "8787:8787" # Web 管理界面
volumes:
- ./data:/data # SQLite 数据库存储目录
environment:
TASKRR_ADDR: ":8787" # 监听地址
TASKRR_DB_PATH: "/data/taskrr.db" # 数据库路径
TASKRR_ADMIN_USERNAME: admin # 初始管理员用户名
healthcheck:
test: ["CMD", "/taskrr", "-health"]
interval: 60s
timeout: 5s
retries: 3
start_period: 10s
然后通过 SSH 登录到您的群晖,执行下面的命令:
# 新建文件夹 taskrr 和 子目录
mkdir -p /volume1/docker/taskrr/data
# 进入 taskrr 目录
cd /volume1/docker/taskrr
# 修改目录权限
chmod a+rw data
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
环境变量
如需预设管理员密码或其他配置,在同级目录创建 .env 文件:
# 管理员密码(留空则在首次登录时设置)
TASKRR_ADMIN_PASSWORD=your_password
# 单用户模式(关闭注册和多用户功能)
TASKRR_LITE=true
# 如果使用 HTTPS 反向代理
TASKRR_COOKIE_SECURE=true
完整环境变量说明参见项目的 .env.example 文件。
提示:容器默认以 uid/gid 1000 运行,如果宿主机用户 ID 不同,可通过 TASKRR_UID / TASKRR_GID 环境变量调整。
运行
在浏览器中访问 http://<群晖IP>:8787 即可进入登录页面
首次使用使用默认用户名 admin 登录,密码随意,系统会提示设置密码
之后就可以创建任务了
点击 New Task 创建新任务
Name:名称可用于标识任务,例如 NAS 备份;
Description:是认为的描述,为可选项;
Routine:勾选后可以设置周期频率,例如:every 7 days 就是每七天一个周期
Tags:标签也是可选的
创建任务后,可以在主界面看到
每次做完任务,点击 Quick log 记录完成时间,卡片会自动显示距离下次执行还有多久
项目提供了一个在线 Demo,可以在浏览器中体验完整功能:https://unmaykr-a.github.io/taskrr/
注意事项
- 数据备份:所有数据存储在
./data/taskrr.db 文件中,备份只需复制该文件即可
- 端口冲突:默认端口
8787,如果冲突可以在 docker-compose.yml 中修改左侧映射端口
- 权限问题:容器默认以
uid/gid 1000 运行,如果文件权限有问题,通过环境变量 TASKRR_UID / TASKRR_GID 调整
- 反向代理:如果通过域名访问,建议使用 Nginx 或 Caddy 配置
HTTPS,并设置 TASKRR_COOKIE_SECURE=true
- 安全建议:建议通过反向代理配置
HTTPS,避免明文传输密码
参考文档
unmakyr-a/taskrr: A self-hosted tracker for when you last did things.
地址: https://github.com/unmaykr-a/taskrr
Taskrr 在线 Demo
地址: https://unmaykr-a.github.io/taskrr/
更多实用工具分享,欢迎访问 云栈社区。