catalog/repos/ahmed-lotfy-dev--elysia-core-backend.md

100 lines
2.3 KiB
Markdown
Raw Permalink Normal View History

2026-04-07 11:44:56 +08:00
# Elysia后端脚手架
`Bun` `Elysia` `后端` `脚手架` `ORM` `认证` `MCP`
# Elysia 核心后端(技能)
脚手架一个最小化、生产就绪的 Bun + Elysia 后端,集成 Better Auth、Drizzle ORM、Postgres、MCP 端点、OpenAPI 文档、CORS 和安全默认配置。不含业务逻辑,仅提供基础设施。
## 安装
```bash
npx skills add ahmed-lotfy-dev/elysia-core-backend --skill elysia-core-backend
```
## 技能功能说明
- 使用官方生成器生成干净的 Elysia 服务器脚手架
- 添加带有 Drizzle 适配器和最小认证 schema 的 Better Auth
- 配置 Drizzle ORM 与 Postgres
- 添加 MCP 插件及示例 `health` 工具
-`/docs` 启用 OpenAPI 文档
- 配置 CORS 白名单、CSRF 保护和安全响应头
- 提供基础路由:`/``/health``/api/csrf``/api/auth/*``/mcp`
## 生成的文件结构
```
server/
src/
index.ts
auth.ts
middleware/
auth-middleware.ts
logger.ts
csrf.ts
security-headers.ts
db/
db.ts
auth-schema.ts
mcp/
index.ts
tools/
health.ts
routes/
health.ts
lib/
env.ts
drizzle.config.ts
drizzle/
package.json
tsconfig.json
.env
```
## 环境要求
- Bun 运行时
- Postgres 数据库
- Better Auth 密钥及第三方提供商密钥
## 环境变量
```
DATABASE_URL=postgres://user:pass@host:5432/db
BETTER_AUTH_SECRET=your-generated-secret
BETTER_AUTH_URL=http://localhost:8000
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-client-secret
FRONTEND_URL=http://localhost:3000
NODE_ENV=development
```
## 默认脚本
```
"scripts": {
"dev": "bun run --watch src/index.ts",
"build": "bun build src/index.ts --outdir dist --target bun",
"start": "bun dist/index.js",
"db:generate": "drizzle-kit generate",
"db:migrate": "drizzle-kit migrate",
"db:studio": "drizzle-kit studio"
}
```
## 使用示例
向 Codex 提问,例如:
- "用 Better Auth、Drizzle、Postgres、MCP 和 OpenAPI 搭建一个 Bun + Elysia 后端。使用 Elysia Core Backend 技能。"
- "为新的 Elysia 服务器添加 Better Auth + Drizzle + MCP 脚手架。"
## 注意事项
- MCP 服务器必须通过 `elysia-mcp` 插件挂载,而非直接使用原始的 `McpServer` 实例。
- 使用 cookie 认证时,非认证路由会强制执行 CSRF 校验。
## 许可证
MIT