1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-04-24 16:17:44 +00:00
kawari/README.md

71 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Kawari
A substitute for a few official servers such as “ffxiv.com” and “square-enix.com”. Its still early in development, but it can already emulate the basic login flow.
**Notice:** This does not allow you to download copyrighted game files, or circumvent the copyright protections enacted by Square Enix.
## Components
* Web
* A simple website used for account management and other misc features.
* Admin
* The admin panel for configuring the multitude of servers.
* [Frontier](https://docs.xiv.zone/server/frontier/)
* Handles gate status requests.
* [Login](https://docs.xiv.zone/server/login/)
* Handles logging in and giving a SID.
* [Patch](https://docs.xiv.zone/server/patch/)
* Handles checking if the client needs any patching.
* [Lobby](https://docs.xiv.zone/server/lobby/)
* Handles logging the client into the world server, displaying the character list and so on.
* [World](https://docs.xiv.zone/server/world/)
* Handles actual world operation, e.g. characters running around.
## Supported Game Versions
Only the Windows version of the game is supported at the moment. Only the latest version will be supported, older versions are not in the scope of this project.
## Running
Install [Rust](https://rust-lang.org) and then use the `run.sh` helper script in the repository. You can of course run each server individually.
In order to run the World server, you need a copy of Oodle networking. Fortunately it is easy to do, assuming you have an Epic Games account and a GitHub account. Use something like [get-oodle-lib](https://github.com/sehnryr/get-oodle-lib) or another tool to fetch "liboo2net" for your platform.
### Testing via launcher
Testing on a real launcher is not yet supported, the easiest way is through [Astra](https://github.com/redstrate/Astra) which allows you to plug in your own domains. Because of how the domains are set up, you can't simply plug them in though.
You will need some kind of reverse proxy because simply editing the `hosts` file will not work. Each server is behind a subdomain (like `frontier.square-enix.com`) and some services span multiple subdomains (such as `patch-bootver.square-enix.com` and `patch-gamever.square-enix.com`.) We will walk through using [Caddy](https://caddyserver.com/) for this purpose, but any reverse proxy will do.
First you need to edit your `hosts` file. Assuming you're using the default ports for each server, add the following:
```
127.0.0.1 ffxiv.local
127.0.0.1 admin.ffxiv.local
127.0.0.1 frontier.ffxiv.local
127.0.0.1 patch-bootver.ffxiv.local
127.0.0.1 patch-gamever.ffxiv.local
127.0.0.1 ffxiv-login.square.local
```
Then run Caddy from the repository's `Caddyfile`. You may need to run it as root because it binds to port 80:
```
sudo caddy run
```
And then in Astra, plug these domains like so into Developer Settings:
* `square.local` into the "SE Login Server"
* `ffxiv.local` into "SE Main Server"
Make sure to set the "preferred protocol" to "HTTP" as well because HTTPS will not work without more setup.
## Creidts & Thank You
* [Sapphire](https://github.com/SapphireServer/Sapphire) for reference.
* [iolite](https://github.com/0xbbadbeef/iolite) for reference.
## License
This project is licensed under the [GNU Affero General Public License 3](LICENSE). Some code or assets may be licensed differently.