
Show HN: Edi Life OS – self-hosted life dashboard with an MCP server for AI
One self-hosted home for your focus, habits, goals, money and projects — with an MCP server so your AI assistant can work alongside you.
以下正文同步自 Hacker News,版权归原站所有,已转换为易读排版。
One self-hosted home for your focus, habits, goals, money and projects — with an MCP server so your AI assistant can work alongside you.
Quick start · Tour · AI / MCP · Deploy · API
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.
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.
Dates follow Asia/Tehran. The weather card shows Qeshm Island via Open-Meteo; its tide figure is a modeled estimate, not for navigation.
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:
"Create a SMART goal called Build a home studio, due in three months, and add Buy acoustic panels as a task."
"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.
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
API and integrations
HTTP API
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.
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.
API reference — authentication, routes, data formats and concurrency
MCP guide — tools, environment settings and client setup
Deployment guide — Apache, shared hosting, backups and migration
Development guide — local checks and disposable integration fixtures
Growth workspace · Debts and credits
License
MIT © 2026 Edris Ranjbar. Use it, fork it and build on it.
Ideas, bug reports and pull requests are welcome. Open an issue to start a conversation, and see the development guide to run the checks locally.
If Edi Life OS helps you run your days, consider giving it a ⭐ — it helps others find it.
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。