8adc88bf00311cbd1ddae9282d43e1b39c2ba2e2
Simplified the BaseFetcher class by removing the max_retries parameter and all related retry and reauthorization logic. API requests now fail immediately on authentication errors, and token clearing is handled by a new _clear_tokens method. This change streamlines error handling and reduces complexity.
g0v0-server
简体中文 | English
This is an osu! API server implemented with FastAPI + MySQL + Redis, supporting most features of osu! API v1, v2, and osu!lazer.
Features
- OAuth 2.0 Authentication: Supports password and refresh token flows.
- User Data Management: Complete user information, statistics, achievements, etc.
- Multi-game Mode Support: osu! (RX, AP), taiko (RX), catch (RX), mania.
- Database Persistence: MySQL for storing user data.
- Cache Support: Redis for caching tokens and session information.
- Multiple Storage Backends: Supports local storage, Cloudflare R2, and AWS S3.
- Containerized Deployment: Docker and Docker Compose support.
Quick Start
Using Docker Compose (Recommended)
-
Clone the project
git clone https://github.com/GooGuTeam/g0v0-server.git cd g0v0-server -
Create a
.envfilePlease see wiki to modify the .env file.
cp .env.example .env -
Start the service
# Standard server docker-compose -f docker-compose.yml up -d # Enable osu!RX and osu!AP statistics (ppy-sb pp algorithm) docker-compose -f docker-compose-osurx.yml up -d -
Connect to the server from the game
Use a custom osu!lazer client, or use LazerAuthlibInjection, and change the server settings to the server's address.
Updating the Database
Refer to the Database Migration Guide
License
MIT License
Contributing
The project is currently in a state of rapid iteration. Issues and Pull Requests are welcome!
See Contributing Guide for more information.
Discussion
- Discord: https://discord.gg/AhzJXXWYfF
- QQ Group:
1059561526
Languages
Python
99%
HTML
0.6%
Shell
0.2%
Dockerfile
0.1%
Mako
0.1%