diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 9b50ff9..32a1e09 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -107,6 +107,6 @@ 80, 8080 ], - "postCreateCommand": "uv sync --dev && uv pip install rosu-pp-py && uv run alembic upgrade head && uv run pre-commit install && cd packages/msgpack_lazer_api && cargo check && cd ../../spectator-server && dotnet restore", + "postCreateCommand": "uv sync --dev && uv run alembic upgrade head && uv run pre-commit install && cd packages/msgpack_lazer_api && cargo check && cd ../../spectator-server && dotnet restore", "remoteUser": "vscode" } diff --git a/.gitignore b/.gitignore index 2eb2936..043fa6e 100644 --- a/.gitignore +++ b/.gitignore @@ -221,3 +221,4 @@ geoip/* newrelic.ini logs/ osu-server-spectator-master/* +spectator-server/ diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 7a87151..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "spectator-server"] - path = spectator-server - url = https://github.com/GooGuTeam/osu-server-spectator.git diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 65661d7..3f6e3e2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,17 @@ # 贡献指南 +## 克隆项目 + +```bash +git clone https://github.com/GooGuTeam/g0v0-server.git +``` + +此外,您还需要 clone 一个 spectator-server 到 g0v0-server 的文件夹。 + +```bash +git clone https://github.com/GooGuTeam/osu-server-spectator.git spectator-server +``` + ## 开发环境 为了确保一致的开发环境,我们强烈建议使用提供的 Dev Container。这将设置一个容器化的环境,预先安装所有必要的工具和依赖项。 @@ -8,9 +20,33 @@ 2. 在 Visual Studio Code 中安装 [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)。 3. 在 VS Code 中打开项目。当被提示时,点击“在容器中重新打开”以启动开发容器。 +## 配置项目 + +修改 `.env` 配置(参考 [wiki](https://github.com/GooGuTeam/g0v0-server/wiki/Configuration)),生成并填充 JWT 密钥。 + +如果在 Dev Container 运行,请修改 `MYSQL_HOST` 为 `mysql`,`REDIS_URL` 为 `redis://redis/0`。 + +## 启动项目 + +.devcontainer 文件夹提供了一个启动脚本 `start-dev.sh`,这个脚本会从 `.env` 加载环境变量并同时启动 g0v0-server(端口 `8000`)和 spectator-server(端口 `8006`)。 + +Dev Container 提供了 NGINX 进行转发,对外访问端口是 `8080`。 + +如果您的服务器没有配置 HTTPS,可以在启动 osu! 的时候指定环境变量 `OSU_INSECURE_REQUESTS=1` 禁用 SSL 检查,或者应用 [osu!lazer wiki](https://github.com/ppy/osu/wiki/Testing-web-server-full-stack-with-osu!#basics) 提供的 diff。 + +或者使用下方的命令手动启动: + +```bash +# g0v0-server +uv run uvicorn main:app --host 0.0.0.0 --port 8000 --reload +# spectator-server +cd spectator-server +dotnet run --project osu.Server.Spectator --urls "http://0.0.0.0:8086" +``` + ## 依赖管理 -该项目使用 `uv` 进行快速高效的 Python 包管理。 +使用 `uv` 进行快速高效的 Python 包管理。 要安装依赖项,请在终端中运行以下命令: @@ -32,6 +68,8 @@ pre-commit install 这将安装 pre-commit 钩子,每次提交时会自动运行。如果任何检查失败,提交将被中止。您需要修复报告的问题并暂存更改,然后再尝试提交。 +pre-commit 不提供 pyright 的 hook,您需要手动运行 `pyright` 检查类型错误。 + ## 提交信息指南 我们遵循 [AngularJS 提交规范](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#commit-message-format) 来编写提交信息。这使得在查看项目历史记录时,信息更加可读且易于理解。 diff --git a/spectator-server b/spectator-server deleted file mode 160000 index 27d49c8..0000000 --- a/spectator-server +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 27d49c8925de7c2b69fb9681c275f2df78ce48c6