LINUX DO Credit
π Linux Do Community Credit Service Platform
δΈζ



π Introduction
LINUX DO Credit is a credit service platform built for the Linux Do community, aimed at providing a series of credit-related services and offering a foundational framework for credit circulation for community developers.
β¨ Key Features
- π OAuth2 Authentication - Integrated with Linux Do community account system
- π‘οΈ Risk Control - Comprehensive trust level and risk assessment system
- π Real-time Monitoring - Detailed distribution statistics and user behavior analysis
- π¨ Modern Interface - Responsive design based on Next.js 16 and React 19
- β‘ High Performance - Go Backend + Redis Cache + PostgreSQL Database
ποΈ Architecture Overview
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β 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 β β β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
π οΈ Tech Stack
Backend
Frontend
π Requirements
- Go >= 1.25.5
- Node.js >= 18.0
- PostgreSQL >= 18
- Redis >= 6.0
- pnpm >= 8.0 (Recommended)
π Quick Start
1. Clone the Project
git clone https://github.com/linux-do/credit.git
cd credit
Copy the configuration file and edit it:
cp config.example.yaml config.yaml
Edit config.yaml to configure database connections, Redis, OAuth2, etc.
3. Initialize Database
# Create database
createdb -h <host> -p 5432 -U postgres linux_do_credit
# If you need to specify encoding, use:
# psql -h <host> -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;"
# Run migrations (automatically executed when starting the backend)
4. Start Backend
# Install Go dependencies
go mod tidy
# Generate API documentation
make swagger
# Start backend service
go run main.go api
5. Start Frontend
cd frontend
# Install dependencies
pnpm install
# Start development server
pnpm dev
6. Access Application
βοΈ Configuration
Main Configuration Options
| Option |
Description |
Example |
app.addr |
Backend service listening address |
:8000 |
oauth2.client_id |
OAuth2 Client ID |
your_client_id |
database.host |
PostgreSQL database host |
127.0.0.1 |
database.port |
PostgreSQL database port |
5432 |
database.username |
PostgreSQL database username |
postgres |
database.password |
PostgreSQL database password |
password |
database.database |
PostgreSQL database name |
linux_do_credit |
database.ssl_mode |
PostgreSQL SSL mode |
disable |
database.application_name |
PostgreSQL application name |
credit-server |
database.search_path |
PostgreSQL search path |
public |
database.default_query_exec_mode |
SQL cache mode |
cache_statement |
redis.host |
Redis server address |
127.0.0.1 |
For detailed configuration instructions, please refer to the config.example.yaml file.
π§ Development Guide
Backend Development
# Run API server
go run main.go api
# Run task scheduler
go run main.go scheduler
# Run worker queue
go run main.go worker
# Generate Swagger documentation
make swagger
# Format and check code
make tidy
Frontend Development
cd frontend
# Development mode (using Turbopack)
pnpm dev
# Build production version
pnpm build
# Start production service
pnpm start
# Lint and format code
pnpm lint
pnpm format
π API Documentation
API documentation is automatically generated by Swagger and can be accessed after starting the backend service:
http://localhost:8000/swagger/index.html
π§ͺ Testing
# Backend testing
go test ./...
# Frontend testing
cd frontend
pnpm test
π Deployment
Docker Deployment
# Build image
docker build -t linux-do-credit .
# Run container
docker run -d -p 8000:8000 linux-do-credit
Production Environment Deployment
-
Build frontend resources:
cd frontend && pnpm build
-
Compile backend program:
go build -o credit main.go
-
Configure config.yaml for production
-
Start service:
./credit api
π€ Contribution Guidelines
We welcome community contributions! Please read the following before submitting code:
Submission Process
- Fork this repository
- Create a feature branch (
git checkout -b feature/your-feature)
- Commit changes (
git commit -am 'Add your feature')
- Push to branch (
git push origin feature/your-feature)
- Create Pull Request
π License
This project is open source under the Apache2.0 License.
β€οΈ Acknowledgements
Thanks to all developers who contributed to this project and the support of the Linux Do Community!
π Star History
