A mostly feature complete implementation of osu!bancho https://binato.eusv.net
Find a file
2020-09-07 17:35:37 +01:00
server Remove userManager and all usages of it 2020-09-07 17:35:37 +01:00
web Make server page link to the github 2020-08-27 13:12:42 +01:00
.gitignore Initial commit 2020-08-27 13:09:35 +01:00
Binato.js Remove userManager and all usages of it 2020-09-07 17:35:37 +01:00
consoleHelper.js Initial commit 2020-08-27 13:09:35 +01:00
LICENSE Create LICENSE 2020-08-27 13:13:16 +01:00
package.json Initial commit 2020-08-27 13:09:35 +01:00
README.md Implement friends list functionality 2020-09-02 12:19:19 +01:00

Binato

An implementation of osu!bancho in Javascript


Features:

  • Multiplayer + Invites
  • Spectator
  • User Panel
  • Friends List
  • Chat & Channels
  • Private Messages

Currently unimplemented things:

  • Bot

Bugs:

  • If a client clicks the plus button in the chat window to join another channel the client will "crash", the game will keep running but the user will be unable to do anything

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 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 - Now:

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
My personal choice for this task is OpenSSL + nginx

The subdomains you have to deal with are:

  • osu.ppy.sh
  • c.ppy.sh
  • c1.ppy.sh
  • c2.ppy.sh
  • c3.ppy.sh
  • c4.ppy.sh
  • c5.ppy.sh
  • c6.ppy.sh
  • ce.ppy.sh

Using this with the hosts file should allow the server to be connected to by a modern osu! client

Subdomains past c1.ppy.sh were added around 2018

Things not included in this repo:

Profile Pictures:

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

DatabaseHelper.js:

Because the DatabaseHelper in this server was so horrible and also very specific to my server I didn't include it.
I'll make a better one and include it eventually. For now if you feel like using this server you can make your own by handing the function getFromDB in a file called DatabaseHelper.js in the server folder