Skip to content

An osu! bancho server implementation written in C#

License

Notifications You must be signed in to change notification settings

NovemoG/BanchoNET

Repository files navigation

BanchoNET

A dotnet implementation of osu!bancho server.

Technologies

  • ASP.NET Core (.NET 8)
  • MYSQL (MariaDB)
  • MongoDB
  • Redis
  • Docker (soon™)

Progress

Go to the Projects section to see the progress of the BanchoNET project.

Features

  • Player registration (currently only in-game)
  • Online users listing and statuses
  • Multiplayer lobbies
  • Global/Country ranking leaderboards
  • In-game leaderboards
  • Spectating
  • osu!Direct
  • Server commands

In development

  • Clubs (clans)
  • Beatmap submission
  • Custom commands
  • Website

Building

Prerequisites

  • Dotnet SDK 8.0
  • MariaDB Server
  • MongoDB Server
  • Nginx Server

Building

To build the BanchoNET server, follow these steps:

  1. Clone the repository to your local machine.
git clone https://github.com/NovemoG/BanchoNET.git
  1. Navigate to the project directory.
cd BanchoNET
  1. Restore the project dependencies
dotnet restore
  1. Use the .NET build command to build the project.
dotnet build

This will create a build of your project in the ./bin/Debug/net8.0 directory.

  1. Navigate to the nginx configuration folder
cd /etc/nginx/sites-enabled
  1. Create banchonet configuration file
touch banchonet.conf
  1. Edit file with following config
server {
    listen 80;
    server_name c.DOMAIN;

    location / {
        proxy_pass https://0.0.0.0:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
        listen 443 ssl;
        server_name osu.DOMAIN c4.DOMAIN c.DOMAIN;

        location / {
                proxy_pass https://0.0.0.0:5000;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}
  1. Replace DOMAIN with your domain.

  2. Add all subdomain records that are present in the config file above.

Usage

Running

To run the BanchoNET server, follow these steps:

  1. Navigate to the project directory.
cd BanchoNET
  1. Use the .NET run command to run the project.
dotnet run

This will start the BanchoNET server. You should see output indicating that the server is running.

Deployment

We are planning on adding docker support.

Contributing

  • Fork the Project
  • Create your Feature Branch git checkout -b feature/AmazingFeature
  • Commit your Changes git commit -m 'Add some AmazingFeature'
  • Push to the Branch git push origin feature/AmazingFeature
  • Open a Pull Request

License

Bancho.NET is licensed under the MIT License. Please see the LICENSE file for more information.

Acknowledgments