OpenHabitTracker 1.2.5 介绍与选型指南
OpenHabitTracker 1.2.5(.NET Blazor 开源习惯追踪/任务/笔记应用)介绍与选型指南:项目身份、六端架构、overdue 计量模型、功能特性、快速开始,及与 Habitica、Loop、Beaver Habits 的量化对比(数据查询日期 2026-10-24)。
OpenHabitTracker 1.2.5 介绍与选型指南
目标:为「想在自有服务器/自有设备上做习惯追踪、任务与笔记管理」的读者提供 OpenHabitTracker 的全面认知与选型依据——覆盖项目身份、核心架构、功能特性、快速上手、适用场景限制,以及与 Habitica、Loop Habit Tracker、Beaver Habits 的量化对比。本文信息全部来自官方仓库与官网溯源(来源与查询日期随文标注),未做本地实测。
一、环境信息
本文为认知与选型篇,全部信息通过官方渠道联网取证,未在本地部署实测:
- 考察对象:OpenHabitTracker v1.2.5(当前最新稳定版,2026-09-27 发布)
- 官方仓库:https://github.com/Jinjinov/OpenHabitTracker (GPL-3.0 许可证,2026-10-24 实查 LICENSE 文件)
- 官网:https://openhabittracker.net
- 在线应用(PWA):https://pwa.openhabittracker.net
- 官方容器镜像:https://hub.docker.com/r/jinjinov/openhabittracker
- 社区活跃度取证口径:GitHub 星标/fork 数取自 shields.io 徽章接口,版本信息取自仓库 Releases 页 atom 订阅源,均为 2026-10-24 查询
- 技术栈基线:C# / .NET 10 / Blazor(仓库页面标题自述:"C# .NET 10 Blazor habit tracker application. Works on Web, Windows, Linux, Android, iOS and macOS",2026-10-24 实查)
二、软件概述
OpenHabitTracker 是一款免费开源的「习惯追踪 + 任务管理 + 笔记」三合一应用。作者 Jinjinov(GitHub 用户 20396198)以 .NET Blazor 技术栈独立开发,项目定位非常明确:数据完全归用户自己所有——官方 README 的原话是:
- "All your data stays on your device, and syncs only to a server you run yourself"(所有数据留在你的设备上,只同步到你自己运行的服务器)
- "The app has no ads, no trackers, no account, no subscriptions and no in-app purchases"(无广告、无追踪器、无账号体系、无订阅、无应用内购买)
这段定位对应的是当前个人效率工具市场的主流痛点:Habitica、Todoist 等闭源 SaaS 应用把数据存在厂商云上;而多数开源竞品又只覆盖单一形态(如 Loop Habit Tracker 只有 Android 端)。OpenHabitTracker 用「一套 C# 代码库、六种运行形态」来同时覆盖桌面、手机与浏览器(详见第三章)。
防混淆提示:OpenHabitTracker 是一个具体项目名,与泛指的 "open source habit tracker" 类目不同;与其他同名或近名项目(如安卓社区的各种 habit tracker 模板工程)无关,认准官方仓库 Jinjinov/OpenHabitTracker 与官网 openhabittracker.net 即可。它与游戏化习惯应用 Habitica、安卓单机应用 Loop Habit Tracker 属于同类不同路线的竞品,关系在第七章展开。
版本与活跃度基线(2026-10-24 查询):
| 维度 | 数据 | 取证来源 |
|---|---|---|
| 最新稳定版 | 1.2.5(2026-09-27) | 仓库 releases.atom |
| 上一版本 | 1.2.4.1(2026-08-12)、1.2.4(2026-08-15) | 仓库 releases.atom |
| 星标 / fork | 303 / 24 | shields.io 徽章接口 |
| 主分支 | main(仓库 id 718796532) | 仓库页面 HTML |
| 许可证 | GPL-3.0 | 仓库 LICENSE 文件 |
| 官方网站与文档 | openhabittracker.net | README |
💡 说明:版本节奏上,1.2.x 系列在 2026 年 8—9 月连续发布 3 个版本(1.2.4 → 1.2.4.1 → 1.2.5),处于活跃维护期。1.2.5 的更新内容(自述 Release Notes,2026-10-24 查询)包括:习惯统计图表(target、history、calendar、best streaks、frequency)、每日待办摘要通知、任务计划时间前的提醒通知、在线同步异常图标,以及同步断线重试、周统计不刷新等修复——统计与同步是这个项目近期的主要演进方向。
三、核心架构
OpenHabitTracker 的架构核心是「一套共享代码,多形态宿主」。官方 README "Runs with" 一节列出了全部运行形态,本章按此溯源整理。
3.1 运行形态与技术栈
| 运行形态 | 承载技术 | 典型用途 |
|---|---|---|
| Web 应用(PWA) | Blazor WASM + IndexedDB | 浏览器直接使用,数据存浏览器端 |
| 自托管服务器 | Blazor Server(ASP.NET Core,Kestrel) | 部署在自有服务器,数据存 SQLite,可作多设备同步中枢 |
| Windows / Linux / macOS 桌面 | Photino.Blazor / WinForms / WPF | 桌面客户端,走各应用商店或包管理器分发 |
| Android / iOS 移动端 | .NET MAUI | Google Play / App Store 分发 |
技术组件(官方 README "Made with" 一节,2026-10-24 查询):Bootstrap + Bootswatch(界面与 26 套主题)、Markdig(Markdown 渲染)、YamlDotNet(YAML 备份)、CsvHelper(TSV 导入导出)、DnetIndexedDb(浏览器 IndexedDB 封装)、WatchDog(自托管形态的日志查看页,见 1.2.5 自述中的 /watchdog)、Microsoft.AspNetCore.OpenApi + Scalar(API 文档)。
💡 技术拓展:Blazor 有两种主要托管模型,OpenHabitTracker 同时用了两者,理解差异有助于选型——
模型 原理 特点 OpenHabitTracker 中的角色 Blazor WASM .NET 运行时经 WebAssembly 下载到浏览器执行 首次加载慢、之后可离线;逻辑全在客户端 pwa.openhabittracker.net 在线应用,数据存浏览器 IndexedDB,无服务器也能用 Blazor Server 浏览器与服务器保持 SignalR 长连接,UI 事件在服务端处理 首屏快、依赖连接;数据天然在服务端 官方容器镜像的形态,数据存服务器 SQLite,作为桌面/手机客户端的同步中枢 同一套 UI 组件代码(Razor 组件)在两种模型下复用,这正是「自托管服务器做同步中枢、浏览器端离线兜底」双形态的基础。
3.2 数据存储与同步
数据分两层:
- 客户端层:PWA 形态使用 IndexedDB(经 DnetIndexedDb 访问),数据保存在浏览器存储中,不依赖服务器;桌面/移动原生形态数据存本地文件。
- 服务器层:自托管形态使用 SQLite 数据库(程序目录下
.OpenHabitTracker/OpenHT.db,这是官方 Docker 镜像挂载卷的路径,见 README Docker 一节);登录凭据通过 ASP.NET Core Identity 存储,API 访问使用 JWT Bearer 令牌,刷新令牌 90 天有效期且每次轮换(1.2.5 源码 AuthController 自述常量,2026-10-24 实查)。 - 同步模型:客户端应用(桌面/手机/PWA)在设置中填入自托管服务器地址与账号即可开启 "Online sync"。README 强调单用户模型——"Docker image contains a Blazor Server app for one user"(容器镜像内置的 Blazor Server 应用面向单个用户)。
💡 技术拓展:浏览器端持久化常见方案对比——
方案 容量 特点 本文项目实际采用 localStorage 约 5MB 纯键值字符串,同步 API 否(容量不足) IndexedDB 数百 MB 级 异步、结构化存储、可建索引 是(DnetIndexedDb 封装),PWA 主存储 OPFS(文件系统访问) 大 较新,浏览器支持参差 否 选 IndexedDB 是 PWA 数据量(笔记全文 + 历史记录)下的合理选择。
3.3 部署形态一览
| 形态 | 载体 | 面向人群 | 数据位置 |
|---|---|---|---|
| 在线 PWA | pwa.openhabittracker.net | 不想装任何东西的用户 | 浏览器 IndexedDB |
| 自托管服务器 | 官方镜像 jinjinov/openhabittracker(Docker Hub 与 GHCR 双发布) | 有服务器/NAS 的用户 | 服务器 SQLite |
| 桌面应用 | Microsoft Store / Flathub / Snap Store / winget(winget install OpenHabitTracker) | Windows/Linux/macOS 桌面用户 | 本地文件 |
| 移动应用 | Google Play / App Store / APKPure / GitHub Releases(配合 Obtainium 自动更新) | Android/iOS 用户 | 本地文件 |
关键差异:所有形态数据模型一致,可通过应用内「Data → Online sync」指向同一台自托管服务器实现多端同步;不部署服务器时各端数据彼此独立。
四、功能特性
以下特性来自官方 README 功能清单(2026-10-24 查询,特性名按原文意译):
4.1 笔记、任务、习惯三合一
- 笔记(Notes):Markdown 书写,列表页直接渲染 Markdown,读一条笔记不需要点进去;
- 任务(Tasks):支持计划日期与时间、时长(duration)、清单(checklist)与计时器(timer);
- 习惯(Habits):支持按次/按时间/按数量三种计量(对应 DisplayMetric:Repetitions/Time/Quantity),每个习惯有目标值(target)与重复周期(间隔天数/周/月/年);
- 分类与优先级:三者在分类(Category)与优先级(Priority:None→VeryLow→Low→Medium→High→VeryHigh 六档,2026-10-24 实查 1.2.5 OpenAPI 文档枚举)两个维度上打通。
4.2 习惯计量模型:overdue 而非 streak
这是 OpenHabitTracker 与多数习惯应用最核心的产品差异。README 原文:
"Habits measured by how overdue they are rather than by an unbroken streak: a habit with a 10 day interval that is 2 days overdue reads 120%"(习惯以「超期程度」计量而非「连续不中断」:间隔 10 天的习惯超期 2 天时显示 120%)
💡 技术拓展:习惯类应用有两种主流计量模型——
模型 原理 心理效应 代表应用 连击(streak) 中断一次即清零 损失厌恶驱动坚持,但一次中断易导致放弃 Loop Habit Tracker、Habitica 超期百分比(overdue) 按「距上次完成的时间 / 间隔」计算健康度,超期仍可补救 容忍中断,强调回到正轨 OpenHabitTracker OpenHabitTracker 同时提供 best streaks 统计图表,两种视角都有,但主模型是 overdue。适合「间歇性执行、怕清零挫败感」的用户;偏好打卡清零仪式感的用户可能更习惯 streak 模型。
4.3 搜索、过滤与排序
- 搜索覆盖笔记正文与清单项,不只是标题;
- 过滤支持日期(固定日期或距今天数,保存的过滤器不会因时间推移失效)、分类、优先级、状态;习惯可按超期程度设上下界过滤;
- 「反向」的完成日期过滤:查「某段时间内没做过什么」;
- 笔记、任务、习惯各自可选 11 种排序键。
4.4 统计与图表
- 每个列表旁有周统计:习惯在轨/临近/超期、任务完成与超期(含耗时)、笔记新增与更新;
- 每个习惯有五类图表(1.2.5 新增,见 Release Notes):今日/本周/本月/本季/本年目标进度、按日/周/月/季/年的历史、连续日历(月份间无断档)、十条最长连击、按星期/月份的完成量分布。
4.5 数据导入导出与本地化
- 导出/导入 JSON、YAML、TSV、Markdown 四种格式,并可从 Google Keep Takeout ZIP 导入;
- 设置本身也会随 JSON/YAML 备份一并导出并参与同步;
- 本地化 20 种语言(含简体中文、英语、德语、法语、日语、韩语等,README 列表);
- 26 套主题(Bootswatch),深浅色模式;
- 完整键盘导航与屏幕阅读器支持(无障碍);
- 通知:每日待办摘要 + 任务计划时间前提醒(1.2.5 新增);几乎所有界面元素可开关自定义。
五、快速开始(最小可用示例)
本章给两条官方路径:零安装(PWA)与自托管(官方容器镜像)。均为官方 README 给出的标准方式(2026-10-24 查询),部署细节与逐条实测回显见本专栏部署篇与配置篇。
5.1 零安装:直接使用官方 PWA
浏览器打开 https://pwa.openhabittracker.net 即可使用,数据存于浏览器 IndexedDB,不经过任何第三方服务器。这是评估产品功能最快的路径。
5.2 自托管:官方容器镜像 + Compose
官方 README 给出的最小 compose 定义(原文节选,占位值需替换为自己的强口令与 JWT 密钥):
services:
openhabittracker:
image: jinjinov/openhabittracker:latest
ports:
- "5050:8080"
environment:
- AppSettings__UserName=${APPSETTINGS_USERNAME}
- AppSettings__Email=${APPSETTINGS_EMAIL}
- AppSettings__Password=${APPSETTINGS_PASSWORD}
- AppSettings__JwtSecret=${APPSETTINGS_JWT_SECRET}
- TZ=Europe/Berlin # replace with your timezone
volumes:
- ./.OpenHabitTracker:/app/.OpenHabitTracker
配套 .env(官方示例结构,口令请换成强口令):
APPSETTINGS_USERNAME=admin
APPSETTINGS_EMAIL=admin@admin.com
APPSETTINGS_PASSWORD=<强口令>
APPSETTINGS_JWT_SECRET=<openssl rand -base64 32 生成的密钥>
启动后在 http://<服务器IP>:5050/login 登录;桌面/手机客户端在「菜单 → Data → Online sync」填服务器地址与账号即可开启同步(README "Sync desktop or mobile app with Docker" 一节,2026-10-24 查询)。
完整的带健康检查与实测回显的部署流程,见本专栏部署篇《OpenHabitTracker Docker Compose 部署指南》;参数逐项解释见《OpenHabitTracker 1.2.5 配置参数详解》;REST API 的实测用法见《OpenHabitTracker 1.2.5 API 使用详解》。
六、适用场景与限制
6.1 适用场景
- 个人多端效率中枢:桌面(Store 版)+ 手机(Play/App Store 版)+ 浏览器(PWA)三端并用,一台自托管服务器做同步中枢,数据不出家门;
- NAS / 家庭服务器玩家:官方单容器镜像 + SQLite 单文件存储,备份就是拷一个目录,非常适合群晖等 NAS 的 Container Manager 部署(README 专门给出 Synology NAS 部署步骤);
- Markdown 笔记重度用户:从 Google Keep 迁移(官方支持 Takeout ZIP 导入),笔记在列表直读,配合任务与习惯统一管理;
- 反对订阅制与账号绑架的用户:无账号体系、无遥测,GPL-3.0 可自由自用与修改。
6.2 限制与注意
- 单用户模型:官方镜像明确是 "for one user"——家庭/团队多人共用一个实例并不在官方支持范围(每个成员需要各自实例或各自数据目录);
- 社区体量小:303 星、单人维护(2026-10-24 查询),issue 响应与功能诉求的可持续性弱于 Habitica 这类有组织维护的项目;
- 无官方多实例/集群方案:数据层是单文件 SQLite,没有内建的横向扩展或主从复制能力;
- 无官方 SSO/LDAP 集成:认证就是用户名口令 + JWT,企业级身份源接入需要自行改造;
- GPL-3.0:商用分发衍生品需遵守 GPL 义务,与 MIT/Apache 类项目混用时需注意合规。
七、同类选型对比
对比对象选取三类代表性项目:游戏化多端 SaaS 型(Habitica)、移动单机型(Loop Habit Tracker)、自托管轻量型(Beaver Habits)。数据口径:星标/fork 取自 shields.io 徽章接口、版本取自各仓库 releases.atom,均于 2026-10-24 查询。
7.1 量化对比表
| 维度 | OpenHabitTracker | Habitica | Loop Habit Tracker | Beaver Habits |
|---|---|---|---|---|
| 仓库 | Jinjinov/OpenHabitTracker | HabitRPG/habitica | iSoron/uhabits | daya0576/beaverhabits |
| 星标 / fork | 303 / 24 | 14k /(未取) | 10k /(未取) | 1.8k /(未取) |
| 最新版本 | 1.2.5(2026-09-27) | v5.51.0 | v2.3.2 | 2026-07-30 前后(release feed) |
| 技术栈 | C# .NET 10 Blazor | 闭源 SaaS + 客户端 | Android 原生(Kotlin/Java) | Python(FastAPI/HTMX 系) |
| 自托管 | 官方镜像,单容器单用户 | 可自托管但组件重(多服务) | 不适用(单机应用) | 官方镜像,轻量 |
| 客户端覆盖 | Web/Win/Linux/macOS/Android/iOS 六形态 | Web/Android/iOS | 仅 Android | 仅 Web(移动适配) |
| 离线可用 | 是(PWA/本地端全离线) | 弱(在线为主) | 完全离线 | 弱 |
| 多用户 | 否(单用户) | 是(队伍/社交) | 否 | 否 |
| 数据模型 | 笔记+任务+习惯三合一,overdue 计量 | 任务+习惯,游戏化 RPG 激励 | 纯习惯,streak+量化评分 | 纯习惯,日历打卡 |
| 数据导出 | JSON/YAML/TSV/Markdown + Keep 导入 | CSV(有限) | Android 本地备份/CSV | JSON/Markdown |
| 许可证 | GPL-3.0 | GPL-3.0(代码) | GPL-3.0 | MIT |
7.2 社区活跃度与版本节奏解读
- Habitica(14k 星):十年期老项目、有基金会与核心团队,版本号持续滚动;代价是自托管栈重(Web + 客户端 + 数据库多组件)、且产品核心是队伍社交游戏化,单人用户用不到其主体功能;
- Loop Habit Tracker(10k 星):安卓端口碑最好的习惯应用,streak 模型打磨成熟;但它是纯 Android 单机应用,没有服务器同步与桌面端,不适合多端场景;
- Beaver Habits(1.8k 星):2024 年后崛起的轻量自托管打卡应用,理念最接近 OpenHabitTracker(单用户、自托管、日历打卡);但只有 Web 形态、功能面窄(无任务/笔记、无 overdue 计量模型);
- OpenHabitTracker(303 星):绝对热度最小,但功能覆盖面(六端形态 + 三合一数据 + 双计量模型 + 20 语言)在四者中最宽,版本节奏活跃(2026 年 8—9 月三连发)。适合「功能要全、数据要自己拿」的用户;风险是单人维护的长期可持续性。
7.3 「如果……则选……」建议
- 如果你只想要一个 Android 打卡应用,不需要服务器 → Loop Habit Tracker;
- 如果你想要队伍打卡、游戏化激励、不介意数据在云端 → Habitica(官方 SaaS);
- 如果你只需要极简的每日日历打卡 Web 应用 → Beaver Habits;
- 如果你需要自托管 + 多端同步 + 笔记任务习惯三合一 + 数据可全量导出 → OpenHabitTracker;
- 如果你在 OpenHabitTracker 与 Beaver Habits 之间纠结:需要原生客户端(桌面/手机 App)与任务笔记功能选前者;只要 Web 打卡、追求极轻部署选后者。
八、参考链接
- 官方仓库:https://github.com/Jinjinov/OpenHabitTracker
- 官方网站:https://openhabittracker.net
- 在线 PWA:https://pwa.openhabittracker.net
- Releases(版本发布):https://github.com/Jinjinov/OpenHabitTracker/releases
- Docker Hub 镜像:https://hub.docker.com/r/jinjinov/openhabittracker
- GHCR 镜像:https://github.com/Jinjinov/OpenHabitTracker/pkgs/container/openhabittracker
- Flathub:https://flathub.org/apps/net.openhabittracker.OpenHabitTracker
- Snap Store:https://snapcraft.io/openhabittracker
- 竞品仓库:https://github.com/HabitRPG/habitica 、https://github.com/iSoron/uhabits 、https://github.com/daya0576/beaverhabits
本文所有外部数据(版本号、星标数、功能清单、README 引文)查询日期均为 2026-10-24;后续版本演进请以官方仓库为准。