🚀 Linux Do 社区 CDK (Content Distribution Kit) 快速分享平台
Linux Do CDK 是一个为 Linux Do 社区打造的内容分发工具包,旨在提供快速、安全、便捷的 CDK 分享服务。平台支持多种分发方式,具备完善的用户权限管理和风险控制机制。
- 🔐 OAuth2 认证 - 集成 Linux Do 社区账号系统
- 🎯 多种分发模式 - 支持不同的 CDK 分发策略
- 🛡️ 风险控制 - 完善的信任等级和风险评估系统
- 📊 实时监控 - 详细的分发统计和用户行为分析
- 🎨 现代化界面 - 基于 Next.js 15 和 React 19 的响应式设计
- ⚡ 高性能 - Go 后端 + Redis 缓存 + MySQL 数据库
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Backend │ │ Database │
│ (Next.js) │◄──►│ (Go) │◄──►│ (MySQL/Redis) │
│ │ │ │ │ │
│ • React 19 │ │ • Gin Framework │ │ • MySQL │
│ • TypeScript │ │ • OAuth2 │ │ • Redis Cache │
│ • Tailwind CSS │ │ • OpenTelemetry │ │ • Session Store │
│ • Shadcn UI │ │ • Swagger API │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- Go 1.24 - 主要开发语言
- Gin - Web 框架
- GORM - ORM 框架
- Redis - 缓存和会话存储
- MySQL - 主数据库
- OpenTelemetry - 可观测性
- Swagger - API 文档
- Next.js 15 - React 框架
- React 19 - UI 库
- TypeScript - 类型安全
- Tailwind CSS 4 - 样式框架
- Shadcn UI - 组件库
- Lucide Icons - 图标库
- Go >= 1.24
- Node.js >= 18.0
- MySQL >= 8.0
- Redis >= 6.0
- pnpm >= 8.0 (推荐)
git clone https://github.com/linux-do/cdk.git
cd cdk
复制配置文件并编辑:
cp config.example.yaml config.yaml
编辑 config.yaml
文件,配置数据库连接、Redis、OAuth2 等信息。
# 创建数据库
mysql -u root -p -e "CREATE DATABASE linux_do_cdk CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# 运行迁移(启动后端时会自动执行)
# 安装 Go 依赖
go mod tidy
# 生成 API 文档
make swagger
# 启动后端服务
go run main.go api
cd frontend
# 安装依赖
pnpm install
# 启动开发服务器
pnpm dev
- 前端界面: http://localhost:3000
- API 文档: http://localhost:8000/swagger/index.html
- 健康检查: http://localhost:8000/api/health
配置项 | 说明 | 示例 |
---|---|---|
app.addr |
后端服务监听地址 | :8000 |
oauth2.client_id |
OAuth2 客户端 ID | your_client_id |
database.host |
MySQL 数据库地址 | 127.0.0.1 |
redis.host |
Redis 服务器地址 | 127.0.0.1 |
详细配置说明请参考 config.example.yaml
文件。
# 运行 API 服务器
go run main.go api
# 运行任务调度器
go run main.go scheduler
# 运行工作队列
go run main.go worker
# 生成 Swagger 文档
make swagger
# 代码格式化和检查
make tidy
cd frontend
# 开发模式(使用 Turbopack)
pnpm dev
# 构建生产版本
pnpm build
# 启动生产服务
pnpm start
# 代码检查和格式化
pnpm lint
pnpm format
API 文档通过 Swagger 自动生成,启动后端服务后可访问:
http://localhost:8000/swagger/index.html
GET /api/health
- 健康检查GET /api/oauth2/login
- OAuth2 登录GET /api/projects
- 获取项目列表POST /api/projects
- 创建新项目
# 后端测试
go test ./...
# 前端测试
cd frontend
pnpm test
# 构建镜像
docker build -t linux-do-cdk .
# 运行容器
docker run -d -p 8000:8000 linux-do-cdk
-
构建前端资源:
cd frontend && pnpm build
-
编译后端程序:
go build -o cdk main.go
-
配置生产环境的
config.yaml
-
启动服务:
./cdk api
我们欢迎社区贡献!请在提交代码前阅读:
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/your-feature
) - 提交更改 (
git commit -am 'Add your feature'
) - 推送到分支 (
git push origin feature/your-feature
) - 创建 Pull Request
本项目基于 MIT 许可证 开源。
感谢所有为本项目做出贡献的开发者和 Linux Do 社区的支持!