update readme

This commit is contained in:
creeper123123321 2022-07-19 19:08:11 -03:00
parent 9a99fb4620
commit 253dd58fdc
2 changed files with 17 additions and 42 deletions

View File

@ -1,6 +1,10 @@
VIAaaS
---
[![ViaVersion Discord](https://img.shields.io/badge/chat-on%20discord-blue.svg)](https://viaversion.com/discord)
[![Powered by ViaVersion](https://img.shields.io/badge/Powered%20by-ViaVersion-blue.svg)](https://viaversion.com/)
VIAaaS - ViaVersion as a Service - Standalone ViaVersion proxy
<img alt="VIAaaS Logo (VIA logo with structural formula of aspirin)" height="200" src="https://viaversion.github.io/VIAaaS/src/main/resources/web/img/logo.webp">
@ -9,10 +13,6 @@ Address generator: https://jo0001.github.io/ViaSetup/aspirin
Public instances: https://github.com/ViaVersion/VIAaaS/wiki/List-of-Public-Instances
Discord: https://viaversion.com/discord
Supported versions: https://viaversion.com/
## Demo
Online mode: https://youtu.be/9MKKjuoe66k
@ -21,6 +21,8 @@ Using with GeyserConnect: https://youtu.be/_LItAIIFmsI
Using with GeyserConnect on offline mode: https://youtu.be/-hZESD61nSU
Using with OpenAuthMod: https://youtu.be/h3EfNSxxf8k
Offline mode tutorial: https://youtu.be/lPdELnrxmp0
## How does it work?
@ -29,7 +31,7 @@ Offline mode tutorial: https://youtu.be/lPdELnrxmp0
and [ViaRewind](https://viaversion.com/rewind) translates the connections to backend server.
- VIAaaS auth page stores account credentials in the player's browser local storage.
- It requires a CORS Proxy for calling Mojang APIs.
- Account credentials aren't sent to VIAaaS instance, though it's proxied by CORS Proxy.
- Account credentials aren't sent to VIAaaS instance by default.
- The web page receives and validates the joinGame's session hash from VIAaaS instance.
## Setting up server instance
@ -51,24 +53,21 @@ java -jar VIAaaS-all.jar
### How to create a public server
- You need a DNS wildcard pointing to VIAaaS instance, like ``*.example.com -> 192.168.123.123``. You can
use [DuckDNS](https://duckdns.org/) DDNS service.
- You need a DNS wildcard pointing to VIAaaS instance, like ``*.example.com -> 192.168.123.123``.
- Configure the hostname in the config
- Open the Minecraft port (25565)
- The HTTPS page needs a valid SSL certificate, you can use [Apache](https://httpd.apache.org/) (with
a [Let's Encrypt](https://letsencrypt.org/) certificate) as a reverse proxy. See apache_copypasta.txt file.
- The HTTPS page needs a valid SSL certificate, you can use a reverse proxy like [Apache](https://httpd.apache.org/) (with
a [Let's Encrypt](https://letsencrypt.org/) certificate).
## CORS Proxy
- Due to Mojang API not allowing CORS request, we need to use a CORS proxy
- For less chance of Mojang seeing the login as suspect, you (the player) should set up a CORS proxy on your machine.
- Due to Mojang API not allowing cross-origin requests, we need to use a CORS proxy
- Note the ending slash in cors-anywhere address
- The default CORS Proxy is hosted at https://crp123-cors.herokuapp.com/
([source](https://github.com/creeper123123321/cors-anywhere/))
## Usage for players
You can also connect to ```via.localhost`` and set the address parameters via web page.
You'll need to specify which server you want to connect through address parameters
added as prefix in ``via.localhost`` or via web page (default https://localhost:25543/).
#### Offline mode:
@ -88,8 +87,8 @@ Web login:
Web login via token caching:
- Open the web page and save your account in your browser
- Send your access token to the instance
- Connect with ```mc.example.com.via.localhost```
- Send your access token to the instance. After that you can close the page.
- Connect to ```mc.example.com.via.localhost``` with the account you sent the token.
Fabric/Forge client:
@ -122,8 +121,6 @@ Fabric/Forge client:
- VIAaaS may trigger anti-cheats, due to block, item, movement and other differences between versions. USE AT OWN RISK.
- Take care of browser local storage. Check for XSS vulnerabilities on your domain.
- Check the security of CORS proxy, it will be used for calling to Mojang API.
- Mojang may [lock](https://wiki.geysermc.org/geyser/common-issues/#mojang-resetting-account-credentials) your account
when API is called from a suspect IP address.
## FAQ
@ -137,8 +134,6 @@ Fabric/Forge client:
#### How to use Microsoft Account?:
- If you are using a public VIAaaS instance, use this page https://viaversion.github.io/VIAaaS/ and configure the
WebSocket address.
- If you're an administrator of the instance, edit ```config/web/js/config.js``` (default is in the jar) and
configure your [Azure Client ID](https://wiki.vg/Microsoft_Authentication_Scheme#Microsoft_OAuth_Flow) and your domain
whitelist.
@ -147,7 +142,6 @@ Fabric/Forge client:
#### How to use IPv6?:
- When listening to 0.0.0.0, it should listen on IPv6 too.
- The hostname parser currently doesn't support direct IPv6, but you can use a DNS name with https://sslip.io/
#### I'm getting a DNS error/"Unknown host" while connecting to via.localhost
@ -168,7 +162,7 @@ Fabric/Forge client:
#### Can I use it to connect to .onion Minecraft hidden servers?
- You can use .onion addresses if the instance is proxying the backend connections to TOR. Note that VIAaaS may log your
requests, and that your DNS queries may be unencrypted.
requests, and that your DNS queries may be sent unencrypted.
#### Can you support more versions / Is there some alternative?
@ -177,4 +171,4 @@ Fabric/Forge client:
#### Can I customize the files of HTTP server?
- Add files to ``config/web/`` directory
- Add files to ``config/web/`` directory

View File

@ -1,19 +0,0 @@
# command to installing apache + certbot
sudo apt install apache2 python3-certbot-apache
# generate the let's encrypt certificate with certbot
# enable some needed modules
sudo a2enmod rewrite ssl proxy_http proxy_connect proxy_wstunnel
# this is a example configuration for using in VirtualHost of Apache config
# https://stackoverflow.com/questions/19294816/is-it-possible-to-ignore-an-apache-proxyd-certificate
# https://stackoverflow.com/questions/27526281/websockets-and-apache-proxy-how-to-configure-mod-proxy-wstunnel
SSLProxyEngine on
SSLProxyCheckPeerCN off
SSLProxyCheckPeerExpire off
ProxyPreserveHost on
RewriteEngine on
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule ^/viaaas/(.*) wss://localhost:25543/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule ^/viaaas/(.*) https://localhost:25543/$1 [P,L]