2025-11-09 09:37:59 +08:00
2025-08-26 13:18:11 +08:00
2025-10-12 02:52:22 +08:00
2025-09-17 01:01:33 +08:00

g0v0-server

Python 3.12+ ruff CodeFactor pre-commit.ci status license discord

简体中文 | 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

  1. Clone the project

    git clone https://github.com/GooGuTeam/g0v0-server.git
    cd g0v0-server
    
  2. Create a .env file

    Please see wiki to modify the .env file.

    cp .env.example .env
    
  3. (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.

  4. 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
    
  5. 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

All Contributors

Thanks goes to these wonderful people (emoji key):

咕谷酱
咕谷酱

💻
MingxuanGame
MingxuanGame

💻
陈晋瑭
陈晋瑭

💻
4ayo
4ayo

🤔
kyiuu1
kyiuu1

🤔

This project follows the all-contributors specification. Contributions of any kind welcome!

Discussion

Description
No description provided
Readme AGPL-3.0 3.6 MiB
Languages
Python 99%
HTML 0.6%
Shell 0.2%
Dockerfile 0.1%
Mako 0.1%