## Removed
- SignalR server
- `msgpack_lazer_api`
- Unused services
## Changed
- Move once tasks and scheduled tasks into `app.tasks`
- Improve Logs
- Yellow: Tasks
- Blue: Services
- Magenta: Fetcher
- Dark green: Uvicorn
- Red: System
- `#FFC1C1`: Normal
- Redis: use multiple logical databases
- db0: general cache (`redis_client`)
- db1: message cache (`redis_message_client`)
- db2: binary storage (`redis_binary_client`)
- db3: rate limiting (`redis_rate_limit_client`)
- API: move user page API (`/api/v2/users/{user_id}/page`, `/api/v2/me/validate-bbcode`) into private APIs (`/api/private/user/page`, `/api/private/user/validate-bbcode`)
- Remove `from __future__ import annotations` to avoid `ForwardRef` problems
- Assets Proxy: use decorators to simplify code
- Ruff: add rules
- API Router: use Annotated-style dependency injections.
- Database: rename filenames to easily find the model
## Documents
- CONTRIBUTING.md
- AGENTS.md
- copilot-instructions.md
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 (Gu pp algorithm based on 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
Security
Use openssl rand -hex 32 to generate the JWT secret key to ensure the security of the server and the normal operation of the observer server.
Use openssl rand -hex 40 to generate the frontend secret key.
If it is in a public network environment, please block external requests to the /_lio path.
Documentation
Visit the wiki for more information.
License
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-only).
Any derivative work, modification, or deployment MUST clearly and prominently attribute the original authors:
GooGuTeam - https://github.com/GooGuTeam/g0v0-server
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
