Setup - TheBloom46/bloommanager-wiki GitHub Wiki

Prelude

Verify you have a working BungeeCord or Velocity proxy with functional RedisBungee and PlayerBalancer configurations.

  • Recommended: Test a fully working example setup of BloomManager before creating your own here

BloomManager has been tested and designed to work with a proxy on every dedicated server (or node) within your network. Feel free to experiment with other setups, although support isn't officially offered with system administration-related tasks

To begin, only use one node with a single proxy to verify your BloomManager setup works.

Note: Dedicated server and node are used interchangeably on BloomManager documentation

Configuration

The configuration will be generated upon the first load of BloomManager. Please verify that the version installed corresponds to your proxy.

Below is a description of each configuration value:

host: <value>

  • The IP of your Redis database

port: <value>

  • The port of your Redis database

password: <value>

  • The password of your Redis database

ssl: <true/false>

  • If SSL should be enabled
  • Please use a Java keystore included within the startup args of your proxy to store the CA certificate of your Redis database

initialStartsWith: <value>

  • The first letters of the servers a player will be connected to when they connect to the network
  • For example, initialStartsWith: queue would connect users to a server named "queuena_xzciv" or "queuena_akvlp"

lowerPort: <value>

  • The lower bound of port generation
  • Must be higher than 1023 as those are usually system ports
  • For example, lowerPort: 25580

upperBound: <value>

  • The upper bound of port generation
  • Must be lower than 65535 as that's the limit of computer ports
  • Be sure there are plenty of values available between lowerPort and upperPort, as the server creation process can be hindered if all ports are taken
  • For example, upperPort: 27000

mountBind: <true/false>

directories: <list>

  • The directories for mount bind. This value is null by default and should be filled if mountBind is true.
  • ex.
 directories: 
 - /home/nodeSetup/dependencies/Essentials.jar

ipTables: <true/false>

nodeIP: <value>

  • The plugin will determine the proxy's public IP through an external service if left null.
  • Otherwise, this should contain the public IP of the node on which the proxy is on. This is necessary when formatting connection information and in various plugin logic.
  • For example, nodeIP: 26.93.12.31 would force the plugin to use 26.93.12.3. Meanwhile, nodeIP: null would cause the plugin to determine the server's public IP.

Docker

This is the most challenging aspect of BloomManager. Every server that can be created multiple times should be a docker image

What shouldn't be a docker image:

  • A survival server
  • A server where data is stored locally, such as the world file or plugin data

What should be a docker image:

  • A hub
  • A minigame match
  • Any server where the data persists between servers of the same type (like two hubs where the player balances are synchronized between both servers)

Installing Docker

Review https://docs.docker.com/engine/install/ to install docker

  • Verify docker is on with the command docker in terminal

BloomManager will function incorrectly if docker engine is not online during runtime.

If you're setting up option 1 of the example setup, you don't need to read the information I've included below.

Docker Images

BloomManager passes the following arguments to the docker container upon creation.

  1. The RAM expressed in megabytes
  2. The port of the server
  3. The server name

They don't have to be used, but errors can occur if they aren't expected by the docker image. ex.

FROM ...
ARG ram
ARG port
ARG name

is found in the example configuration's dockerfile.


Additionally, BloomManager runs docker containers with the argument --net=host, this shares the network of the dedicated server to the docker container.

Treat each docker image as a complete server, which you will create and erase using BloomManager's commands.

You must create a docker image for every type of server you plan on instantiating on your network. For example, if I want to have my hub, a bedwars hub, and bedwars matches on my network, I must create a separate docker image for my main server hub, bedwars hub, and my bedwars match.

Please refer to the example setup for more clarity on a correct BloomManager setup.

Testing

Turn on your BungeeCord/velocity proxy and verify there aren't any errors in console.

Afterward, create a server using one of your docker images using the command /servers create

  • View all of the commands with /servers

Verify you can connect to the server.

Finally, verify that you can delete the server.

Voila! You now have a basic setup of BloomManager. The hardest part is now done, feel free to look at BloomManager's other features.

Finished

Thank you for buying and using BloomManager! Click here for command detailed usage

⚠️ **GitHub.com Fallback** ⚠️