diff --git a/docs/src/asciidoc/getting-started/running-apollo.adoc b/docs/src/asciidoc/getting-started/running-apollo.adoc index e69de29b..cd7b9f5f 100644 --- a/docs/src/asciidoc/getting-started/running-apollo.adoc +++ b/docs/src/asciidoc/getting-started/running-apollo.adoc @@ -0,0 +1,63 @@ += Running Apollo + +This is a short guide to getting a copy of Apollo from our VCS and running a server able to accept connections from a game client. +It assumes you're starting fresh and have no local copy of Apollo. + +== Requirements + +You should be familiar with running programs on the UNIX shell or Windows command prompt. +There is also a short list of prerequisites below needed to complete this guide. + + * Git + * Gradle + * Java 8 + * RuneScape r377 game data files footnote:[We are unable to provide user-end assets like the game data or client due to copyright restrictions.] + +== Getting Apollo + +NOTE: Apollo is still in a development phase and has no current stable release, +so to run the server we need to build it from sources first. + +The URL for the Apollo git repository is https://github.com/apollo-rsps/apollo.git. You can clone this using the `git` command-line client +or by using the https://help.github.com/desktop/guides/contributing-to-projects/cloning-a-repository-from-github-desktop/[GitHub desktop client]. + +``` +> $ git clone https://github.com/apollo-rsps/apollo.git +``` + +If using the command line client, the repository will now be under a folder named _apollo_ and is ready to build. +When complete open a shell or Windows command prompt in that directory and move to the next step. + +== Building Apollo + +Apollo uses Gradle build scripts as it's build system. To build it, create a command prompt or shell in the Apollo repository folder and run: +``` +> $ gradle build genRsa +``` + +This will build the core server with the content plugins and run their respective tests. +This process takes around a minute to complete and when done will generate and output a set of RSA key parameters used by connecting clients to encrypt their credentials. +Save these for later. + +== Starting Apollo + +The last dependency is putting the game data in a location where the server can find it. +By default Apollo looks under `data/fs` in the root directory for a folder matching the release number. +Apollo supports release 377, so in our case we want the directory structure to look like this: + +``` +data/fs +└── 377 + ├── jingle1.mid + ├── main_file_cache.dat + ├── main_file_cache.idx0 + ├── main_file_cache.idx1 + ├── main_file_cache.idx2 + ├── main_file_cache.idxN +``` + +Now that everything is in place we can use the Gradle task to boot the server +``` +> $ gradle server:run +``` +After booting Apollo will have loaded the game data and be ready to accept connections. \ No newline at end of file