MingxuanGame 96d96ddcd3 chore(merge): merge #53
## Removed

- SignalR server
- `msgpack_lazer_api`
- Unused services

## Changed

- Move once tasks and scheduled tasks into `app.tasks`
- Improve Logs
  - Yellow: Tasks
  - Blue: Services
  - Magenta: Fetcher
  - Dark green: Uvicorn
  - Red: System
  - `#FFC1C1`: Normal
- Redis: use multiple logical databases
  - db0: general cache (`redis_client`)
  - db1: message cache (`redis_message_client`)
  - db2: binary storage (`redis_binary_client`)
  - db3: rate limiting (`redis_rate_limit_client`)
- API: move user page API (`/api/v2/users/{user_id}/page`, `/api/v2/me/validate-bbcode`) into private APIs (`/api/private/user/page`, `/api/private/user/validate-bbcode`)
- Remove `from __future__ import annotations` to avoid `ForwardRef` problems
- Assets Proxy: use decorators to simplify code
- Ruff: add rules
- API Router: use Annotated-style dependency injections.
- Database: rename filenames to easily find the model

## Documents

- CONTRIBUTING.md
- AGENTS.md
- copilot-instructions.md
2025-10-04 16:37:40 +08:00
2025-10-04 05:01:05 +00:00
2025-08-26 13:18:11 +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.
  • 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.

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

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%