# g0v0-server [](https://www.python.org/downloads/) [](https://docs.astral.sh/ruff/) [](https://www.codefactor.io/repository/github/GooGuTeam/g0v0-server) [](https://results.pre-commit.ci/latest/github/GooGuTeam/g0v0-server/main) [](./LICENSE) [](https://discord.gg/AhzJXXWYfF) [简体中文](./README.md) | 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](https://github.com/LumpBloom7/sentakki)|`10`|`Sentakki`|❌|❌ [tau](https://github.com/taulazer/tau)|`11`|`tau`|❌|✅ [Rush!](https://github.com/Beamographic/rush)|`12`|`rush`|❌|❌ [hishigata](https://github.com/LumpBloom7/hishigata)|`13`|`hishigata`|❌|❌ [soyokaze!](https://github.com/goodtrailer/soyokaze)|`14`|`soyokaze`|❌|✅ Go to [custom-rulesets](https://github.com/GooGuTeam/custom-rulesets) to download the custom rulesets modified for g0v0-server. ## Quick Start ### Using Docker Compose (Recommended) 1. Clone the project ```bash git clone https://github.com/GooGuTeam/g0v0-server.git cd g0v0-server ``` 2. Create a `.env` file Please see [wiki](https://github.com/GooGuTeam/g0v0-server/wiki/Configuration) to modify the .env file. ```bash cp .env.example .env ``` 3. (Optional) Download rulesets Go to [custom-rulesets](https://github.com/GooGuTeam/custom-rulesets/releases/latest) to download the custom rulesets modified for g0v0-server. Place the downloaded DLLs into the `rulesets/` directory to enable custom ruleset support in the spectator server and performance calculator. 4. Start the service ```bash # 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 ``` 5. Connect to the server from the game Use a [custom osu!lazer client](https://github.com/GooGuTeam/osu), or use [LazerAuthlibInjection](https://github.com/MingxuanGame/LazerAuthlibInjection), and change the server settings to the server's address. ### Updating the Database Refer to the [Database Migration Guide](https://github.com/GooGuTeam/g0v0-server/wiki/Migrate-Database) ## 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](https://github.com/GooGuTeam/g0v0-server/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](./CONTRIBUTING.md) for more information. ## Contributors [](#contributors-) Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
咕谷酱 💻 |
MingxuanGame 💻 |
陈晋瑭 💻 |
4ayo 🤔 |
kyiuu1 🤔 |