Bumps the minor-and-patch group with 7 updates: | Package | From | To | | --- | --- | --- | | [fastapi](https://github.com/fastapi/fastapi) | `0.124.0` | `0.126.0` | | [newrelic](https://github.com/newrelic/newrelic-python-agent) | `11.1.0` | `11.2.0` | | [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.20` | `0.0.21` | | [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.44` | `2.0.45` | | [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.41.0` | `0.46.0` | | [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.0` | `4.5.1` | | [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.14.10` | Updates `fastapi` from 0.124.0 to 0.126.0 - [Release notes](https://github.com/fastapi/fastapi/releases) - [Commits](https://github.com/fastapi/fastapi/compare/0.124.0...0.126.0) Updates `newrelic` from 11.1.0 to 11.2.0 - [Release notes](https://github.com/newrelic/newrelic-python-agent/releases) - [Commits](https://github.com/newrelic/newrelic-python-agent/compare/v11.1.0...v11.2.0) Updates `python-multipart` from 0.0.20 to 0.0.21 - [Release notes](https://github.com/Kludex/python-multipart/releases) - [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md) - [Commits](https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21) Updates `sqlalchemy` from 2.0.44 to 2.0.45 - [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases) - [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst) - [Commits](https://github.com/sqlalchemy/sqlalchemy/commits) Updates `datamodel-code-generator` from 0.41.0 to 0.46.0 - [Release notes](https://github.com/koxudaxi/datamodel-code-generator/releases) - [Changelog](https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md) - [Commits](https://github.com/koxudaxi/datamodel-code-generator/compare/0.41.0...0.46.0) Updates `pre-commit` from 4.5.0 to 4.5.1 - [Release notes](https://github.com/pre-commit/pre-commit/releases) - [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md) - [Commits](https://github.com/pre-commit/pre-commit/compare/v4.5.0...v4.5.1) Updates `ruff` from 0.14.8 to 0.14.10 - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.14.8...0.14.10) --- updated-dependencies: - dependency-name: fastapi dependency-version: 0.126.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: newrelic dependency-version: 11.2.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: python-multipart dependency-version: 0.0.21 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-and-patch - dependency-name: sqlalchemy dependency-version: 2.0.45 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-and-patch - dependency-name: datamodel-code-generator dependency-version: 0.46.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: pre-commit dependency-version: 4.5.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor-and-patch - dependency-name: ruff dependency-version: 0.14.10 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor-and-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[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 -
(Optional) Download rulesets Go to custom-rulesets 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. -
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
