Skip to content

jessefaler/SLS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

211 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SLS Standalone Logo

SLS is a system for managing networks of ephemeral game servers, designed for games like Minecraft, Hytale, Garry's Mod, and Rust. It lets you spin up and tear down servers quickly, with each server fully isolated and reproducible.

For full documentation and examples view SLS Documentation.

Discord: Discord

Star this repo

Servers are defined using Blueprints, where you can specify everything from:

  • Server version and resource limits
  • Volumes mounts
  • Config patches
  • Custom configuration

From a single Blueprint, you can create as many server instances as needed.

Key Components

  • Protocube: The core controller of SLS. Tracks all servers, provides an API for management, and routes requests to backend nodes.

  • Daemon (nodes): The server control plane. Runs on each physical machine, connects to Protocube, and manages servers inside Docker containers.

    Extra:

  • S4J: A Java API wrapper for the SLS API.

  • vSLS: vSLS is a Velocity plugin that lets you manage SLS servers in game.


SLS is ideal for networks that need fast, consistent, and isolated server environments. Whether you're running minigames, private worlds, or large server networks, SLS gives you full control over how servers are created, configured, and managed.

Features

  • Isolated & Reproducible Environments Every server runs in its own Docker container and is created exactly as defined in its Blueprint ensuring consistency across every instance.

  • Zero-Copy Instancing (COW) Avoid repeated file copying and reinstallations. SLS uses copy-on-write mounts to efficiently create new servers with minimal overhead.

  • Horizontal Scaling Easily scale your network by adding more nodes. SLS automatically utilizes available resources across your infrastructure.

  • Real-Time Status & Events Track server lifecycle states (starting, online, stopping) and subscribe to an event stream for real-time updates.

  • Built-in Load Distribution Servers are automatically distributed across nodes to balance load and optimize resource usage.

  • Custom Software Support Define and run your own server types using flexible software configurations.

  • HTTP API Control Fully manage servers programmatically through a simple and powerful HTTP API.

Demo

A live demo Minecraft network is available if you want to try SLS in action.

  • Server address: demo.protoxon.com

This demo showcases how servers can be dynamically created and managed in a real environment.

The demo utilizes the vSLS plugin.

More Information

For full documentation, examples, view SLS Documentation.

Example Blueprint

Note: This is a simplified example Blueprint. It does not include all available sections. For full details, see: Blueprint Docs

blueprint:
  id: "slsmp1"
  name: "SLSMP1"
  type: "survival"

server:
  software: "paper"
  version: "1.21.11"
  
state:
  volumes:
    - name: "world" 
      source: "worlds/survival/SLSMP1"
      target: "/world"
      mode: cow

About

SLS is an open-source system for automating the deployment, scaling, and management of containerized game servers.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages