Controller: The heart of v3, managing server groups, online servers, and communicating with Server Hosts.
CLI (Command Line Interface): A lightweight interface to connect to the Controller and manage your Cloud components. With the CLI, you can send commands to the controller or install and manage droplets.
Server Host: Handles server startup/shutdown with templates, running on Screens or Docker containers.
Droplets & Plugins:
Droplets: Microservices for non-Minecraft tasks, but still with Minecraft related features like player data (Player Droplet) or Resourcepacks (Resourcepack Droplet).
Plugins: Enhance server features with Proxy (e.g., Notify, CloudCommand) or Server Plugins (e.g., Signs, NPCs).
SimpleCloud v3 has a new and more customizable structure. We have encapsulated all the core components to make it easier to extend your setup. This means you can easily replace all our droplets and plugins with your own implementations.
SimpleCloud has its core components that are needed, but they can be installed and used however you want. This means theoretically you can use any file structure you want.
We don't recommend using a custom file structure. Use the structure below
as it works best in our experience and makes it easier to extend your setup
with our CLI.
application.yml
component.yml
controller.properties
controller-runtime.jar
current_version.txt
database.db
application.yml
component.yml
current_version.txt
serverhost.properties
serverhost-runtime.jar
proxy.yml
lobby.yml
Keep in mind that if you change your file structure, there might be some
things that will not work with our CLI.
SimpleCloud v3 is structured into components - a broad category that includes both core system elements and droplets. These components serve as the building blocks of the system, encompassing essential elements like the Controller, Envoy (necessary for the Dashboard), the Auto-updater, and the CLI, alongside droplets.
We chose to use the term "components" to reflect this inclusive scope. This generic terminology allows us to consistently refer to all parts of the system, whether they are core elements or droplets.
The auto-updater is a crucial part of SimpleCloud, ensuring that all components stay up-to-date with the latest features and security patches. It resides in the components/auto-updater directory and manages version control through versions.yml. The auto-updater is configured through its own application.yml file and updates itself before updating other components.
Every component is built and configured to use properties files for configuration. The properties file is located in the components folder and named {component}.properties.
Here's an example of a properties file:
DATABASE_URL=jdbc:sqlite:database.dbGROUPS_PATH=../../groups# GRPC Uncomment and change this if you want to change grpc defintionsGRPC_HOST=0.0.0.0# GRPC_PORT=5816# PUBSUB Uncomment and change this if you want to run pubsub on another port# PUBSUB_GRPC_PORT=5817AUTH_SECRET_PATH=../.secrets/auth.secret