.github/workflows | ||
server | ||
web | ||
.gitignore | ||
Binato.js | ||
config.example.json | ||
consoleHelper.js | ||
LICENSE | ||
osu!.sql | ||
package-lock.json | ||
package.json | ||
README.md |
Binato
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
- For a command list check BotCommandHandler or use !help on a live server
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