Files
OpenFlare/README_zh.md
T
2026-06-08 20:34:27 +08:00

8.6 KiB
Raw Blame History

LINUX DO Credit

🚀 Linux Do 社区 Credit 积分服务平台

English

License: Apache2.0 Go Version Next.js React

GitHub release GitHub stars GitHub forks GitHub issues GitHub pull requests GitHub contributors

Backend Build Frontend Build Docker Build CodeQL ESLint

📖 项目简介

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
  • 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. 访问应用

⚙️ 配置说明

主要配置项

配置项 说明 示例
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

生产环境部署

  1. 构建前端资源:

    cd frontend && pnpm build
    
  2. 编译后端程序:

    go build -o credit main.go
    
  3. 配置生产环境的 config.yaml

  4. 启动服务:

    ./credit api
    

🤝 贡献指南

我们欢迎社区贡献!请在提交代码前阅读:

提交流程

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/your-feature)
  3. 提交更改 (git commit -am 'Add your feature')
  4. 推送到分支 (git push origin feature/your-feature)
  5. 创建 Pull Request

📄 许可证

本项目基于 Apache2.0 许可证 开源。

🔗 相关链接

❤️ 致谢

感谢所有为本项目做出贡献的开发者和 Linux Do 社区的支持!

📈 项目趋势

Star History Chart