# Binato [![CodeFactor](https://www.codefactor.io/repository/github/tgpethan/binato/badge/master)](https://www.codefactor.io/repository/github/tgpethan/binato/overview/master) 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](https://github.com/tgpethan/Binato/blob/master/server/BotCommandHandler.js) or use !help on a live server ### [Planned additions](https://github.com/tgpethan/Binato/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement) | [List of currently known bugs](https://github.com/tgpethan/Binato/issues?q=is%3Aopen+is%3Aissue+label%3Abug)
## 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](https://github.com/tgpethan/Binato/issues/new) 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: ``` osu.ppy.sh c.ppy.sh c1.ppy.sh ``` Where 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](https://github.com/tgpethan/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](https://github.com/tgpethan/Binato-ProfilePicture)