{"id":18574146,"url":"https://github.com/viaversion/viaaas","last_synced_at":"2025-04-04T14:06:24.341Z","repository":{"id":37598381,"uuid":"287775866","full_name":"ViaVersion/VIAaaS","owner":"ViaVersion","description":"ViaVersion as a Service - standalone ViaVersion proxy","archived":false,"fork":false,"pushed_at":"2025-03-06T23:54:09.000Z","size":1611,"stargazers_count":171,"open_issues_count":24,"forks_count":15,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-28T13:08:30.254Z","etag":null,"topics":["hacktoberfest","html5","js","kotlin","ktor","minecraft","minecraft-proxy","minecraft-server-proxy","minecraft-server-software","netty","proxy","proxy-server","saas","viaversion"],"latest_commit_sha":null,"homepage":"https://viaversion.github.io/VIAaaS","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ViaVersion.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://creeper123123321.github.io/#donate"],"github":["creeper123123321"]}},"created_at":"2020-08-15T15:43:06.000Z","updated_at":"2025-03-27T19:15:45.000Z","dependencies_parsed_at":"2023-02-12T17:45:28.514Z","dependency_job_id":"687c5154-e95d-4857-be81-b38c863f468c","html_url":"https://github.com/ViaVersion/VIAaaS","commit_stats":{"total_commits":762,"total_committers":12,"mean_commits":63.5,"dds":"0.16141732283464572","last_synced_commit":"26699454a1efc500ec2de988d319b98283375fcd"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViaVersion%2FVIAaaS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViaVersion%2FVIAaaS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViaVersion%2FVIAaaS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ViaVersion%2FVIAaaS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ViaVersion","download_url":"https://codeload.github.com/ViaVersion/VIAaaS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247190250,"owners_count":20898702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","html5","js","kotlin","ktor","minecraft","minecraft-proxy","minecraft-server-proxy","minecraft-server-software","netty","proxy","proxy-server","saas","viaversion"],"created_at":"2024-11-06T23:14:03.235Z","updated_at":"2025-04-04T14:06:24.322Z","avatar_url":"https://github.com/ViaVersion.png","language":"Kotlin","readme":"VIAaaS\n---\n\n[![ViaVersion Discord](https://img.shields.io/badge/chat-on%20discord-blue.svg)](https://viaversion.com/discord)\n[![powered by ViaVersion](https://img.shields.io/badge/powered%20by-ViaVersion-blue.svg)](https://viaversion.com/)\n\n\nVIAaaS - ViaVersion as a Service - Standalone ViaVersion proxy\n\n\u003cimg 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\"\u003e\n\nAddress generator: https://jo0001.github.io/ViaSetup/aspirin\n\nPublic instances: https://github.com/ViaVersion/VIAaaS/wiki/List-of-Public-Instances\n\n## Videos\n\nOffline mode tutorial: https://youtu.be/lPdELnrxmp0\n\n## How does it work?\n\n- [ViaVersion](https://viaversion.com), [ViaBackwards](https://viaversion.com/backwards)\n  and [ViaRewind](https://viaversion.com/rewind) translates the connections to backend server.\n- VIAaaS auth page stores account credentials in the player's browser local storage.\n- It uses a CORS Proxy for calling Mojang APIs.\n- Account credentials aren't sent to VIAaaS instance by default.\n- The web page receives and validates the join game request from VIAaaS instance.\n\n## Setting up server instance\n\nDownload: [GitHub Actions](https://github.com/ViaVersion/VIAaaS/actions) (needs to be logged into GitHub)\nor [JitPack](https://jitpack.io/com/github/ViaVersion/VIAaaS/master-SNAPSHOT/VIAaaS-master-SNAPSHOT-all.jar)\n\n### How to download and start VIAaaS server:\n\n```sh\ncurl -Lf --output VIAaaS-all.jar \"https://jitpack.io/com/github/ViaVersion/VIAaaS/master-SNAPSHOT/VIAaaS-master-SNAPSHOT-all.jar\"\njava -jar VIAaaS-all.jar\n```\n\n- Requires Java 17\n- Default Minecraft: ```via.localhost``` with port 25565\n- Default HTTPS: ```https://localhost:25543/```\n\n### How to create a public server\n\n- You need a DNS wildcard pointing to VIAaaS instance, like ``*.example.com -\u003e 192.168.123.123``.\n- Configure the hostname in the config\n- Open the Minecraft port (25565)\n- The HTTPS page needs a valid SSL certificate, you can use a reverse proxy like [Apache](https://httpd.apache.org/) (with\n  a [Let's Encrypt](https://letsencrypt.org/) certificate).\n\n## Usage for players\n\nYou'll need to specify which server you want to connect through address parameters\nadded as prefix in ``via.localhost`` or via web page (default https://localhost:25543/).\n\n#### Offline mode:\n\n- Connect to ```mc.example.net.via.localhost```\n\n#### Online mode:\n\nWeb login:\n\n- Go to VIAaaS auth webpage (default is https://localhost:25543/)\n- Listen to the username A (you'll use it to connect to the VIAaaS instance).\n- Add the account B (you'll use it in backend server).\n- Keep the page open\n- Connect with your account A to ```mc.example.com._u(account B).via.localhost```\n- Approve the login in the webpage\n\nWeb login via token caching:\n\n- Open the web page and save your account in your browser\n- Send your access token to the instance. After that you can close the page.\n- Connect to ```mc.example.com.via.localhost``` with the account you sent the token.\n\nFabric/Forge client:\n\n- Install [OpenAuthMod](https://github.com/RaphiMC/OpenAuthMod) in your client.\n- Join the server: ```mc.example.net.via.localhost```\n- Approve the login\n\n### Address options\n\n#### Example address:\n\n- ```server.example.net._p25565._v1_12_2._of._uBACKUSERNAME.via.example.com```\n- ```server.example.net.v_1_8.via.example.com```\n\n#### Address parts:\n\n- You can use ``(option)_(value)`` too, like ``p_25565``.\n- ```server.example.net```: backend server address\n- ```_p```: backend port\n- ```_v```: backend version ([protocol id](https://wiki.vg/Protocol_version_numbers) or name, replace ``.`` with ``_``)\n  . ```AUTO``` is default (with 1.8 as fallback).\n- ```_o```: ```true``` to force online mode in frontend, ```false``` to force offline mode in frontend. If not set, it\n  will be based on backend online mode.\n- ```_u```: username to use in backend connection (default is front-end username)\n- ```via.example.com```: instance address (defined in config)\n\n## WARNING\n\n- VIAaaS may trigger anti-cheats, due to block, item, movement and other differences between versions. USE AT OWN RISK.\n- Take care of browser local storage. Check for XSS vulnerabilities on your domain.\n- Check the security of CORS proxy, it will be used for calling to Mojang API.\n\n## FAQ\n\n### Accounts\n\n#### Why to use an online webpage for online mode?:\n\n- It's easier to maintain in that way, because providing login via chat requires encoding and decoding more packets,\n  which reduces maintainability.\n- It allows your account password and token to be kept with you.\n\n#### How to use Microsoft Account?:\n\n- If you're an administrator of the instance, edit ```config/web/js/config.js``` (default is in the jar) and\n  configure your [Azure Client ID](https://wiki.vg/Microsoft_Authentication_Scheme#Microsoft_OAuth_Flow) and your domain\n  whitelist.\n\n### Connection\n\n#### How to use IPv6?:\n\n- The hostname parser currently doesn't support direct IPv6, but you can use a DNS name with https://sslip.io/\n\n#### I'm getting a DNS error/\"Unknown host\" while connecting to via.localhost\n\n- Try configuring ```via.localho.st``` as hostname suffix instead\n\n#### How to use with Geyser?\n\n- Set the parameters in Geyser's `address` field:\n  ```yml\n  remote:\n    # The IP address of the remote (Java Edition) server\n    address: 2b2t.org._v1_12_2.via.localhost\n  ```\n- If you are using GeyserConnect: connect to a publicly available VIAaaS instance,\n  like ```mc.example.com._v1_8.via.example.net``` as a Java Edition server.\n\n#### Can you support more versions / Is there some alternative?\n\n- See [ViaProxy](https://github.com/ViaVersion/ViaProxy)\n\n#### Can I customize the files of HTTP server?\n\n- Add files to ``config/web/`` directory\n","funding_links":["https://creeper123123321.github.io/#donate","https://github.com/sponsors/creeper123123321"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviaversion%2Fviaaas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviaversion%2Fviaaas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviaversion%2Fviaaas/lists"}