ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

super-productivity:开源自托管时间管理工具,Docker一键部署指南

2026/10/1 12:46:46 拓冰建站 浏览量
super-productivity:开源自托管时间管理工具,Docker一键部署指南 说实话市面上叫“待办清单”的App我前前后后试过十几个从手机自带备忘录到各种云同步神器没有一个能让我坚持超过一个月。要么功能太散番茄钟是一个App、任务管理是另一个App、时间统计又要单独装数据还东一份西一份要么就是免费版阉割严重想要个稍好用的功能就得开年费订阅。直到我接触到super-productivity这个开源项目才第一次体会到什么叫“工具追着人跑”。它把待办任务、番茄钟、时间追踪、任务统计全揉进了同一个界面支持吃自己的资源做纯自托管部署一条Docker命令就能把整套系统跑起来数据完全不用交给任何第三方。这篇就聊聊它的核心功能、为什么值得自托管以及从零到一的一键部署实操和踩坑记录。1. 先搞清楚super-productivity到底是什么1.1 它不是又一个待办清单而是一套时间管理闭环很多人看到“待办任务”四个字就下意识觉得这不就是TodoList嘛我用系统备忘录就够了。但super-productivity的设计逻辑和普通待办App完全不一样它默认把“计划—执行—回顾”串成了一条线。你在里面建一个任务不是打个勾就算完而是可以给这个任务绑定一个番茄钟点开计时器干活干完这轮番茄App自动记录你在这个任务上花了多少时间任务完成后后台的统计面板会告诉你今天、本周在哪个项目上投入了多少分钟完成了多少项任务。这个闭环的价值在于它把“时间管理”从一句口号变成了可量化的数据。普通待办App只会问你“做完了没有”super-productivity会额外问你“做了多久”“什么时候做的”“这类任务吃掉了你多少时间”。这些数据积累下来就是你自己最真实的时间账单。我用了大概两周之后第一次看清自己每天真正高效工作的时间段以及哪类任务在偷偷消耗我的精力这比任何效率鸡汤都管用。1.2 核心功能一览我把比较常用的功能模块整理一下方便你对照自己的需求任务管理支持任务分组、子任务、标签、优先级、到期日期、定时提醒还能给任务追加备注和附件信息。番茄钟内置番茄工作法计时器和任务直接关联做完一轮自动记录可以自定义专注时长和休息时长。时间追踪支持手动计时和自动计时两种模式每个任务、每个项目单独累计随时查看当日/当周投入。数据统计按天、周、月维度统计完成任务数、累计专注时长、各项目/标签的时间分布这部分对复盘特别有用。外部集成可以连接GitHub、GitLab、Jira的Issue把开发任务直接拉进待办列表工单进度一目了然。多端同步通过WebDAV或CalDAV协议同步数据也可以配合官方后端服务实现客户端之间的数据互通。快捷操作全键盘流操作热键新建任务、切换项目、启动番茄钟干起活来不用离开键盘。对于开发者来说GitHub和Jira集成是很大的加分项对于普通上班族和学生党番茄钟加统计面板才是每天真正离不开的功能。1.3 适合谁用不适合谁用先泼一盆冷水如果你只是想要一个“把事记下来别忘”的轻量工具super-productivity的开箱成本对你来说可能偏高了。它适合的是那些愿意花点时间把任务系统搭起来、并且希望通过数据复盘来改进工作节奏的人。程序员、项目经理、自由职业者、备考学生这几类人群和它的匹配度最高。同样是自托管待办工具它和Vikunja这类强调“多人协作看板”的项目不同super-productivity更偏向个人深度使用强调的是“一个人如何把一天过得更清楚”。所以如果你是团队协作场景应该去看别的方案如果是给自己搭建一套个人时间管理系统那它就是目前开源生态里非常能打的一个。2. 为什么值得自托管我的选型思路2.1 数据握在自己手里心里才踏实我选自托管工具的第一理由永远是数据所有权。待办清单这东西看着不起眼但里面存的是你整个生活和工作安排什么时间干什么事、哪些项目在推进、每天时间花在了哪。把这些数据放在别人的云服务器上等于把日程透明化成给第三方看。有时候也不是信不过厂商而是你永远不知道哪天服务调整、账号异常或产品下线数据说没就没。super-productivity本身是开源项目代码完全公开部署之后跑在自己的服务器或家里的NAS上浏览器访问、数据落在自己控制的范围里。哪怕有一天项目停止维护只要部署文件和数据文件还在你的系统依然照常运行这种安全感是商业SaaS给不了的。从投入产出比看一次部署半小时搞定换来的却是长期的数据主导权。2.2 开源可扩展不受产品路线绑架商业待办工具最大的问题不是收费而是它的功能走向你说了不算。今天给你加个AI总结明天改版把顺手的功能藏到付费墙后面你只能被迫适应。开源项目就不存在这个烦恼想要的功能可以提Issue着急就自己改代码或者干脆用别人贡献的插件和第三方客户端。super-productivity的架构也比较良心前端是Web应用部署灵活。你可以只跑一个静态页面也可以搭配官方后端服务实现账号同步桌面端还有Electron打包的客户端Windows、macOS、Linux都覆盖。底层用Angular开发成熟稳定社区虽然不算大但Issue响应积极版本迭代一直没停过。2.3 和主流工具的横向对比拿sheet风格做一个直观对比不吹不黑对比维度super-productivity商业待办订阅App手机系统自带提醒数据归属自己的服务器/浏览器存储第三方云端厂商生态内番茄钟内置可与任务绑定多数需要另买或另装无时间追踪内置自动关联任务通常是独立功能无数据统计全面支持自定义维度部分提供高级要付费无外部集成GitHub/GitLab/Jira等看套餐档位无部署成本一次Docker部署零授权费年费几十到几百0可定制性开源可魔改封闭封闭看完这个表你应该明白我的意思super-productivity不是“功能最多的待办工具”而是“功能整合度最高且数据可控的待办工具”。它把好几类工具的能力集中在一个界面里省去了我在多个App之间切换的摩擦。3. 一键部署实操从零跑起来3.1 部署前的环境准备super-productivity的部署方式很友好本质上就是一个容器化的Web应用。我推荐用Docker Compose来跑理由有三配置文件一目了然后期迁移直接复制目录就行升级时改个镜像版本号重拉即可。先说前置条件。你需要一台能长期运行的机器可以是云服务器、家里的NAS或者吃灰的小主机配置要求很低1核1G跑它都绰绰有余毕竟它主要是个前端应用加轻量后端。系统装好Docker和Docker Compose插件就行。如果你用的是群晖这类NAS在套件中心装好Container Manager原理一样。域名不是必须的直接用IP加端口访问也能用但如果你打算认真长期使用我建议后面套一层反向代理配上HTTPS这样即使在外网访问也安全。3.2 Docker Compose 部署配置这里贴一份我实测可用的compose配置核心就两个服务一个是Web前端负责提供页面和主要功能另一个是可选的服务端用于注册账号、多设备同步数据。如果你只有一台设备使用不跑服务端也行但既然要“一键部署”我建议一步到位把同步能力也放进去。version: 3 services: super-productivity: image: ghcr.io/johannesjo/super-productivity:latest container_name: super-productivity restart: unless-stopped ports: - 8080:80 volumes: - ./data:/data super-productivity-server: image: ghcr.io/johannesjo/super-productivity-server:latest container_name: super-productivity-server restart: unless-stopped environment: - PORT3211 - DATA_DIR/data ports: - 3211:3211 volumes: - ./server-data:/data depends_on: - super-productivity说几个关键点的考量。端口映射这里我把前端的8080映射到了容器内的80端口因为官方镜像默认用Nginx伺服静态页面后端服务端口习惯用3211。如果你本机8080端口已经被占用换个宿主侧端口就行比如808180。restart: unless-stopped是让容器在机器重启后自动拉起这是“长期服役”必备配置。数据目录挂载出来是为了升级容器时不丢数据这个一定要做不然哪天删容器重建数据全没了。配置完成后在目录下执行docker compose up -d第一次启动会拉镜像网络正常的话一两分钟就能完成。看到两个容器状态都是Up之后浏览器访问http://你的服务器IP:8080就能看到登录和设置页面。所谓一键部署到这一步就算跑通了。我这种yolo型选手最喜欢的玩法就是先拿现成脚本一把梭跑起来细节后面再慢慢调。3.3 前端、后端连接与初始化页面能打开只是第一步要把前后端串起来还需要在页面的配置里指定后端服务地址。进入设置找到同步或服务端相关选项填入http://你的服务器IP:3211。这里有个我在部署时踩过的坑如果你在服务器本机上访问页面填localhost:3211没问题但如果是从局域网内另一台电脑访问页面千万别填localhost要填服务器的局域网IP不然浏览器里的前端脚本根本连不上后端服务同步怎么配都不成功。后端服务初始化好账号之后前端会要求你登录。登录成功就完成了同步通道的打通。这里要提醒一下前端的核心数据其实是存在浏览器本地的后端的作用更像是同步枢纽帮你把多台设备的数据汇总起来。理解了这一点后面遇到“为什么这台设备改了另一台没变”的问题时思路就清晰了。3.4 数据持久化与备份方案自托管最忌讳的就是“数据裸奔”。我见过太多人部署完就撒手不管结果一次容器重建悔得肠子都青了。super-productivity的数据分两部分一是浏览器本地存储这个没法在服务器上直接备份只能靠同步机制把数据捞到服务端副本二是服务端的数据库文件就在我们挂载出来的./server-data目录里。所以我的备份策略很简单也很稳定期把server-data目录打包下载或者写个cron脚本每天压缩一份存到另外的位置。恢复时只需把目录放回原位重建容器即可。前端静态页面本身没有需要备份的数据它就是个壳真正的心血都在同步服务端。加上这个目录本身很小备份成本几乎可以忽略但关键时候能救命。4. 上手使用把时间管理玩明白4.1 我的日常使用工作流部署完成只是开始真正让工具发挥价值的是使用习惯。我在实际使用中摸索出一套适合自己的工作流写出来给你参考。每天早上的第一件事不是打开邮件而是打开super-productivity把今天要做的事过一遍按项目归类给每项任务估计一个番茄钟数标注优先级然后把最困难的那件事放在上午专注时段。开始干活时点开任务对应的番茄钟按钮进入全屏专注模式这期间不碰手机、不切网页直到铃声响起。短暂休息后再来一轮。一个上午通常能完成三到四个番茄钟下午再处理低脑力消耗的任务比如回复消息、整理文档。晚上收工前打开统计面板看一眼当天的数据分布哪些任务预估时间偏差大第二天调整计划时心里有数。这套流程坚持下来我发现自己的有效工作时间其实并没有变多但产出质量明显提升因为每一分钟都清楚“现在该做什么”。4.2 和GitHub/Jira等外部任务的联动如果你是开发者super-productivity的集成功能是你一定要尝试的。它支持把GitHub、GitLab上的Issue自动拉取到任务列表里每个Issue对应一个任务卡片状态变更和时间追踪都能关联上。我现在的做法是把分配给我的Issue全部同步进来再和手动创建的个人任务混排在同一个看板里这样不会出现“工作系统一个待办列表、个人计划另一个待办列表”的割裂感。Jira集成对项目经理同样实用可以直接把研发工单拉下来跟踪进度。配置集成时需要在对应的平台里生成一个Access Token权限按最小化原则来给只开放读取Issue相关权限即可。Token不要硬编码在页面里建议走环境变量或密钥管理。这块我从踩坑中得到的教训是不要在浏览器里直接输Token清缓存的时候容易一起清掉安全上也不够讲究。4.3 用统计数据做个人复盘统计是super-productivity最容易被人忽视但其实最值钱的部分。它会把你的所有操作沉淀成图表包括每天完成的任务量、每个项目的累计用时、不同标签下的时间分布。我每周末会花十分钟做一次复盘重点看三个指标本周总番茄数、任务完成率、时间花费Top3的项目。不看不知道一看吓一跳。有一段时间我总觉得自己忙得够呛但统计数据告诉我每周真正投入核心项目的时间只有不到12个小时剩下的时间都被会议、临时插队的事和碎片杂务吃掉了。后来我根据这个数据调整了安排每天上午固定两小时雷打不动的深度工作时间会议尽量集中到下午临时消息统一时间处理。节奏调整之后周产出明显上升。这种基于真实数据的复盘比任何“时间管理大师”的口头建议都更有说服力因为它针对的是你自己的实际情况。5. 踩坑实录与常见问题排查5.1 部署与使用问题速查表我用这种东西有个习惯遇到问题当场记录方便以后速查。下面这张表是我自己在部署和使用super-productivity过程中碰到的典型问题和对应的处理办法现象可能原因解决办法页面能打开但无法登录前端没填对后端服务地址或端口不通检查后端端口映射确认前端配置里填的是服务器IP而非localhost局域网其他设备访问不了服务器防火墙拦截端口放行8080和3211端口的入站规则容器重启后数据丢失没挂载数据目录删除容器重新创建确认./server-data卷已挂载同步总是失败或冲突多台设备离线编辑产生冲突保持单设备编辑为主或定期手动触发一次同步页面白屏浏览器缓存了旧版前端资源强制刷新或清理该站点的缓存和IndexedDB后重新加载番茄钟计时不准浏览器后台标签被省电策略冻结把站点加入浏览器省电白名单或使用桌面客户端这里重点说一下同步冲突这是多设备使用最头疼的问题。super-productivity的同步机制不是实时的多人协同更像“多端写入事后合并”。如果你在手机和电脑上同时改同一个任务就可能出现版本冲突。我习惯的做法是白天在主力设备上集中操作另一台设备主要用来看和记录临时想法避免同时编辑同一批任务冲突概率能降到很低。5.2 反代与HTTPS配置心得用IP加端口访问很容易被浏览器安全策略各种限制比如某些浏览器对非安全上下文里的本地存储和摄像头等特性有限制。所以我建议一旦部署稳定尽快配一个反向代理。Nginx配置大概这样写server { listen 443 ssl; server_name todo.example.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }把todo.example.com换成你自己的域名SSL证书用Lets Encrypt自动申请即可。如果你有后端服务需要走反代记得给/api/之类的路径单独加一条location转发到3211端口。我这边的教训是反代配置里务必要带上X-Forwarded-Proto头不然前端无法正确判断请求是HTTPS偶尔会导致一些安全和路径判断上的诡异问题。5.3 升级与迁移实战自托管应用绕不开升级这件事。super-productivity更新频率不低新版本往往包含性能优化和功能修复。我的升级流程很简单先备份server-data目录然后执行docker compose pull拉取最新镜像再docker compose up -d重建容器。整个过程一般五分钟以内前端页面会短暂中断但不影响后端数据。迁移到新机器时更简单把整个部署目录compose文件加数据目录拷贝过去在新机器上执行同样的docker compose up -d改一下新机器的IP配置即可。我实际迁移过一次连浏览器端的重新登录都不用服务端数据恢复之后所有任务、项目、历史统计都回来了。这也是采用Docker部署最大的红利环境一致性让运维复杂度直线下降。5.4 关于坚持使用的一点建议最后想聊聊工具的长期使用。很多人部署了各种效率工具新鲜劲儿一过就扔在一边转头又去收藏下一个“神器”。我在实际使用中的体会是super-productivity这类自托管工具的初始门槛恰恰帮使用者建立了一种仪式感你为它付出了部署、配置、调优的成本自然会更认真地使用它。但仪式感是次要的真正能留住我的是它的“低摩擦设计”。任务入口在首页正中央快捷键全局可用番茄钟启动只要两次按键统计数据打开即见不需要任何操作引导。当工具顺手到不需要思考怎么用的时候坚持就成了自然而然的事。如果你也准备入坑我的建议是从小处开始先只建一个项目、每天记录两三个任务跑通流程之后再逐步加功能让这套系统长成你自己习惯的形状。