A mostly feature complete implementation of osu!bancho https://binato.eusv.net
Find a file
2022-07-11 10:39:15 +01:00
.github/workflows Create node.js.yml 2021-02-15 08:11:00 +00:00
server fix multiplayer after 68c0f1a broke it 2022-07-05 08:13:45 +01:00
web add the missing website link (finally) 2022-02-22 10:03:07 +00:00
.gitignore back to github because lazy 2021-06-23 07:22:04 +01:00
Binato.js ??? 2022-05-10 12:34:22 +01:00
config.example.json make config more readable 2022-04-24 02:14:23 +01:00
consoleHelper.js add special redis log type 2022-05-10 12:35:36 +01:00
LICENSE Update copyright year 2022-02-22 10:55:53 +00:00
osu!.sql support saving away messages 2022-01-04 04:43:32 +00:00
package-lock.json switch to mysql2 and use prepared statements 2022-05-10 12:36:48 +01:00
package.json switch to mysql2 and use prepared statements 2022-05-10 12:36:48 +01:00
README.md Update README.md 2022-07-11 10:39:15 +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