Logo made by Karumata | Banner mady by Slickz
A minecraft network communication system based on Netty (Some call it 'Cloud system', which is not quite correct).
This project was originally written for a minecraft network, but after it went down I decided to share it on Github. So use this on your own responsibility.
If you find any flaws feel free to open up an Issue or a Pull Request
It is recommended to setup this Cloud on an Unix system
- Download the .sh files from the /scripts folder (
Raw
->Rightlick
->Save site
) and save them inside a folder where you want the program to be installed (e.g.:/home/minecraft/
). - Run install_requirements.sh to install Redis and MongoDB (you can skip this step if you've already installed them or if you want to install them yourself).
- Run setup_cloud.sh to create the
/cloud
folder and to download the files from Jenkins. (Note: This step is not supported anymore, therefore you have to compile the source yourself.) - Put the start_cloud.sh into the
/cloud
folder and run the script to start the cloud once - It'll fail but now you're able to configure the MongoDB connection inside the/cloud/configuration/config.yml
.
It could now look like this:
{
"debug": false,
"redis-config": "redis_config.json",
"max-ram-usage": 60,
"netty": {
"host": "localhost",
"port": 8000,
"whitelist": {
"activated": true,
"ips": [
"127.0.0.1"
]
}
},
"database": {
"hostname": "localhost",
"database": "dbName",
"port": 27017,
"user": "user",
"password": "password"
}
}
- For configuring the Redis connection go to
redis_config.json
For further informations about theredis_config.json
visit the Redisson Wiki - If the configuration is correct the Cloud should be able to start successfully now.
Thunder is the bungee part of the cloud, so setting it up is fairly simple.
- Download the bungee file from the md-5 Jenkins server and put it inside a folder of your choice (e.g.:
/home/minecraft/bungee/
). - Create the
start.sh
to start the bungee and put it into the same folder as the Bungeecord jar. It could look like this:
#!/bin/sh
screen -S bungeecord -dm java -jar -Xmx1024M yourBungeecordFile.jar
- Start the bungeecord once to create the folders and files.
- Put the
/cloud/jars/thunder.jar
into the/plugins
folder. - Now start the bungee again and edit the
/plugins/Thunder/config.json
to set the instance name, cloud-ip and cloud-port (If no changes needed leave it as it is). If you want to edit the Redis config, you can do it with the same file as the cloud (redis_config.json
). - Done.
A daemon is in this setup a program which runs in the background and manages the server dynamically.
It's basically the same setup as Thunder but instead of downloading the bungeecord jar get the /cloud/jars/daemon.jar
and put it inside a folder of your choice and instead of creating a script take the start_daemon.sh script. Start the daemon and configure it just like the you did with the Thunder configuration files.
A pattern is a pre-defined server folder which will be used to start multiple servers of one instance. It is recommended to use something like RSync (Thanks @Doppelnull) to synchronize data between the servers. Creating a pattern:
- Use
/pattern create <...>
inside the Cloud console. - After creation in the database go to a daemon and inside the
patterns/nameOfYourCreatedPattern
put all your server files (You know how to obtain them hopefully) inside there (plugins, worlds, server.jar, start.sh, ...). Finish it up by putting thecloud/jars/lightning.jar
inside the plugins folder as well.
For different pattern management (deletion, ..) use/pattern
inside the cloud console, you'll get sub commands as help.