6bedc1d60d
- drizzle-orm 1.0.0-beta.15 → 0.45.2, drizzle-kit → 0.31.10 - RQBv2 defineRelations() → 旧版 relations() 回调语法 - drizzle-orm/zod → drizzle-zod 独立包 - auth/schema.ts 改由 Better Auth CLI 生成(bun run db:auth) - db/schema/index.ts 选择性导出表(不导出生成文件中的旧版 relations) - 删除 db:push script,强制 db:generate → db:migrate 工作流 - 重建迁移基线(删除旧迁移目录,全新生成初始迁移)
162 lines
5.7 KiB
Markdown
162 lines
5.7 KiB
Markdown
<div align="center">
|
||
|
||
# Kairos
|
||
|
||
**你的人生,不是天数的累积,而是关键时刻的集合。**
|
||
|
||
*古希腊人有两个词来描述时间。**Chronos** —— 钟表上流逝的时间。**Kairos** —— 那个恰好的、决定性的瞬间。这个系统,为后者而造。*
|
||
|
||
[快速开始](#快速开始) · [设计哲学](#设计哲学) · [架构](#架构) · [开发](#开发)
|
||
|
||
</div>
|
||
|
||
---
|
||
|
||
## Kairos 是什么?
|
||
|
||
Kairos 是一个**人生操作系统(Personal Life OS)**—— 一个统一的、自托管的平台,将你生活的每一个维度整合进一个连贯的界面。
|
||
|
||
你的订阅。你的财务。你的身体指标。你的消费习惯。你依赖的服务。你做过的决定。所有构成*你的生活*的一切,目前散落在几十个 App、电子表格、银行客户端和备忘录里 —— 现在,汇聚于此。
|
||
|
||
这不是又一个效率工具,也不是又一个仪表盘。这是你的**人生操作系统**。
|
||
|
||
### 问题
|
||
|
||
现代生活产生海量的个人数据,而我们把它们的控制权拱手让出了:
|
||
|
||
- **财务**分散在互不相通的银行 App 里
|
||
- **订阅服务**悄无声息地扣款,没有任何全局视图
|
||
- **健康数据**被锁在各自的专有平台中
|
||
- **消费行为**被企业追踪,而不是被你自己
|
||
- **人生决策**缺乏足以让答案显而易见的上下文数据
|
||
|
||
你是你一生中需要管理的最复杂的系统,但你没有操作系统。
|
||
|
||
### 回答
|
||
|
||
Kairos 给你一个:
|
||
|
||
| 模块 | 管理内容 |
|
||
|------|---------|
|
||
| **💰 财务** | 银行账户、交易流水、消费分析、预算追踪 |
|
||
| **🔄 订阅** | 所有周期性服务 —— 费用、续期日期、使用频率 |
|
||
| **📊 健康** | 身体指标、习惯、睡眠、营养 —— 你的生物仪表盘 |
|
||
| **📦 资产** | 实体与数字资产、保修信息、生命周期追踪 |
|
||
| **📝 日志** | 决策、复盘、人生事件 —— 你的个人 Changelog |
|
||
| **🔗 集成** | API、数据导入、自动化 —— Kairos 连接你的现有世界 |
|
||
|
||
每个模块都是同一个统一数据层的不同视角。将消费与健康交叉分析,看看哪些订阅你真正在用,理解你的生活方式的真实成本 —— 不是抽象的数字,而是*时间*。
|
||
|
||
## 设计哲学
|
||
|
||
> *"未经审视的人生不值得过。"* —— 苏格拉底
|
||
|
||
Kairos 建立在三个信念之上:
|
||
|
||
**1. 你的数据属于你。**
|
||
自托管,本地优先,不依赖云。你的人生数据永远不会离开你的机器 —— 除非你自己决定。
|
||
|
||
**2. 关联产生洞察。**
|
||
孤立的数据是噪音,关联的数据是洞察。当你的财务、健康和习惯共享同一个数据层时,任何单一应用都无法揭示的规律会自然浮现。
|
||
|
||
**3. 最好的界面,是你为自己构建的。**
|
||
Kairos 是一个有主见的基座,而非一个成品。它被设计为可扩展、可修改、可塑造 —— 以契合你独特生活的轮廓。
|
||
|
||
## 架构
|
||
|
||
Kairos 以现代 Monorepo 架构构建 —— 一个全栈 Web 平台搭配一个 CLI 命令行工具,共享同一套类型安全的 API 层。
|
||
|
||
```
|
||
kairos/
|
||
├── apps/
|
||
│ ├── server/ # 全栈 Web 应用(UI + API)
|
||
│ └── cli/ # 命令行工具
|
||
└── packages/
|
||
└── tsconfig/ # 共享 TypeScript 配置
|
||
```
|
||
|
||
### 技术栈
|
||
|
||
| 层级 | 技术 |
|
||
|------|-----|
|
||
| **运行时** | [Bun](https://bun.sh) |
|
||
| **框架** | [TanStack Start](https://tanstack.com/start)(React 19, SSR) |
|
||
| **数据库** | PostgreSQL + [Drizzle ORM](https://orm.drizzle.team/) |
|
||
| **API** | [ORPC](https://orpc.unnoq.com/)(契约优先,端到端类型安全) |
|
||
| **样式** | [Tailwind CSS](https://tailwindcss.com/) v4 |
|
||
| **构建** | [Turborepo](https://turbo.build/) + [Vite](https://vite.dev/) |
|
||
| **语言** | TypeScript(strict 模式) |
|
||
|
||
### 设计决策
|
||
|
||
- **契约优先的 API**:每个端点都从类型化的契约定义开始,实现紧随其后。从数据库到 UI、从数据库到 CLI —— 端到端类型安全。一份契约,多个消费者。
|
||
- **Web + CLI,同一套 API**:Web 应用是主界面,CLI 调用同一套 ORPC API,让你在终端拥有完整的控制力 —— 脚本编排、自动化、快速数据录入,无需打开浏览器。
|
||
- **编译为单文件**:服务端编译为独立的 Bun 二进制文件 —— 零运行时依赖,瞬时启动,部署极简。
|
||
|
||
## 快速开始
|
||
|
||
### 前置条件
|
||
|
||
- [Bun](https://bun.sh)(具体版本见 `mise.toml`)
|
||
- [PostgreSQL](https://www.postgresql.org/)
|
||
|
||
### 安装
|
||
|
||
```bash
|
||
# 克隆仓库
|
||
git clone git@git-ssh.furtherverse.com:imbytecat/kairos.git
|
||
cd kairos
|
||
|
||
# 安装依赖
|
||
bun install
|
||
|
||
# 配置环境变量
|
||
cp apps/server/.env.example apps/server/.env
|
||
# 编辑 .env,填入数据库连接信息
|
||
|
||
# 初始化数据库(生成迁移 → 应用迁移)
|
||
bun run db:generate --filter=@furtherverse/server
|
||
bun run db:migrate --filter=@furtherverse/server
|
||
|
||
# 启动开发环境
|
||
bun run dev
|
||
```
|
||
|
||
Web 应用将在 `http://localhost:3000` 可用。
|
||
|
||
### 构建
|
||
|
||
```bash
|
||
# 生产构建
|
||
bun run build
|
||
|
||
# 编译为独立二进制文件
|
||
bun run compile
|
||
```
|
||
|
||
## 开发
|
||
|
||
```bash
|
||
bun run dev # 启动所有应用的开发模式
|
||
bun run fix # 代码检查 + 格式化(Biome)
|
||
bun run typecheck # TypeScript 类型检查
|
||
```
|
||
|
||
详细的开发规范请参阅:
|
||
- [`AGENTS.md`](AGENTS.md) — Monorepo 整体约定
|
||
- [`apps/server/AGENTS.md`](apps/server/AGENTS.md) — 服务端架构与模式
|
||
|
||
## 路线图
|
||
|
||
Kairos 处于**早期积极开发阶段**。地基正在铺设 —— 逐模块地,系统将最终覆盖个人数据管理的每一个维度。
|
||
|
||
愿景清晰,架构坚实。剩下的,是执行。
|
||
|
||
---
|
||
|
||
<div align="center">
|
||
|
||
**Kairos** — *抓住那个瞬间*
|
||
|
||
</div>
|