Files
g0v0-server/README.md
MingxuanGame 0be3e903d4 feat(performance-point): switch performance calculator to performance-server (#80)
* feat(config): make `performance_server` as default calculator

* deploy(docker): use osu-performance-server

* docs(readme): add ruleset download instructions

* chore(dev): update development environment

* feat(dev): update development environment setup and service startup order

* fix(deps): move `rosu-pp-py` to `project.optional-dependencies`

* feat(beatmap): handle deleted beatmaps

* feat(performance-server): add a long timeout for calculation

* feat(recalculate): enhance CLI arguments for performance, leaderboard, and rating recalculations with CSV output support

* fix(recalculate): resolve reviews

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(beatmapsync): resolve too long line

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-09 01:59:09 +08:00

6.8 KiB
Raw Blame History

g0v0-server

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

简体中文 | English

这是一个使用 FastAPI + MySQL + Redis 实现的 osu! API 模拟服务器,支持 osu! API v1, v2 和 osu!lazer 的绝大部分功能。

功能特性

  • OAuth 2.0 认证: 支持密码流和刷新令牌流
  • 用户数据管理: 完整的用户信息、统计数据、成就等
  • 多游戏模式支持: osu! (RX, AP), taiko (RX), catch (RX), mania 和自定义 ruleset见下
  • 数据库持久化: MySQL 存储用户数据
  • 缓存支持: Redis 缓存令牌和会话信息
  • 多种存储后端: 支持本地存储、Cloudflare R2、AWS S3
  • 容器化部署: Docker 和 Docker Compose 支持
  • 资源文件反向代理: 可以将 osu! 官方的资源链接(头像、谱面封面、音频等)替换为自定义域名。

支持的 ruleset

Ruleset ID ShortName PP 算法 (rosu) PP 算法 (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

前往 custom-rulesets 下载为 g0v0-server 修改的自定义 ruleset。

快速开始

使用 Docker Compose (推荐)

  1. 克隆项目
git clone https://github.com/GooGuTeam/g0v0-server.git
cd g0v0-server
  1. 创建 .env 文件

请参考 wiki 来修改 .env 文件

cp .env.example .env
  1. (可选)下载 rulesets

前往 custom-rulesets 下载为 g0v0-server 修改的自定义 ruleset。将下载的 DLL 放入 rulesets/ 目录,以在旁观服务器和表现分计算器中启用自定义 ruleset 支持。

  1. 启动服务
# 标准服务器
docker-compose -f docker-compose.yml up -d
# 启用 osu!RX 和 osu!AP 模式 (基于偏偏要上班 pp 算法的 Gu pp 算法)
docker-compose -f docker-compose-osurx.yml up -d
  1. 通过游戏连接服务器

使用自定义的 osu!lazer 客户端,或者使用 LazerAuthlibInjection,修改服务器设置为服务器的 IP

更新数据库

参考数据库迁移指南

安全

使用 openssl rand -hex 32 生成 JWT 密钥,以保证服务器安全和旁观服务器的正常运行

使用 openssl rand -hex 40 生成前端密钥

如果是在公网环境下,请屏蔽对 /_lio 路径的外部请求

文档

前往 wiki 查看

许可证

本项目采用 GNU Affero General Public License v3.0 (AGPL-3.0-only) 授权。
任何衍生作品、修改或部署 必须在显著位置清晰署名 原始作者:
GooGuTeam - https://github.com/GooGuTeam/g0v0-server

贡献

项目目前处于快速迭代状态,欢迎提交 Issue 和 Pull Request

查看 贡献指南 获取更多信息。

贡献者

All Contributors

感谢所有参与此项目的贡献者! (emoji key)

咕谷酱
咕谷酱

💻
MingxuanGame
MingxuanGame

💻
陈晋瑭
陈晋瑭

💻
4ayo
4ayo

🤔
kyiuu1
kyiuu1

🤔

本项目遵循 all-contributors 规范。欢迎任何形式的贡献!

参与讨论