Bumps the minor-and-patch group with 13 updates: | Package | From | To | | --- | --- | --- | | [aioboto3](https://github.com/terricain/aioboto3) | `15.1.0` | `15.5.0` | | [aiomysql](https://github.com/aio-libs/aiomysql) | `0.2.0` | `0.3.2` | | [alembic](https://github.com/sqlalchemy/alembic) | `1.16.5` | `1.17.1` | | [apscheduler](https://github.com/agronholm/apscheduler) | `3.11.0` | `3.11.1` | | [bleach](https://github.com/mozilla/bleach) | `6.2.0` | `6.3.0` | | [cryptography](https://github.com/pyca/cryptography) | `46.0.2` | `46.0.3` | | [fastapi](https://github.com/fastapi/fastapi) | `0.118.0` | `0.120.4` | | [newrelic](https://github.com/newrelic/newrelic-python-agent) | `11.0.0` | `11.0.1` | | [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.1` | | [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.43` | `2.0.44` | | [sqlmodel](https://github.com/fastapi/sqlmodel) | `0.0.25` | `0.0.27` | | [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.406` | `1.1.407` | | [ruff](https://github.com/astral-sh/ruff) | `0.13.3` | `0.14.3` | Updates `aioboto3` from 15.1.0 to 15.5.0 - [Changelog](https://github.com/terricain/aioboto3/blob/main/CHANGELOG.rst) - [Commits](https://github.com/terricain/aioboto3/compare/v15.1.0...v15.5.0) Updates `aiomysql` from 0.2.0 to 0.3.2 - [Release notes](https://github.com/aio-libs/aiomysql/releases) - [Changelog](https://github.com/aio-libs/aiomysql/blob/main/CHANGES.txt) - [Commits](https://github.com/aio-libs/aiomysql/compare/v0.2.0...v0.3.2) Updates `alembic` from 1.16.5 to 1.17.1 - [Release notes](https://github.com/sqlalchemy/alembic/releases) - [Changelog](https://github.com/sqlalchemy/alembic/blob/main/CHANGES) - [Commits](https://github.com/sqlalchemy/alembic/commits) Updates `apscheduler` from 3.11.0 to 3.11.1 - [Release notes](https://github.com/agronholm/apscheduler/releases) - [Changelog](https://github.com/agronholm/apscheduler/blob/3.11.1/docs/versionhistory.rst) - [Commits](https://github.com/agronholm/apscheduler/compare/3.11.0...3.11.1) Updates `bleach` from 6.2.0 to 6.3.0 - [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES) - [Commits](https://github.com/mozilla/bleach/compare/v6.2.0...v6.3.0) Updates `cryptography` from 46.0.2 to 46.0.3 - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/46.0.2...46.0.3) Updates `fastapi` from 0.118.0 to 0.120.4 - [Release notes](https://github.com/fastapi/fastapi/releases) - [Commits](https://github.com/fastapi/fastapi/compare/0.118.0...0.120.4) Updates `newrelic` from 11.0.0 to 11.0.1 - [Release notes](https://github.com/newrelic/newrelic-python-agent/releases) - [Commits](https://github.com/newrelic/newrelic-python-agent/compare/v11.0.0...v11.0.1) Updates `python-dotenv` from 1.1.1 to 1.2.1 - [Release notes](https://github.com/theskumar/python-dotenv/releases) - [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md) - [Commits](https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.1) Updates `sqlalchemy` from 2.0.43 to 2.0.44 - [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 `sqlmodel` from 0.0.25 to 0.0.27 - [Release notes](https://github.com/fastapi/sqlmodel/releases) - [Changelog](https://github.com/fastapi/sqlmodel/blob/main/docs/release-notes.md) - [Commits](https://github.com/fastapi/sqlmodel/compare/0.0.25...0.0.27) Updates `pyright` from 1.1.406 to 1.1.407 - [Release notes](https://github.com/RobertCraigie/pyright-python/releases) - [Commits](https://github.com/RobertCraigie/pyright-python/compare/v1.1.406...v1.1.407) Updates `ruff` from 0.13.3 to 0.14.3 - [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.13.3...0.14.3) --- updated-dependencies: - dependency-name: aioboto3 dependency-version: 15.5.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: aiomysql dependency-version: 0.3.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: alembic dependency-version: 1.17.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: apscheduler dependency-version: 3.11.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-and-patch - dependency-name: bleach dependency-version: 6.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: cryptography dependency-version: 46.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-and-patch - dependency-name: fastapi dependency-version: 0.120.4 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: newrelic dependency-version: 11.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-and-patch - dependency-name: python-dotenv dependency-version: 1.2.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-and-patch - dependency-name: sqlalchemy dependency-version: 2.0.44 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-and-patch - dependency-name: sqlmodel dependency-version: 0.0.27 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-and-patch - dependency-name: pyright dependency-version: 1.1.407 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-and-patch - dependency-name: ruff dependency-version: 0.14.3 dependency-type: direct:production update-type: version-update:semver-minor 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 -
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 🤔 |
This project follows the all-contributors specification. Contributions of any kind welcome!
Discussion
- Discord: https://discord.gg/AhzJXXWYfF
- QQ Group:
1059561526
