Binato/README.md
2022-07-11 10:39:15 +01:00

3.2 KiB

Binato CodeFactor

An implementation of osu!bancho in Javascript

i'm sorry peppy


Features:

  • Multiplayer + Invites
  • Spectator
  • Tourney Client
  • User Panel
  • Friends List
  • Chat & Channels
  • Private Messages
  • Minimum Viable Product of a bot

Planned additions | List of currently known bugs


Setup:

While I don't support setting this up yourself it is fairly easy to do, all that should be required is:

  • NodeJS >= 10
  • MariaDB or MySQL (MariaDB is prefered as that is what this is tested and ran against in prod)
  • Optional (Disabled via config):
    • Redis
    • Prometheus

Clone the repo and run npm i to install required packages, then copy config.example.json to config.json and edit to your liking (this is where http compression, prometheus and redis can be enabled/disabled)

After doing this running node . should start the server

Reporting bugs:

To report a bug create a new issue and include information such as your OS / Distro, Node version, disabled Binato features (e.g. Prometheus, Redis, compression) and console output at the time of the bug if applicable.


How to connect:

2013 - Stable Fallback (2015 / 2016 ?):

Stable fallback uses HTTP so for that you just need to direct it to the server
You can do this using the hosts file

Location on Linux: /etc/hosts
Location on Mac: /private/etc/hosts
Location on Windows: C:/Windows/system32/drivers/etc/hosts

Add an entry in the hosts file that looks like the following:

<server_ip> osu.ppy.sh c.ppy.sh c1.ppy.sh

Where <server_ip> is the IP Address of the server hosting the bancho server

2016 - Early 2021:

Versions of osu! past Stable Fallback use HTTPS and as such you'll have to create a self signed certificate and make the server identify as ppy.sh
In 2018 there were also new subdomains added which are:

  • c2.ppy.sh
  • c3.ppy.sh
  • c4.ppy.sh
  • c5.ppy.sh
  • c6.ppy.sh
  • ce.ppy.sh

Now (2022):

There is a -devserver launch flag in the game which can be passed to the client to connect to a specific server. Example usage:

osu!.exe -devserver eusv.ml

You need to have your subdomains structured like osu!'s with the exception of c*.ppy.sh domains. There is only one that is polled for -devserver usage.

An example setup would be:

  • osu.example.com (Score submit & web stuff)
  • c.example.com (Bancho)
  • a.example.com (Profile pictures)

Other Binato components:

Website:

Binato's website is handled by Binato-Website

Profile Pictures:

Profile pictures can be handled by any standard HTTP server, there is also one I made for the task here: Binato-ProfilePicture