Show HN:Edi Life OS——带 MCP 服务器、可自托管的个人生活仪表盘
英文标题:🔶 Show HN: Edi Life OS – self-hosted life dashboard with an MCP server for AI
Edi Life OS 是一款可自托管的个人生活管理仪表盘,将待办、习惯、目标、财务、番茄钟、笔记和日历等十个工作区整合到同一套 PHP + MySQL 应用中。它提供可选 MCP 服务器,通过 26 个工具让 Claude 等 AI 助手读取仪表盘、规划目标、记录习惯和追踪开支。项目强调数据私有、无订阅和无供应商锁定,可部署在低成本共享主机、Docker 或本地 PHP 环境中。对于开发者而言,其独立 Token 保护的 HTTP API、Node.js stdio MCP 服务及 MIT 许可证,便于将个人数据与 AI Agent 工作流连接起来。
1.7 KB
63.7 KB
64.6 KB
57.4 KB
45.3 KB
45.1 KB
105.5 KB
中文
大多数人分别用待办应用、习惯追踪器、预算表格、番茄钟和笔记应用管理生活——但这些工具彼此并不了解。Edi Life OS 将这一切汇集到一个平静、私密的仪表盘中,并把你今天完成的小事与你希望人生前进的方向连接起来。
- 一处管理所有内容。 十个工作区共用一套设计、一次登录和一个数据库。
- 彼此连接,而非简单汇集。 习惯会推动目标进度,Kanban 卡片会显示在日历中,Overview 会将一切汇总为每日评分。
- 真正属于你。 可运行在任何 PHP + MySQL 主机上,甚至是低价共享主机。没有订阅、没有追踪、没有供应商锁定。
- 为 AI 准备。 内置 MCP 服务器可让 Claude 及其他助手读取你的仪表盘、规划目标、记录习惯并追踪开支。
Growth —— 六个生活维度,每个维度均关联长期目标、SMART 目标、习惯和任务。提供引导式的每周、每月和每季度回顾。 |
Focus —— 带休息时间的番茄钟会话、内置专注配乐,以及会随一天中时间变化的景观。 |
|---|---|
Habittify —— 每日微习惯、连续记录,以及反映你坚持程度的七日视图。 |
Kanban —— 支持标签、优先级、截止日期、清单、评论和附件的看板。 |
全部十个工作区
| 工作区 | 你可以做什么 |
|---|---|
| Overview | 实时生产力评分、专注与习惯趋势、目标、财务及七天天气预报。 |
| Growth | 将六个生活维度关联到长期目标、SMART 目标、习惯和任务。进行每周、每月或每季度回顾。指南 |
| Focus | 带短休息和长休息的定时会话、会话历史记录及专注配乐。 |
| Finance | 以 Toman 记录支出、收入和预算。记录你欠他人的债务及他人欠你的款项,支持一次性或周期性项目,并直接写入账本。指南 |
| Habittify | 提供完成状态、连续记录和月度进展的每日习惯。 |
| Kanban | 支持拖拽的卡片和列表,具有优先级、标签、日期、清单、评论和文件附件。 |
| Calendar | 以月视图或日程视图查看所有看板中的到期卡片和财务应付款项。 |
| Goals | 带衡量指标、截止日期、优先级和清单的 SMART 目标,或由某个习惯推动进度的目标。 |
| Notepad | 支持预览和导出的 Markdown 笔记。 |
| Notes | 支持颜色、字体和关联关系的便签。 |
日期遵循 Asia/Tehran 时区。天气卡片通过 Open-Meteo 显示格什姆岛天气;其中潮汐数值为模型估算,不可用于航海。
用 AI 与你的 Life OS 对话
Edi Life OS 附带一个可选的 MCP 服务器,在你的仪表盘、目标、任务、习惯、财务和笔记中提供 26 个工具。将它连接至 Claude Desktop、Claude Code 或任何 MCP 客户端,然后用自然语言提出请求:
“显示我的 LifeOS 仪表盘。”
“创建一个名为 Build a home studio 的 SMART 目标,截止日期为三个月后,并添加 Buy acoustic panels 作为任务。”
“将今天的 Reading 标记为完成。”
“记录一笔 450,000 Toman 的餐饮支出,并显示我的余额。”
MCP 服务器仅通过受 Token 保护的 HTTP API 与应用通信。它绝不会接触你的数据库或凭据。设置只需一分钟——详见下方 MCP 服务器部分。
使用 Docker(推荐)
git clone https://github.com/edrisranjbar/lifeos.git && cd lifeos
cp .env.example .env # set your sign-in and passwords
docker compose up -d
打开 localhost:8080 并登录。MySQL、应用及你的附件各自存储在独立卷中,因此在执行 git pull 后运行 docker compose up -d --build 即可升级,而不会丢失数据。
从最新发布版本下载 lifeos-<version>.zip,并将其解压到你的托管账户主目录,使 public_html/ 成为 Web 根目录,而后端则安全地位于其上级目录。将 config.example.php 复制为 config.php,填入 MySQL 详细信息,然后打开你的网站。详见部署指南。
你需要 PHP 8.1+(包含 pdo_mysql 和 mbstring)以及 MySQL 8+(或 MariaDB 10.4+)。
git clone https://github.com/edrisranjbar/lifeos.git
cd lifeos
cp config.example.php config.php # PowerShell: Copy-Item config.example.php config.php
在 config.php 中编辑数据库连接信息,以及你想用于登录的用户名和密码,然后启动服务器:
php -S localhost:8000 -t public_html server.php
打开 localhost:8000 并登录。首次使用时会创建数据库和表。之后可以在 Settings 中更改登录信息。
重要提示
config.php 和 .env 保存真实凭据,且已被 gitignore 排除。绝不要提交它们。
| 组件 | 要求 |
|---|---|
| PHP | 包含 pdo_mysql 和 mbstring 的 8.1+ 版本 |
| 数据库 | MySQL 8+;也已通过 MariaDB 10.4 测试 |
| Web 服务器 | 本地使用 PHP 内置服务器;托管环境使用带重写规则的 Apache |
| 天气 | PHP curl 和出站 HTTPS |
| MCP 服务器 | 可选:Node.js 22.9+ |
| API 测试 | 可选:pdo_sqlite |
私有的 /api/v1 API 覆盖仪表盘、目标、任务、习惯、财务和便签。它使用独立于浏览器登录的专属 bearer token。
php -r "echo bin2hex(random_bytes(32));"
将输出结果设置为 config.php 中的 api_token(或设置 LIFEOS_API_TOKEN 环境变量),然后:
curl -H "Authorization: Bearer $LIFEOS_API_TOKEN" https://your-host/api/v1/dashboard
有关端点、载荷和错误信息,请参阅 API 参考文档。
cd mcp
npm ci
cp .env.example .env # set LIFEOS_BASE_URL and LIFEOS_API_TOKEN
npm start
服务器通过 stdio 运行;没有托管的 MCP 端点。MCP 指南列出了全部工具,并展示了 Claude 和 Codex 的客户端配置。
- 所有内容均存储在你的 MySQL 数据库中。习惯使用专用数据表;其他工作区则将 JSON 文档存储在
app_state中。 - 保存操作使用版本检查,因此过期标签页不会在静默状态下覆盖较新的更改。API 写入使用事务和行锁。
- 来自旧版纯浏览器版本的数据会被一次性导入;冲突副本将作为
legacy_backup_*记录归档。 - 请同时备份数据库、附件文件和配置。
从旧版 Habittify SQLite 数据库迁移?请参阅迁移 Habittify。
Edi Life OS 专为单个所有者构建。
-
API Token 对所有受支持领域均授予读写访问权限。目前尚未实现 Token 范围限制和应用级速率限制,因此请在托管层设置请求限制。
-
除 localhost 外,请在任何环境使用 HTTPS,并避免将 Token 放入 URL、前端代码、截图和日志中。
-
默认情况下,私密笔记不会通过 API 读取。私密标记控制的是可见性,而非独立加密。
public_html/ 浏览器工作区、共享资源和 Apache 入口点 lib/ API 领域、响应辅助工具和状态事务 mcp/ 可选的 Node.js stdio MCP 服务器 tests/ 计时器、API、MySQL 和集成检查 docs/ 指南,以及 docs/media 中的 README 截图 config.example.php 配置模板(不含真实凭据) server.php 开发路由器和应用路由 api.php HTTP API 入口点
采用 PHP、MySQL 和原生 JavaScript 构建——没有前端构建步骤,也没有框架。
Dockerfile、docker-compose.yml 和 docker/config.php 使用环境变量中的配置运行应用。
MIT © 2026 Edris Ranjbar。你可以使用、Fork 并在此基础上继续构建。
欢迎提出想法、提交 Bug 报告和 Pull Request。请阅读贡献指南完成环境设置;如果希望从容易的任务开始,可查看 good first issue。
如果 Edi Life OS 帮助你管理好每天的生活,欢迎给它一个 ⭐——这能帮助更多人发现它。
English / 原文
Most of us run our lives across a to-do app, a habit tracker, a budgeting spreadsheet, a Pomodoro timer and a notes app — and none of them know about each other. Edi Life OS puts all of it in one calm, private dashboard and connects the small things you do today to the direction you want your life to take.
- Everything in one place. Ten workspaces share one design, one sign-in and one database.
- Connected, not just collected. Habits drive goal progress, Kanban cards show up in the calendar, and the Overview turns it all into one daily score.
- Yours. Runs on any PHP + MySQL host, even cheap shared hosting. No subscription, no tracking, no vendor lock-in.
- AI-ready. A built-in MCP server lets Claude and other assistants read your dashboard, plan goals, log habits and track expenses for you.
Growth — Six life dimensions, each linked to long-term goals, SMART goals, habits and tasks. Guided weekly, monthly and quarterly reviews. |
Focus — Pomodoro sessions with breaks, a built-in focus soundtrack and a landscape that follows the time of day. |
|---|---|
Habittify — Small daily habits, streaks and a seven-day picture of your consistency. |
Kanban — Boards with labels, priorities, due dates, checklists, comments and attachments. |
| All ten workspaces | |
| Workspace | What you can do |
| --- | --- |
| Overview | A live productivity score, focus and habit trends, goals, finances and a seven-day weather forecast. |
| Growth | Connect six life dimensions to long-term goals, SMART goals, habits and tasks. Run weekly, monthly or quarterly reviews. Guide |
| Focus | Timed sessions with short and long breaks, session history and a focus soundtrack. |
| Finance | Expenses, income and budgets in Toman. Debts you owe and credits owed to you, one-time or recurring, recorded straight into the ledger. Guide |
| Habittify | Daily habits with completion, streaks and monthly progress. |
| Kanban | Draggable cards and lists with priorities, labels, dates, checklists, comments and file attachments. |
| Calendar | Due cards and financial dues across all boards in Month or Schedule view. |
| Goals | SMART goals with measures, deadlines, priorities, checklists — or progress driven by a habit. |
| Notepad | Markdown notes with preview and export. |
| Notes | Sticky notes with colors, fonts and connections. |
Dates follow Asia/Tehran. The weather card shows Qeshm Island via Open-Meteo; its tide figure is a modeled estimate, not for navigation.
Talk to your Life OS with AI
Edi Life OS ships with an optional MCP server that exposes 26 tools across your dashboard, goals, tasks, habits, finances and notes. Connect it to Claude Desktop, Claude Code or any MCP client and ask in plain language:
"Show me my LifeOS dashboard."
"Create a SMART goal called Build a home studio, due in three months, and add Buy acoustic panels as a task."
"Mark Reading complete for today."
"Log a 450,000 Toman food expense and show my balance."
The MCP server talks to your app only through its token-protected HTTP API. It never touches your database or credentials. Setup takes a minute — see MCP server below.
With Docker (recommended)
git clone https://github.com/edrisranjbar/lifeos.git && cd lifeos
cp .env.example .env # set your sign-in and passwords
docker compose up -d
Open localhost:8080 and sign in. MySQL, the app and your attachments each live in their own volume, so docker compose up -d --build after a git pull upgrades without losing data.
Download lifeos-<version>.zip from the latest release and extract it into your hosting home directory , so public_html/ becomes your web root and the backend sits safely above it. Copy config.example.php to config.php, fill in your MySQL details, and open your site. See the deployment guide for details.
You need PHP 8.1+ (with pdo_mysql and mbstring) and MySQL 8+ (or MariaDB 10.4+).
git clone https://github.com/edrisranjbar/lifeos.git
cd lifeos
cp config.example.php config.php # PowerShell: Copy-Item config.example.php config.php
Edit config.php with your database connection and the username and password you want to sign in with, then start the server:
php -S localhost:8000 -t public_html server.php
Open localhost:8000 and sign in. The database and tables are created on first use. You can change your sign-in later in Settings.
Important
config.php and .env hold real credentials and are gitignored. Never commit them.
| Component | Requirement |
|---|---|
| PHP | 8.1+ with pdo_mysql and mbstring |
| Database | MySQL 8+ ; also tested with MariaDB 10.4 |
| Web server | PHP's built-in server locally; Apache with rewrites for hosting |
| Weather | PHP curl and outbound HTTPS |
| MCP server | Optional: Node.js 22.9+ |
| API tests | Optional: pdo_sqlite |
A private /api/v1 API covers the dashboard, goals, tasks, habits, finances and sticky notes. It uses its own bearer token, separate from your browser sign-in.
php -r "echo bin2hex(random_bytes(32));"
Set the result as api_token in config.php (or the LIFEOS_API_TOKEN environment variable), then:
curl -H "Authorization: Bearer $LIFEOS_API_TOKEN" https://your-host/api/v1/dashboard
See the API reference for endpoints, payloads and errors.
cd mcp
npm ci
cp .env.example .env # set LIFEOS_BASE_URL and LIFEOS_API_TOKEN
npm start
The server runs over stdio ; there is no hosted MCP endpoint. The MCP guide lists every tool and shows client configuration for Claude and Codex.
- Everything lives in your MySQL database. Habits use dedicated tables; other workspaces store JSON documents in
app_state. - Saves use revision checks, so a stale tab can't silently overwrite newer changes. API writes use transactions and row locks.
- Data from older browser-only versions is imported once; conflicting copies are archived as
legacy_backup_*records. - Back up the database, attachment files and your configuration together.
Moving from the old Habittify SQLite database? See migrating Habittify.
Edi Life OS is built for a single owner.
-
The API token grants read and write access to every supported domain. Token scopes and app-level rate limiting are not implemented, so set request limits at the hosting layer.
-
Use HTTPS anywhere other than localhost, and keep tokens out of URLs, frontend code, screenshots and logs.
-
Secret notes are hidden from API reads by default. The secret flag controls visibility; it is not separate encryption.
public_html/ Browser workspaces, shared assets and Apache entry points lib/ API domains, response helpers and state transactions mcp/ Optional Node.js stdio MCP server tests/ Timer, API, MySQL and integration checks docs/ Guides, plus README screenshots in docs/media config.example.php Configuration template (no real credentials) server.php Development router and application routing api.php HTTP API entry point
Built with PHP, MySQL and vanilla JavaScript — no frontend build step, no framework.
Dockerfile, docker-compose.yml and docker/config.php run the app with configuration from environment variables.
MIT © 2026 Edris Ranjbar. Use it, fork it and build on it.
Ideas, bug reports and pull requests are welcome. Read the contributing guide to get set up, and look for good first issue if you want somewhere to start.
If Edi Life OS helps you run your days, consider giving it a ⭐ — it helps others find it.



