Created by Saghetti#7380. Developed by noahhusby#6512.
- Multi-Proxy Binding - Syncs server data between multiple bungeecord proxies.
- Instance Deployment - Instantly deploy individual minecraft server instances and sync them with the proxies.
- Fleet Scaling - Automatically scale the instances up/down based upon network traffic and API calls.
- Load Balancing - Automatically chooses the best server for a player to join.
This repository contains the following modules:
| Name | Description |
|---|---|
| api | API for all TerraBungee services. This can be used to create custom services (Minigame Libraries, Discord Bots, etc.) |
| controller | Controller for TerraBungee. Connects all services together and performs logic for load balencing and fleet scaling |
| proxy | Bungeecord plugin for TerraBungee. Keeps track of player data/locations. Performs the actual load balancing of players. Adds/deletes instances automatically when added to the controller |
| instance | Bukkit plugin for TerraBungee. Keeps track of individual instances. Does other cool magic things in the background |
Go to the releases page and download the latest bungeecord/bukkit plugin, node, and controller.
# Configuration file
##########################################################################################################
# discord
#--------------------------------------------------------------------------------------------------------#
# Settings for the discord bot
##########################################################################################################
discord {
# The token of the discord bot. [default: ]
S:"Bot Token"=
# The ID of the Discord Guild/Server that the bot should listen on. [default: ]
S:"Guild ID"=
# The ID of the Discord channel where TerraBungee updates should be sent. [default: ]
S:"Updates Channel ID"=
}
##########################################################################################################
# general
#--------------------------------------------------------------------------------------------------------#
# General settings for the TerraBungee Controller
##########################################################################################################
general {
# The IP address that the controller should run on. [default: 127.0.0.1]
S:Host=127.0.0.1
# The port that the controller should run on. [range: 0 ~ 65535, default: 7000]
I:Port=7000
}# TerraBungee
# (C) 2020 noahhusby
# BungeeCord Config
# The URL that the controller can be accessed from
# NOTE: must end with a slash
# It is recommended to use 127.0.0.1 instead of localhost due to reduced latency
controller-url: 127.0.0.1:7000
service-id: proxyA/tb- TerraBungee Information/tba- TerraBungee Admin Commands
terrabungee.admin- Gives access to TerraBungee admin commands. Only give this permission to people you trust! Otherwise, you might wake up with no servers left
- Clone this repo, or download as a zip
- Open the
controllerfolder in IntelliJ - Import the Gradle Project
- Build Using: gradle task -
shadowJar - Built jar is located in
/build/libs
- Clone this repo, or download as a zip
- Open the
proxyfolder in IntelliJ - Import the Gradle Project
- Build Using: gradle task -
shadowJar - Built jar is located in
/build/libs
- Clone this repo, or download as a zip
- Open the
apifolder in IntelliJ - Import the Gradle Project
- Build Using: gradle task -
shadowJar - Built jar is located in
/build/libs - Copy the jar into
/libsin the root directories of the node, proxy, instance, and controller projects
- No. This is closed source, we don't want you here. If you're supposed to be here, then refer to the API module above.
