Binato/README.md

83 lines
3.2 KiB
Markdown
Raw Normal View History

2021-02-12 23:39:37 +00:00
# Binato [![CodeFactor](https://www.codefactor.io/repository/github/tgpethan/binato/badge/master)](https://www.codefactor.io/repository/github/tgpethan/binato/overview/master)
2020-08-28 09:15:04 +01:00
An implementation of osu!bancho in Javascript
2021-02-12 23:36:35 +00:00
2021-09-22 19:40:43 +01:00
i'm sorry peppy
2020-08-28 09:15:04 +01:00
<hr>
### Features:
2020-09-02 11:31:06 +01:00
- Multiplayer + Invites
2020-08-28 09:15:04 +01:00
- Spectator
2021-03-09 18:24:34 +00:00
- Tourney Client
2020-09-02 12:19:19 +01:00
- User Panel
- Friends List
2020-08-28 09:15:04 +01:00
- Chat & Channels
2020-09-02 10:56:23 +01:00
- Private Messages
2021-01-26 12:33:27 +00:00
- 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
2022-07-11 10:39:15 +01:00
### [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)
2022-02-22 10:21:17 +00:00
<hr>
2022-07-11 10:39:15 +01:00
## 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**
2022-07-11 10:39:15 +01:00
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.
2022-02-22 10:21:17 +00:00
<hr>
2020-08-28 09:15:04 +01:00
## How to connect:
### 2013 - Stable Fallback (2015 / 2016 ?):
Stable fallback uses HTTP so for that you just need to direct it to the server<br>
You can do this using the hosts file
Location on Linux: /etc/hosts<br>
2022-07-11 10:39:15 +01:00
Location on Mac: /private/etc/hosts<br>
2020-08-28 09:15:04 +01:00
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
2021-03-09 16:02:03 +00:00
### 2016 - Early 2021:
2020-08-28 09:15:04 +01:00
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<br>
2021-03-09 18:21:14 +00:00
In 2018 there were also new subdomains added which are:
2020-08-28 09:15:04 +01:00
- c2.ppy.sh
- c3.ppy.sh
- c4.ppy.sh
- c5.ppy.sh
- c6.ppy.sh
- ce.ppy.sh
2021-03-09 16:02:03 +00:00
2022-02-22 10:21:07 +00:00
### Now (2022):
2022-02-22 10:19:54 +00:00
There is a `-devserver` launch flag in the game which can be passed to the client to connect to a specific server. Example usage:
2021-09-22 19:39:35 +01:00
```
osu!.exe -devserver eusv.ml
```
2022-02-22 10:21:07 +00:00
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)
2022-02-22 10:21:17 +00:00
<hr>
2022-07-11 10:39:15 +01:00
## Other Binato components:
### Website:
2022-02-22 10:21:07 +00:00
Binato's website is handled by [Binato-Website](https://github.com/tgpethan/Binato-Website)
2021-09-22 19:40:43 +01:00
### 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)