mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-01 14:46:36 +08:00
8.6 KiB
8.6 KiB
LINUX DO Credit
🚀 Linux Do 社区 Credit 积分服务平台
📖 项目简介
LINUX DO Credit 是一个为 Linux Do 社区打造的积分服务平台,旨在提供一系列积分相关服务,为社区开发者提供积分流转基础框架。
✨ 主要特性
- 🔐 OAuth2 认证 - 集成 Linux Do 社区账号系统
- 🛡️ 风险控制 - 完善的信任等级和风险评估系统
- 📊 实时监控 - 详细的分发统计和用户行为分析
- 🎨 现代化界面 - 基于 Next.js 16 和 React 19 的响应式设计
- ⚡ 高性能 - Go 后端 + Redis 缓存 + PostgreSQL 数据库
🏗️ 架构概览
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Backend │ │ Database │
│ (Next.js) │◄──►│ (Go) │◄──►│ (PostgreSQL) │
│ │ │ │ │ │
│ • React 19 │ │ • Gin Framework │ │ • PostgreSQL │
│ • TypeScript │ │ • OAuth2 │ │ • Redis Cache │
│ • Tailwind CSS │ │ • Session Store │ │ │
│ • Shadcn UI │ │ • OpenTelemetry │ │ │
│ │ │ • Swagger API │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
🛠️ 技术栈
后端
- Go 1.25.5 - 主要开发语言
- GIN - Web 框架
- GORM - ORM 框架
- Redis - 缓存和会话存储
- PostgreSQL - 主数据库
- OpenTelemetry - 可观测性
- Swagger - API 文档
前端
- Next.js 16 - React 框架
- React 19 - UI 库
- TypeScript - 类型安全
- Tailwind CSS 4 - 样式框架
- Shadcn UI - 组件库
- Lucide Icons - 图标库
📋 环境要求
- Go >= 1.25.5
- Node.js >= 18.0
- PostgreSQL >= 18
- Redis >= 6.0
- pnpm >= 8.0 (推荐)
🚀 快速开始
1. 克隆项目
git clone https://github.com/linux-do/credit.git
cd credit
2. 配置环境
复制配置文件并编辑:
cp config.example.yaml config.yaml
编辑 config.yaml 文件,配置数据库连接、Redis、OAuth2 等信息。
3. 初始化数据库
# 创建数据库
createdb -h <主机> -p 5432 -U postgres linux_do_credit
# 如果需要指定字符集,可使用
# psql -h <主机> -p 5432 -U postgres -c "CREATE DATABASE linux_do_credit WITH ENCODING 'UTF8' LC_COLLATE='zh_CN.UTF-8' LC_CTYPE='zh_CN.UTF-8' TEMPLATE template0;"
# 运行迁移(启动后端时会自动执行)
4. 启动后端
# 安装 Go 依赖
go mod tidy
# 生成 API 文档
make swagger
# 启动后端服务
go run main.go api
5. 启动前端
cd frontend
# 安装依赖
pnpm install
# 启动开发服务器
pnpm dev
6. 访问应用
- 前端界面: 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 |
PostgreSQL 数据库地址 | 127.0.0.1 |
database.port |
PostgreSQL 数据库端口 | 5432 |
database.username |
PostgreSQL 数据库用户名 | postgres |
database.password |
PostgreSQL 数据库密码 | password |
database.database |
PostgreSQL 数据库名称 | linux_do_credit |
database.ssl_mode |
PostgreSQL SSL 模式 | disable |
database.application_name |
PostgreSQL 应用标识 | credit-server |
database.search_path |
PostgreSQL 搜索路径 | public |
database.default_query_exec_mode |
SQL 缓存模式 | cache_statement |
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 文档
API 文档通过 Swagger 自动生成,启动后端服务后可访问:
http://localhost:8000/swagger/index.html
🧪 测试
# 后端测试
go test ./...
# 前端测试
cd frontend
pnpm test
🚀 部署
Docker 部署
# 构建镜像
docker build -t linux-do-credit .
# 运行容器
docker run -d -p 8000:8000 linux-do-credit
生产环境部署
-
构建前端资源:
cd frontend && pnpm build -
编译后端程序:
go build -o credit main.go -
配置生产环境的
config.yaml -
启动服务:
./credit api
🤝 贡献指南
我们欢迎社区贡献!请在提交代码前阅读:
提交流程
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/your-feature) - 提交更改 (
git commit -am 'Add your feature') - 推送到分支 (
git push origin feature/your-feature) - 创建 Pull Request
📄 许可证
本项目基于 Apache2.0 许可证 开源。
🔗 相关链接
❤️ 致谢
感谢所有为本项目做出贡献的开发者和 Linux Do 社区的支持!