From b0336567cc0e9d1f281f61fb307ba14b3d1ddf30 Mon Sep 17 00:00:00 2001 From: SturdyFool10 Date: Mon, 11 Dec 2023 13:11:47 -0700 Subject: [PATCH] Make readme more human readable --- README.md | 82 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 53 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index b8414e2..0c2bd67 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,53 @@ -# RustServerController - -## Project Status: -### main: [![Build Win](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_win.yml/badge.svg?branch=main)](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_win.yml) [![Build Linux](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_linux.yml/badge.svg)](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_linux.yml) [![Build MacOS](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_MacOS.yml/badge.svg)](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_MacOS.yml) -### testing: [![Build Win Testing](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_win_testing.yml/badge.svg)](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_win_testing.yml) [![Build Linux Testing](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_linux_testing.yml/badge.svg)](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_linux_testing.yml) [![Build MacOS Testing](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_MacOS_testing.yml/badge.svg)](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_MacOS_testing.yml) -This server software is for the easy control of servers deployed on another machine, using as little by way of resources as it can, you should not notice it in all but the most resource limited of scenarios -## How to build: -To get started, you can go two routes: -### Build and compile from scratch: -in order to allow you to compile this project, clone the main branch, then go into the root directory(it should look the same as the github repo from the main branch in there), from there, you want to get your terminal and run the command: -```bash -cargo build --release -``` -once the build is complete, you should be able to find your compiled executable as /target/release/server_host.exe, its standalone so move it where you please! -Please note that you will need to go to rustup in order to get cargo installed and you may want git as well for easy cloning of the repo. -### go to the releases tab for official stable and complete builds -I will be updating and posting pre-compiled executables to the repo, these are less secure for someone who does know rust, since I will likely not be distributing source code with the executable versions, but will require much less technical expertise and resources -# Masters and Slaves -with a new feature recently added, this is *in theory* ready for a more clustered setup, allowing for the configuration of masters and slaves -## Configuring a node to become a slave: -A server becomes a slave when the slave line in the configuration is set to true, being a slave has two main meanings: that the node may not have any slaves and will not attempt to make connections to configured slaves, and that the node will not host a webui. -## Configuring a master to connect to a slave: -On windows use the ipconfig command to get the ipv4 address of your slave node's host PC, in the config paste this template and fill in the values, the ipv4 address goes into the address field: -```json -{ - "address": "", - "port": "" -} -``` + +# RustServerController Documentation + +## Current Project Status: +### Main Branch: +- Windows Build Status: [![Build Status for Windows](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_win.yml/badge.svg?branch=main)](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_win.yml) +- Linux Build Status: [![Build Status for Linux](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_linux.yml/badge.svg)](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_linux.yml) +- MacOS Build Status: [![Build Status for MacOS](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_MacOS.yml/badge.svg)](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_MacOS.yml) + +### Testing Branch: +- Windows Testing Build Status: [![Build Status for Windows Testing](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_win_testing.yml/badge.svg)](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_win_testing.yml) +- Linux Testing Build Status: [![Build Status for Linux Testing](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_linux_testing.yml/badge.svg)](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_linux_testing.yml) +- MacOS Testing Build Status: [![Build Status for MacOS Testing](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_MacOS_testing.yml/badge.svg)](https://github.com/SturdyFool10/RustServerController/actions/workflows/build_MacOS_testing.yml) + +RustServerController is designed for seamless server management on remote machines, with minimal resource usage, ensuring it remains unobtrusive in most scenarios. + +## Building the Project: +You can start building in two ways: + +### Building from Source: +- Clone the main branch of the repository. +- Navigate to the root directory, which mirrors the structure of the GitHub repository's main branch. +- Open your terminal and execute the following command: + ```bash + cargo build --release + ``` +- Once built, the compiled executable can be found at `/target/release/server_host.exe`. This file is standalone and can be moved as needed. +- Note: Ensure that you have installed Cargo from [rustup.rs](http://rustup.rs). Git might also be required for cloning the repository. + +### Using Pre-Compiled Executables: +- Pre-compiled executables are regularly updated and posted in the repository's releases tab. +- These executables are less secure for those familiar with Rust, as source code may not always be provided, but they are easier to use and require less technical knowledge. + +# Master-Slave Architecture +The recent addition of a new feature enables a clustered setup with master and slave configurations. + +## Configuring a Slave Node: +- A server is designated as a slave by setting the 'slave' line to true in its configuration. +- Being a slave means the node will neither have slaves nor attempt to connect to configured slaves, and it will not host a web UI. + +## Configuring a Master to Connect to a Slave: +- On Windows, use the `ipconfig` command to obtain the IPv4 address of the slave node's host PC. +- Edit the configuration using the following template, inserting the slave's IPv4 address and port: + ```json + { + "address": "", + "port": "" + } + ``` + +### Additional Information: +- To edit a slave's configuration, use an external text editor (Notepad++ recommended). +- While chaining master nodes is possible, it is not recommended due to potential latency issues. Support is not provided for setups with more than one layer of indirection. Assistance requests for multi-indirection setups will be the user's responsibility.