Spigot on Rocky Linux 9 – A Stable and Scalable Platform for Minecraft Server Hosting

Spigot is a highly optimized Minecraft server engine built upon CraftBukkit, offering enhanced performance and extensive plugin support. It’s widely used for running public and private Minecraft multiplayer servers and forms the backbone of many server networks thanks to its efficient memory use, configurable systems, and active development community.

Deploying Spigot on Rocky Linux 9, a CentOS replacement built for long-term support and binary compatibility with RHEL 9, gives server administrators a secure and reliable foundation for running Minecraft servers at scale.


What Is Rocky Linux 9?

Rocky Linux is a community-driven enterprise operating system that serves as a downstream rebuild of Red Hat Enterprise Linux (RHEL). It is functionally similar to AlmaLinux and was launched to fill the void left by CentOS Stream’s shift away from stable RHEL parity.

Key attributes of Rocky Linux 9:

  • Built from RHEL 9 source packages
  • Supported until at least 2032
  • Follows a predictable release cycle and stable ABI
  • Offers enterprise-level security and package consistency

Why Use Rocky Linux 9 for Spigot?

Spigot is a Java-based server application, and Rocky Linux 9 provides a clean, consistent, and long-supported environment for running Java workloads. It’s particularly suited for system administrators who need a stable platform for game hosting, with LTS support, SELinux for security, and systemd for service management.

System FeatureBenefit for Spigot Hosting
OpenJDK 17/21 availableCompatible with modern Minecraft and Spigot builds
dnf module streamsFlexible management of Java, Node.js, and development tools
Kernel 5.14+ (RHEL base)Proven stability and performance for network I/O and file systems
SELinuxOptional security enforcement for server processes
FirewalldSimple firewall rules for port management (e.g., 25565)

Spigot Server Architecture on Rocky Linux

  • Java Runtime (OpenJDK): Required to run the Spigot .jar file
  • Spigot Server Core: Includes Minecraft protocol handling, world generation, and game logic
  • Plugins: Installed under /plugins to extend server functionality
  • World Files: Stored in /world, /world_nether, and /world_the_end
  • systemd Services: Used to auto-start the Spigot server at boot or after crash

Ideal Use Cases for Spigot on Rocky Linux 9

  • Public Minecraft networks with 50–200+ players
  • Plugin development environments for Java/Bukkit APIs
  • Educational servers hosted on institution infrastructure
  • Gaming communities that require uptime and plugin variety
  • Base for Paper or Purpur forks that need reliable hosting

Benefits of Hosting Spigot on Rocky Linux 9

  • ✅ Enterprise-Grade OS: Stable, tested, and supported for nearly a decade
  • ✅ SELinux & Security Tools: Protect against unauthorized access and process abuse
  • ✅ Lightweight & Efficient: No GUI or extra services, maximizing RAM/CPU for JVM
  • ✅ EPEL support: Easy access to optional utilities and performance tools
  • ✅ Docker/Podman Ready: Ideal for containerizing multiple Minecraft server instances

Optimization Tips for Spigot on Rocky Linux

  1. JVM Flags: Use -Xms and -Xmx to allocate appropriate RAM. Example: -Xms2G -Xmx4G.
  2. Tick Rate Tuning: Adjust spigot.yml, bukkit.yml, and paper.yml (if using Paper) for entity and chunk control.
  3. Firewall Rules: Open only the required Minecraft port (25565) and restrict SSH access.
  4. Systemd Service File: Create a spigot.service to auto-start and restart the server.
  5. Backups: Automate world backups using cron, rsync, or snapshots.

Comparison: Rocky Linux 9 vs. Other Server OSes for Spigot

FeatureRocky Linux 9Ubuntu 24.04Debian 12
Support Until203220292028
Java SupportOpenJDK 17/21 via dnfOpenJDK 21 via aptOpenJDK 17/21 via apt
Security FrameworkSELinux + FirewalldAppArmor + UFWAppArmor + iptables/nftables
Resource OverheadLowModerateVery low
Server FocusEnterprise-gradeDeveloper/flexibleMinimalist

Rocky Linux is ideal for long-running, production-grade servers where updates and configuration stability are critical.


Hosting Spigot on Shape.Host VPS with Rocky Linux 9

Running Spigot on a Shape.Host Cloud VPS with Rocky Linux 9 gives you:

  • Full root access for JVM, firewall, and service tuning
  • SSD storage for fast chunk loading and saves
  • Scalable RAM and CPU plans to support larger player bases
  • Secure isolated environments with full SELinux and firewall control

This setup is particularly powerful for game hosting providers or communities running multiple server types (e.g., lobby, minigame, and survival) across isolated containers or virtual machines.


Spigot on Rocky Linux 9 is a powerful and production-grade combination for Minecraft server hosting. Whether you’re running a small friends-only server or a 100-player modded network, Rocky Linux provides the security, consistency, and performance needed to keep your Spigot server online, optimized, and resilient.

Its enterprise-class lifecycle and RHEL compatibility make it especially attractive to professional server operators, hosting providers, and schools or companies running Minecraft as part of their educational or commercial infrastructure.


Step 1: Set Up a VPS Instance on Shape.Host

To host your Spigot server, start by provisioning a virtual server with Shape.Host.

Visit https://shape.host and log in.

Click “Create” → “Instance.”

Shape.host Resources dashboard with Create > Instance highlighted.

Use the following configuration:

Region: Closest to your player base

Shape.host instance form with the data center location selector highlighted.

Operating System: Choose Rocky Linux 9 (64-bit)

Plan: Minimum 2 vCPUs, 4 GB RAM, 40 GB SSD

Shape.host instance form with the operating system image selector highlighted.

Click Create Instance

Shape.host instance form with the Create Instance button highlighted.

After deployment, copy the server’s public IP address

Shape.host Resources dashboard with the server IP address highlighted.

Step 2: Connect to Your Server

From Linux/macOS:

ssh root@your_server_ip

From Windows:

Use PuTTY, paste in your server IP, and log in as root.


Step 3: Install Required Software

Step 3.1 – Update the system

dnf update
Terminal showing DNF/YUM package management commands and output.

Step 3.2 – Install Java 17, Git, and curl

dnf install git curl java-17-openjdk-devel
  • java-17-openjdk-devel: Needed to compile and run Spigot 1.20.4
  • git and curl: Required for downloading and building the server
Terminal showing DNF/YUM package management commands and output.

Step 4: Build Spigot from Source

Step 4.1 – Create a build directory

mkdir -p /opt/spigot
cd /opt/spigot

Step 4.2 – Download BuildTools.jar

curl -o BuildTools.jar https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
Terminal showing Spigot server build output.

Step 4.3 – Compile Spigot

java -jar BuildTools.jar --rev 1.20.4

This step will take a few minutes. It downloads source files and builds spigot-1.20.4.jar.

Terminal showing Spigot server build output.
Terminal showing Spigot server build output.

Step 5: Set Up the Spigot Server

Step 5.1 – Create the server directory

mkdir /opt/spigot-server

Step 5.2 – Move the compiled jar file

cp spigot-1.20.4.jar /opt/spigot-server/spigot.jar
cd /opt/spigot-server

Step 5.3 – Accept the EULA

echo "eula=true" > eula.txt
Terminal showing file and directory setup commands.

Step 6: Create a systemd Service

This lets you manage the server with systemctl.

Step 6.1 – Create a service unit

nano /etc/systemd/system/spigot.service

Paste:

[Unit]
Description=Spigot Minecraft Server
After=network.target

[Service]
WorkingDirectory=/opt/spigot-server
ExecStart=/usr/bin/java -Xms1G -Xmx2G -jar spigot.jar nogui
Restart=on-failure
User=root

[Install]
WantedBy=multi-user.target

🛡️ For better security, replace User=root with a non-root user.

Terminal showing Spigot server build output.

Step 7: Enable and Start the Server

Step 7.1 – Reload systemd to recognize the new service

systemctl daemon-reload

Step 7.2 – Enable Spigot to start at boot

systemctl enable spigot

Step 7.3 – Start the server

systemctl start spigot

Step 7.4 – Check the server status

systemctl status spigot

You should see output confirming that Spigot is running.

Terminal showing Spigot server build output.

Step 8: Connect with Minecraft

Open your Minecraft client and connect using your server IP:

your_server_ip:25565

Make sure port 25565 is open in your firewall settings, if applicable.


You’ve now installed and configured Spigot on Rocky Linux 9, compiled it from source, and set it up to run as a managed system service.

Ready to build your multiplayer world?
Host it on Shape.Host Linux SSD VPS for fast, secure, and always-on gameplay.
Deploy now at https://shape.host