π 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!