* docs: update README.md * docs: update README.en.md * docs: update .all-contributorsrc --------- Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
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 and custom rulesets (see below).
- 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.
Supported Rulesets
| Ruleset | ID | ShortName | PP Algorithm (rosu) | PP Algorithm (performance-server) |
|---|---|---|---|---|
| osu! | 0 |
osu |
✅ | ✅ |
| osu!taiko | 1 |
taiko |
✅ | ✅ |
| osu!catch | 2 |
fruits |
✅ | ✅ |
| osu!mania | 3 |
mania |
✅ | ✅ |
| osu! (RX) | 4 |
osurx |
✅ | ✅ |
| osu! (AP) | 5 |
osuap |
✅ | ✅ |
| osu!taiko (RX) | 6 |
taikorx |
✅ | ✅ |
| osu!catch (RX) | 7 |
fruitsrx |
✅ | ✅ |
| Sentakki | 10 |
Sentakki |
❌ | ❌ |
| tau | 11 |
tau |
❌ | ✅ |
| Rush! | 12 |
rush |
❌ | ❌ |
| hishigata | 13 |
hishigata |
❌ | ❌ |
| soyokaze! | 14 |
soyokaze |
❌ | ✅ |
Go to custom-rulesets to download the custom rulesets modified for g0v0-server.
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.
Contributors
Thanks goes to these wonderful people (emoji key):
咕谷酱 💻 |
MingxuanGame 💻 |
陈晋瑭 💻 |
4ayo 🤔 |
kyiuu1 🤔 |
This project follows the all-contributors specification. Contributions of any kind welcome!
Discussion
- Discord: https://discord.gg/AhzJXXWYfF
- QQ Group:
1059561526
