edrisranjbar/lifeos: Self-hosted life OS: habits, objectives, Kanban, finance and focus, with an MCP server for AI. · GitHub

Most of us run our lives throughout a to-do app, a behavior tracker, a budgeting spreadsheet, a Pomodoro timer and a notes app — and none of them learn about one another. Edi Life OS places all of it in a single calm, personal dashboard and connects the small stuff you do right now to the path you need your life to take.
- Everything in a single place. Ten workspaces share one design, one sign-in and one database.
- Connected, not simply collected. Habits drive objective progress, Kanban playing cards present up within the calendar, and the Overview turns all of it into one each day rating.
- Yours. Runs on any PHP + MySQL host, even low-cost shared internet hosting. No subscription, no monitoring, no vendor lock-in.
- AI-ready. A built-in MCP server lets Claude and different assistants learn your dashboard, plan objectives, log habits and observe bills for you.
All ten workspaces
| Workspace | What you are able to do |
|---|---|
| Overview | A stay productiveness rating, focus and behavior tendencies, objectives, funds and a seven-day climate forecast. |
| Growth | Connect six life dimensions to long-term objectives, SMART objectives, habits and duties. Run weekly, month-to-month or quarterly opinions. Guide |
| Focus | Timed periods with brief and lengthy breaks, session historical past and a spotlight soundtrack. |
| Finance | Expenses, revenue and budgets in Toman. Debts you owe and credit owed to you, one-time or recurring, recorded straight into the ledger. Guide |
| Habittify | Daily habits with completion, streaks and month-to-month progress. |
| Kanban | Draggable playing cards and lists with priorities, labels, dates, checklists, feedback and file attachments. |
| Calendar | Due playing cards and monetary dues throughout all boards in Month or Schedule view. |
| Goals | SMART objectives with measures, deadlines, priorities, checklists — or progress pushed by a behavior. |
| Notepad | Markdown notes with preview and export. |
| Notes | Sticky notes with colours, fonts and connections. |
Dates observe Asia/Tehran. The climate card reveals Qeshm Island through Open-Meteo; its tide determine is a modeled estimate, not for navigation.
Edi Life OS ships with an non-compulsory MCP server that exposes 26 instruments throughout your dashboard, objectives, duties, habits, funds and notes. Connect it to Claude Desktop, Claude Code or any MCP shopper and ask in plain language:
“Show me my LifeOS dashboard.”
“Create a SMART objective referred to as Build a house studio, due in three months, and add Buy acoustic panels as a job.”
“Mark Reading full for right now.”
“Log a 450,000 Toman meals expense and present my steadiness.”
The MCP server talks to your app solely by way of its token-protected HTTP API. It by no means touches your database or credentials. Setup takes a minute — see MCP server under.
git clone https://github.com/edrisranjbar/lifeos.git && cd lifeos
cp .env.instance .env # set your sign-in and passwords
docker compose up -d
Open localhost:8080 and sign up. MySQL, the app and your attachments every stay in their very own quantity, so docker compose up -d --build after a git pull upgrades with out dropping information.
Download lifeos- from the latest release and extract it into your internet hosting residence listing, so public_html/ turns into your net root and the backend sits safely above it. Copy config.instance.php to config.php, fill in your MySQL particulars, and open your web site. See the deployment guide for particulars.
You want 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.instance.php config.php # PowerShell: Copy-Item config.instance.php config.php
Edit config.php along with your database connection and the username and password you wish to sign up with, then begin the server:
php -S localhost:8000 -t public_html server.php
Open localhost:8000 and sign up. The database and tables are created on first use. You can change your sign-in later in Settings.
Important
config.php and .env maintain actual credentials and are gitignored. Never commit them.
| Component | Requirement |
|---|---|
| PHP | 8.1+ with pdo_mysql and mbstring |
| Database | MySQL 8+; additionally examined with MariaDB 10.4 |
| Web server | PHP’s built-in server regionally; Apache with rewrites for internet hosting |
| Weather | PHP curl and outbound HTTPS |
| MCP server | Optional: Node.js 22.9+ |
| API exams | Optional: pdo_sqlite |
A personal /api/v1 API covers the dashboard, objectives, duties, habits, funds and sticky notes. It makes use of its personal bearer token, separate out of your browser sign-in.
php -r "echo bin2hex(random_bytes(32));"
Set the consequence as api_token in config.php (or the LIFEOS_API_TOKEN atmosphere 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.instance .env # set LIFEOS_BASE_URL and LIFEOS_API_TOKEN
npm begin
The server runs over stdio; there isn’t a hosted MCP endpoint. The MCP guide lists each instrument and reveals shopper configuration for Claude and Codex.
- Everything lives in your MySQL database. Habits use devoted tables; different workspaces retailer JSON paperwork in
app_state. - Saves use revision checks, so a stale tab cannot silently overwrite newer modifications. API writes use transactions and row locks.
- Data from older browser-only variations is imported as soon as; conflicting copies are archived as
legacy_backup_*information. - Back up the database, attachment information and your configuration collectively.
Moving from the outdated Habittify SQLite database? See migrating Habittify.
Edi Life OS is constructed for a single proprietor.
- The API token grants learn and write entry to each supported area. Token scopes and app-level price limiting will not be carried out, so set request limits on the internet hosting layer.
- Use HTTPS anyplace apart from localhost, and maintain tokens out of URLs, frontend code, screenshots and logs.
- Secret notes are hidden from API reads by default. The secret flag controls visibility; it’s not separate encryption.
public_html/ Browser workspaces, shared property and Apache entry factors
lib/ API domains, response helpers and state transactions
mcp/ Optional Node.js stdio MCP server
exams/ Timer, API, MySQL and integration checks
docs/ Guides, plus README screenshots in docs/media
config.instance.php Configuration template (no actual credentials)
server.php Development router and utility routing
api.php HTTP API entry level
Built with PHP, MySQL and vanilla JavaScript — no frontend construct step, no framework.
Dockerfile, docker-compose.yml and docker/config.php run the app with configuration from atmosphere variables.
MIT © 2026 Edris Ranjbar. Use it, fork it and construct on it.
Ideas, bug reviews and pull requests are welcome. Open an issue to start out a dialog, and see the development guide to run the checks regionally.
If Edi Life OS helps you run your days, take into account giving it a ⭐ — it helps others discover it.



