myTinyTodo 1.8.6 介绍与选型指南

myTinyTodo 1.8.6 轻量级 PHP 待办清单应用介绍与选型指南:架构分层、功能特性、官方快速开始、适用场景限制,以及与 Kanboard/Vikunja 的量化选型对比,数据实查于 2026-10-24。

myTinyTodoPHP 应用自托管任务管理2026/10/24

myTinyTodo 1.8.6 介绍与选型指南

目标:面向准备自托管待办清单(To-Do List)服务的读者,系统介绍 myTinyTodo 1.8.6 的定位、架构、功能、部署要求与社区活跃度,并给出与同类自托管任务管理组件的量化选型对比。本文所有版本、星数、发布时间等数据均实查自官方来源,查询日期为 2026-10-24。

一、环境信息

本篇为认知篇,内容基于以下官方来源联网溯源整理,不做本地部署实测(部署实测见安装篇与配置篇):

信息项内容来源查询日期
软件名称myTinyTodo官方网站 https://www.mytinytodo.net/2026-10-24
最新稳定版v1.8.6(2026-10-20 发布)官网 Download 区与 GitHub Releases 页2026-10-24
官方代码仓库https://github.com/maxpozdeev/mytinytodoGitHub 仓库页2026-10-24
开源许可GPL version 2 or any later(GPL-2.0-or-later)源码包内 COPYRIGHT/LICENSE 文件声明2026-10-24
作者与维护方Max Pozdeev(版权声明 2009-2011、2019-2025)源码包内 COPYRIGHT 文件2026-10-24
社区量化指标星数 203 / Fork 数 59 / 28 个开放 Issue / 月均提交约 64 次shields.io 仓库徽章数据2026-10-24

💡 说明:myTinyTodo 的 GitHub 仓库所有者为 maxpozdeev(作者 Max Pozdeev 的 GitHub 用户名),检索时注意不要与其他相近拼写混淆;部分第三方资料中出现的 maxpozdecki 拼写为讹传,该用户名下不存在 myTinyTodo 仓库(shields.io 查询返回 repo not found,查询日期 2026-10-24)。

二、软件概述

myTinyTodo 是一款用 PHP 与 jQuery 编写的开源待办事项清单脚本,官方定位是「Your tiny todo list」(你的迷你待办清单)。它不是项目管理平台,也不是看板工具,而是围绕「多张清单 + 任务条目」这一朴素模型提供的轻量级 Web 应用:一个人(或一个小家庭、小团队)在浏览器里建几张清单、快速记任务、打标签、设截止日期,然后把它忘在服务器上长期运行。

项目的核心气质是「小而完整」:

  • 部署面极小:整个应用解压后约 1.9 MB,是一个纯 PHP 目录,放到任意支持 PHP 的 Web 服务器下即可运行,无 Node、无构建步骤、无后台守护进程。
  • 数据库零门槛:默认使用 SQLite(单文件数据库),也可切换 MySQL/MariaDB 或 PostgreSQL,三选一在安装向导中点选完成。
  • 数据完全自持:所有数据落在自己的数据库里,导出支持 CSV 与 iCalendar,另有 RSS 订阅输出。
  • 寿命很长:项目版权声明横跨 2009-2011 与 2019-2025 两段,2026 年仍保持高频率维护——近 30 天内连发 v1.8.4、v1.8.5、v1.8.6 三个版本,主要工作是跟进 PHP 8.5/8.6 兼容性,属于典型的「活着的祖传好代码」。

官方 README 声明的系统要求如下(查询日期 2026-10-24,来源 github.com/maxpozdeev/mytinytodo):

依赖项要求
PHP7.4 或更高(v1.8.6 已适配 PHP 8.5+ 的 PDO 类弃用告警,v1.8.4 已兼容 PHP 8.6)
PHP 扩展mbstring 必需;SQLite 版需 pdo_sqlite、intl;MySQL 版需 pdo_mysql 或 mysqli;PostgreSQL 版需 pdo_pgsql
数据库MySQL 5.7+ / MariaDB 10.2+ / PostgreSQL 10+ / SQLite(系统库)三选一
浏览器Chrome 49+、Safari 10+、Firefox 53+(不支持 IE 与 Presto 内核 Opera)

三、核心架构

myTinyTodo 是典型的单体 LAMP/LNMP 架构 Web 应用,没有微服务、没有消息队列、没有独立进程。从 v1.8.6 源码包(386,781 字节 tar.gz,md5 8d10584e6ee6d0e85336a3b2abf8684f)的顶层结构可以清晰读出它的分层:

顶层文件/目录职责
index.php前端入口,输出单页应用界面
api.phpJSON API 入口:前端页面的全部数据操作(以及第三方集成)经由 api.php?_path=/... 完成,认证基于 MTT-Token 请求头
settings.php设置保存入口(站点标题、语言、密码、时区、日期格式、扩展管理等)
setup.php安装向导:选择数据库类型(sqlite / mysql / postgres)→ 建表 → 提示删除自身
export.php导出清单为 CSV 或 iCalendar(?format=ical)
feed.php输出清单的 RSS 2.0 订阅源(新任务流)
config.php数据库连接配置(由向导从 config-sample.php 生成:MTT_DB_TYPE/HOST/USER/PASSWORD/NAME/PREFIX/DRIVER + 随机 SALT)
db/SQLite 数据文件默认落点(todolist.db),带 .htaccess 阻止 Web 直接下载
includes/核心类库:class.config.php(设置读写)、class.db.sqlite3.php / class.db.mysql.php / class.db.mysqli.php / class.db.postgres.php(三数据库驱动)、AuthController.php、TasksController.php、ListsController.php、TagsController.php 等 API 控制器
content/前端静态资源(jQuery、jQuery UI、主题,含暗色模式)
ext/、includes/vendor/扩展机制与第三方库(Parsedown、league/commonmark、symfony/polyfill-intl-normalizer)

数据模型同样精简:核心表共 6 张——todolist(任务)、lists(清单)、tags(标签)、tag2task(标签-任务关联)、settings(键值设置)、sessions(会话/令牌)。

💡 技术拓展:myTinyTodo 支持三种数据库后端,选型时可对照下表:

后端原理/特点适用场景
SQLite单文件嵌入库,零外部依赖,随应用目录一起备份个人使用、NAS/小主机、备份即拷文件的场景(myTinyTodo 默认值)
MySQL/MariaDB独立数据库服务,C/S 架构,生态工具多已有 MySQL 实例、多人共用、需要远程管理数据库的场景
PostgreSQL独立数据库服务,标准兼容性好已有 PostgreSQL 技术栈的团队统一运维

myTinyTodo 默认采用 SQLite:单用户待办场景写入频率低,SQLite 的简单性(免装数据库服务、cp 即备份)收益最大;仅在多实例共享或需要数据库侧运维工具时才值得引入独立数据库服务。

前端层面,myTinyTodo 使用 jQuery + jQuery UI 构建单页界面(这是 2009 年立项时的主流选型,至今仍在跟进维护),支持拖拽排序、移动端触控(jQuery UI Touch Punch)、暗色模式(appearance 跟随 system/light/dark)与打印友好样式。任务描述支持两种标记语法:经典 v1 语法与 CommonMark Markdown(基于 league/commonmark 与 Parsedown 实现,设置项 markup 二选一)。

四、功能特性

以下功能清单实查自官网 Features 区与 v1.8.x 发布说明(查询日期 2026-10-24):

  • 多清单管理:任意创建/重命名/删除清单,任务可在清单间移动;内置「All tasks」虚拟清单跨清单浏览。
  • 任务优先级:四级优先级 -1、0、+1、+2,界面以颜色区分。
  • 标签与智能语法(Smart Syntax):新建任务时可用一行语法同时声明优先级、标签与截止日期,格式为 ±priority Task #Tag1 #Tag2 @duedate(如 +1 整理季度周报 #work @2026-10-26),也可关闭后走传统表单录入;支持自动打标签(autotag)。
  • 任务备注:每条任务可附长备注,渲染支持 Markdown。
  • 截止日期:支持到期日选择器、日期格式自定义、精确到时间的到期(exactduedate);日历周起始日可配置。
  • 排序:手动拖拽排序 + 多种自动排序(按优先级/截止日期/创建时间等)。
  • 搜索与过滤:按关键词、#标签 过滤搜索;v1.8.4 起标签云新增「Any tag」过滤并按字母序排列。
  • 密码保护:单口令登录保护整个应用(SHA-256 哈希存储),可设「只读访问口令」与「可写口令」两级。
  • 导出与订阅:单清单导出 CSV / iCalendar(.ics),可直接订阅进日历客户端;新任务 RSS 源(清单需先发布 publish 才输出)。
  • JSON API:api.php 提供任务/清单/标签的完整增删改查 REST 风格接口,适合脚本与第三方集成。
  • 多语言:内置 20+ 语言包(含简繁中文),v1.8.4 更新了中文、德语、波兰语翻译。
  • 外观:亮/暗/跟随系统三种外观、打印友好 CSS、移动端适配。
  • 扩展机制:内置扩展管理(设置页启用/停用,如 Custom CSS 扩展),extensions 数组持久化于设置中。

五、快速开始(最小可用示例)

以下流程整理自官方站点与官方 README(来源:www.mytinytodo.net Download 区、github.com/maxpozdeev/mytinytodo README,查询日期 2026-10-24),是 myTinyTodo 官方给出的最短上线路径。完整的命令级安装步骤(含逐条实测回显、systemd 托管与排障)见安装篇。

  1. 准备 Web 环境:一台装好 PHP 7.4+(含 mbstring、pdo_sqlite、intl 扩展)与 Nginx/Apache 的服务器。

  2. 下载并解压官方包(以 v1.8.6 为例):

    wget https://github.com/maxpozdeev/mytinytodo/releases/download/v1.8.6/mytinytodo-v1.8.6.tar.gz
    tar -C /var/www -xzf mytinytodo-v1.8.6.tar.gz
    
  3. 赋权:将解压出的 mytinytodo/ 目录属主改为 Web 服务运行用户(如 www-data)。

  4. 运行安装向导:浏览器打开 http://<服务器地址>/setup.php,数据库类型选 sqlite,确认建库,出现 Done 即完成。

  5. 安全收尾:按向导提示删除 setup.php,然后进入 settings.php 设置站点标题与访问密码。

💡 说明:安装向导会自动生成 config.php(含随机 MTT_SALT)并在 db/ 目录创建 SQLite 数据文件 todolist.db,全程无需手工编辑配置文件;若要改用 MySQL/PostgreSQL,只需在向导第一步选择对应数据库类型并填入连接信息。

六、适用场景与限制

6.1 适合的场景

  • 个人待办/家庭清单:单用户或两三人共用,GTD 式清单流,追求「打开即用、零运维」。
  • NAS / 低配主机常驻服务:纯 PHP + SQLite,无后台进程,内存占用可忽略,树莓派级设备即可长期运行。
  • 内网轻量协作:小团队共用一张购物清单、值班清单、临时任务板,不需要工作流与权限体系。
  • 需要 API/导出的极简数据源:想用脚本写任务、用日历客户端订阅截止日期、用 RSS 盯新任务的自动化玩家。

6.2 不适合的场景与限制

  • 需要看板/甘特图/工作流的项目管理:myTinyTodo 没有泳道、状态机、多用户角色,此类需求应选 Kanboard/Vikunja/OpenProject 一类。
  • 多用户协作与权限隔离:只有单口令保护,没有独立账号体系;所有登录者共享全部数据。
  • 超大任务量:定位为个人清单工具,数万条任务的搜索与列表性能未做优化承诺。
  • 官方不提供官方容器镜像:截至 2026-10-24,官方发布渠道仅有源码 tar 包,部署需自建 PHP 运行环境(社区有第三方镜像,本文档以源码部署为准)。
  • 无 CLI 工具:日常管理与集成走 Web UI 与 JSON API,没有官方命令行客户端。

七、同类选型对比

在自托管待办/任务管理领域,myTinyTodo 的同类项大致分三档:极简清单(myTinyTodo、Nullboard、Tasks.md)、PHP 看板(Kanboard)、全功能任务管理(Vikunja)。下表给出量化对比数据(星数与最近提交来自 shields.io 仓库徽章,查询日期 2026-10-24;myTinyTodo 版本节奏来自 GitHub Releases 页)。

维度myTinyTodo 1.8.6KanboardVikunja
GitHub 星数2039.9k5.8k
最近提交2026-10-21(查询日 3 天前)查询日前 1 天查询日当天
月均提交~64 次活跃活跃
最新版本v1.8.6(2026-10-20)持续发版持续发版
近 30 天发版3 个版本(v1.8.4/1.8.5/1.8.6)——
实现语言PHP + jQueryPHPGo + Vue
数据库支持SQLite / MySQL / PostgreSQLSQLite / MySQL / PostgreSQLSQLite / MySQL / PostgreSQL
形态定位单用户多清单待办多项目看板(Kanban)多用户全功能任务管理(清单+看板+甘特)
用户模型单口令,无账号体系多用户 + 权限多用户 + 团队
资源占用极低(无独立进程)低中(Go 静态二进制,较低)
部署复杂度解压即用 + 安装向导低(PHP 应用)低(单二进制)

stars last commit tag

选型解读:

  • 星数差距(203 vs 9.9k vs 5.8k)反映的是赛道差异而非质量差距:Kanboard/Vikunja 服务「团队项目管理」,用户基数天然大;myTinyTodo 服务「个人清单」,受众小但精准。
  • 论维护活跃度,myTinyTodo 当前处于罕见的高产期——近 30 天连发 3 版且每版都有实质修复(PHP 8.6 兼容、PostgreSQL 导出修复),对 2026 年新装的 PHP 8.x 环境兼容性友好,不存在「祖传代码装不上新 PHP」的风险。
  • 如何选:只要一个人记任务、要最低资源占用和最短部署路径 → myTinyTodo;要泳道看板与多项目视图 → Kanboard;要多用户协作、团队权限、跨端 App → Vikunja;想试极简但接受「单文件 HTML + 本地存储」形态的可看 Nullboard/Tasks.md 一类零后端方案(此二者为纯前端应用,无服务端数据 API,与 myTinyTodo 不完全同类)。

八、参考链接