A mostly feature complete implementation of osu!bancho https://binato.eusv.net
Find a file
2022-09-30 11:34:52 +01:00
.github/workflows Create node.js.yml 2021-02-15 08:11:00 +00:00
server Make a few packets awaited so that the client gets data on time 2022-09-30 11:34:52 +01:00
web file permissions changes 2022-09-30 11:34:13 +01:00
.gitignore back to github because lazy 2021-06-23 07:22:04 +01:00
Binato.js file permissions changes 2022-09-30 11:34:13 +01:00
config.example.json hash/salt changes 2022-08-26 12:53:23 +01:00
consoleHelper.js file permissions changes 2022-09-30 11:34:13 +01:00
LICENSE Update copyright year 2022-02-22 10:55:53 +00:00
osu!.sql new sql shit this was pain 2022-08-26 13:03:33 +01:00
package-lock.json switch to mysql2 and use prepared statements 2022-05-10 12:36:48 +01:00
package.json file permissions changes 2022-09-30 11:34:13 +01:00
README.md fix broken readme stuff 2022-08-28 01:03:28 +01:00

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