100 lines
2.3 KiB
Markdown
100 lines
2.3 KiB
Markdown
# 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 |