VIAaaS - ViaVersion as a Service - Standalone ViaVersion proxy
Address generator: https://jo0001.github.io/ViaSetup/aspirin
Public instances: https://github.com/ViaVersion/VIAaaS/wiki/List-of-Public-Instances
Offline mode tutorial: https://youtu.be/lPdELnrxmp0
- ViaVersion, ViaBackwards and ViaRewind translates the connections to backend server.
- VIAaaS auth page stores account credentials in the player's browser local storage.
- It uses a CORS Proxy for calling Mojang APIs.
- Account credentials aren't sent to VIAaaS instance by default.
- The web page receives and validates the join game request from VIAaaS instance.
Download: GitHub Actions (needs to be logged into GitHub) or JitPack
curl -Lf --output VIAaaS-all.jar "https://jitpack.io/com/github/ViaVersion/VIAaaS/master-SNAPSHOT/VIAaaS-master-SNAPSHOT-all.jar"
java -jar VIAaaS-all.jar
- Requires Java 17
- Default Minecraft:
via.localhost
with port 25565 - Default HTTPS:
https://localhost:25543/
- 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 a reverse proxy like Apache (with a Let's Encrypt certificate).
- You'll need to configure a Azure Client ID, edit
config/web/js/config.js
(default is in the jar) and configure your Azure Client ID.
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/).
- Connect to
mc.example.net.via.localhost
Web login:
- Go to VIAaaS auth webpage (default is https://localhost:25543/)
- Listen to the username A (you'll use it to connect to the VIAaaS instance).
- Add the account B (you'll use it in backend server).
- Keep the page open
- Connect with your account A to
mc.example.com._u(account B).via.localhost
- Approve the login in the webpage
Web login via token caching:
- Open the web page and save your account in your browser
- 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:
- Install OpenAuthMod in your client.
- Join the server:
mc.example.net.via.localhost
- Approve the login
server.example.net._p25565._v1_12_2._of._uBACKUSERNAME.via.example.com
server.example.net.v_1_8.via.example.com
- You can use
(option)_(value)
too, likep_25565
. server.example.net
: backend server address_p
: backend port_v
: backend version (protocol id or name, replace.
with_
) .AUTO
is default (with 1.8 as fallback)._o
:true
to force online mode in frontend,false
to force offline mode in frontend. If not set, it will be based on backend online mode._u
: username to use in backend connection (default is front-end username)via.example.com
: instance address (defined in config)
- 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.
- It's easier to maintain in that way, because providing login via chat requires encoding and decoding more packets, which reduces maintainability.
- It allows your account password and token to be kept with you.
- The hostname parser currently doesn't support direct IPv6, but you can use a DNS name with https://sslip.io/
- Try configuring
via.localho.st
as hostname suffix instead
- Set the parameters in Geyser's
address
field:remote: # The IP address of the remote (Java Edition) server address: 2b2t.org._v1_12_2.via.localhost
- If you are using GeyserConnect: connect to a publicly available VIAaaS instance,
like
mc.example.com._v1_8.via.example.net
as a Java Edition server.
- See ViaProxy
- Add files to
config/web/
directory