selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
docker-spigot logo

Self-host docker-spigot

Docker image for self-hosted Spigot Minecraft server

ReleaseOpen Source
Updated2 years ago
LanguageShell
Setup difficultyEasy
Stars
173
Port
25565 (Minecraft server)
Docker
nimmis/spigot

What is docker-spigot?

docker-spigot is a Docker image that builds and runs a Spigot Minecraft server on Ubuntu 20.04 with Eclipse Adoptium Java (versions 8 through 21). On first launch it downloads BuildTools and compiles the Spigot JAR for the chosen Minecraft version (defaulting to latest). Users can pick specific Minecraft versions via SPIGOT_VER, switch versions in a running container, configure memory limits (MC_MAXMEM, MC_MINMEM), set extra Java options, and control the server through docker exec commands (mc_start, mc_stop, mc_restart, mc_send, mc_log). The image handles EULA acceptance via an environment variable, auto-detects the timezone, changes the minecraft user's UID to match mounted volume ownership, and performs graceful shutdown on docker stop. It supports Minecraft versions from 1.8.3 through 1.20+ with appropriate Java versions selected automatically.

Should you self-host docker-spigot?

docker-spigot scores 43/100 on selfhost.directory (how scoring works) and ranks #48 of 62 in Game Servers. It has 173 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is written mostly in Shell.

Its closest alternative on selfhost.directory is minecraft (78/100, 14 491 stars). It scores higher overall, so compare the two before you pick. See docker-spigot vs minecraft side by side.

Features

  • Auto-detect timezone
  • Automatic Spigot compilation
  • Auto-restart control
  • Configurable memory limits
  • Custom Java options
  • EULA acceptance via environment variable
  • Graceful shutdown on container stop
  • Multiple Minecraft versions
  • Persistent data via volume mounts
  • Server management commands
  • UID mapping for mounted volumes
  • Version switching in running container

docker-spigot README

How to configure docker-spigot

  • EULAAccept Mojang EULA to allow server to start

    Accept Mojang EULA to allow server to start

    values: true

  • JAVA_VERSION_MAJOR17Major Java version to use

    Major Java version to use

    values: 8, 11, 16, 17, 18, 20, 21

  • MC_MAXMEM1gMaximum memory for Java heap (e.g., 2g, 1024m)

    Maximum memory for Java heap (e.g., 2g, 1024m)

    values: <size>m for MB or <size>g for GB

  • MC_MINMEMMC_MAXMEMInitial memory reservation for Java heap

    Initial memory reservation for Java heap

    values: <size>m for MB or <size>g for GB

  • OTHER_JAVA_OPSAdditional Java options for server startup

    Additional Java options for server startup

    values: Any valid Java JVM options

  • SPIGOT_AUTORESTARTyesWhether server auto-restarts on in-game stop command

    Whether server auto-restarts on in-game stop command

    values: yes, no

  • SPIGOT_HOME/minecraftDirectory for Spigot server files

    Directory for Spigot server files

    values: Any valid path

  • SPIGOT_UID1000UID for minecraft user to match mounted volume permissions

    UID for minecraft user to match mounted volume permissions

    values: Any valid UID

  • SPIGOT_VERlatestMinecraft version to compile (e.g., 1.18, latest)

    Minecraft version to compile (e.g., 1.18, latest)

    values: Any valid Minecraft release version

More in Game Servers

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…