🚀 Linux Do Community Credit Service Platform
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.
- 🔐 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
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 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 - Primary development language
- GIN - Web Framework
- GORM - ORM Framework
- Redis - Cache and session store
- PostgreSQL - Primary Database
- OpenTelemetry - Observability
- Swagger - API Documentation
- Next.js 16 - React Framework
- React 19 - UI Library
- TypeScript - Type Safety
- Tailwind CSS 4 - Styling Framework
- Shadcn UI - Component Library
- Lucide Icons - Icon Library
- Go >= 1.25.5
- Node.js >= 18.0
- PostgreSQL >= 18
- Redis >= 6.0
- pnpm >= 8.0 (Recommended)
git clone https://github.com/linux-do/credit.git
cd creditCopy the configuration file and edit it:
cp config.example.yaml config.yamlEdit config.yaml to configure database connections, Redis, OAuth2, etc.
# 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)# Install Go dependencies
go mod tidy
# Generate API documentation
make swagger
# Start backend service
go run main.go apicd frontend
# Install dependencies
pnpm install
# Start development server
pnpm dev- Frontend Interface: http://localhost:3000
- API Documentation: http://localhost:8000/swagger/index.html
- Health Check: http://localhost:8000/api/health
| 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.
# 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 tidycd frontend
# Development mode (using Turbopack)
pnpm dev
# Build production version
pnpm build
# Start production service
pnpm start
# Lint and format code
pnpm lint
pnpm formatAPI documentation is automatically generated by Swagger and can be accessed after starting the backend service:
http://localhost:8000/swagger/index.html
# Backend testing
go test ./...
# Frontend testing
cd frontend
pnpm test# Build image
docker build -t linux-do-credit .
# Run container
docker run -d -p 8000:8000 linux-do-credit-
Build frontend resources:
cd frontend && pnpm build
-
Compile backend program:
go build -o credit main.go
-
Configure
config.yamlfor production -
Start service:
./credit api
We welcome community contributions! Please read the following before submitting code:
- 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
This project is open source under the Apache2.0 License.
Thanks to all developers who contributed to this project and the support of the Linux Do Community!