本地开发指南
本文档介绍如何在本地开发和调试 Rin 项目。
快速开始
1. 克隆项目
2. 安装依赖
3. 配置环境变量
4. 启动开发服务器
这将自动完成以下操作:
- ✅ 生成
wrangler.toml配置文件 - ✅ 生成
.dev.vars敏感信息文件 - ✅ 运行数据库迁移
- ✅ 启动开发服务器(端口 11498 - 前后端同源)
访问 http://localhost:11498 即可开始开发!
环境变量配置
所有配置都集中在 .env.local 文件中:
站点配置
:::tip 站点配置(名称、头像、描述、分页大小等)现在通过服务端配置下发,可以在部署后通过设置页面修改。环境变量仅作为默认值使用。
你可以选择性设置以下环境变量:
后端配置
敏感配置(必须)
常用命令
开发工作流
首次设置
- Fork 项目仓库
- 克隆到本地
- 安装依赖:
bun install - 配置
.env.local - 运行
bun run dev
日常开发
- 修改代码
- 前端自动热更新,后端修改后自动重启
- 测试功能
- 提交代码
数据库变更
- 修改
server/src/db/schema.ts - 运行
bun run db:generate生成迁移文件 - 运行
bun run db:migrate应用迁移
测试
项目为客户端和服务端使用了不同的测试框架:
客户端测试 (Vitest)
客户端测试使用 Vitest 配合 jsdom 环境进行 React 组件测试。
测试文件位置:client/src/**/__tests__/*.test.ts
服务端测试 (Bun)
服务端测试使用 Bun 原生测试运行器和内存 SQLite 数据库。
测试文件位置:
- 单元测试:
server/src/**/__tests__/*.test.ts - 集成测试:
server/tests/integration/ - 安全测试:
server/tests/security/
添加新测试
添加新功能时,请包含相应的测试:
- 客户端:在
client/src/**/__tests__/*.test.ts添加测试 - 服务端:在
server/src/**/__tests__/*.test.ts或server/tests/添加测试
API 架构
自定义 API 客户端
项目使用自定义 HTTP 客户端替代 Eden,实现类型安全的 API 通信:
- 位置:
client/src/api/client.ts - 特性:类型安全请求、错误处理、认证令牌管理
- 使用方式:所有 API 调用都通过类型化客户端进行
共享类型 (@rin/api)
@rin/api 包为客户端和服务端提供共享的 TypeScript 类型:
- 位置:
packages/api/ - 用途:API 契约的端到端类型安全
- 使用方式:在客户端和服务端代码中从
@rin/api导入类型
添加新 API 端点时:
- 在
packages/api/src/types.ts中定义类型 - 在
server/src/services/中实现服务端处理器 - 客户端通过共享类型自动获得类型安全
故障排除
端口被占用
如果端口 5173 或 11498 被占用,可以修改 .env.local 中的配置:
数据库迁移失败
配置文件未生成
GitHub OAuth 配置
本地开发时需要配置 GitHub OAuth:
- 访问 https://github.com/settings/developers
- 创建新的 OAuth App
- Authorization callback URL 填写:
http://localhost:11498/user/github/callback - 将 Client ID 和 Client Secret 填入
.env.local
项目结构
生产部署
请参考 部署指南 了解生产环境部署流程。
获取帮助
- 📖 完整文档:https://docs.openrin.org
- 💬 Discord:https://discord.gg/JWbSTHvAPN
- 🐛 提交 Issue:https://github.com/Bad3r/Rin/issues