Skip to main content
Beyond the mainstream server types, the Docker Minecraft Server supports several specialized and custom server implementations for specific use cases.

SpongeVanilla

SpongeVanilla is a community-driven platform that implements the Sponge API on vanilla Minecraft servers without requiring Forge.

Configuration

environment:
  TYPE: SPONGEVANILLA
  VERSION: "1.12.2"
services:
  minecraft:
    image: itzg/minecraft-server:java8-multiarch
    environment:
      EULA: "TRUE"
      TYPE: SPONGEVANILLA
      VERSION: "1.12.2"
    ports:
      - "25565:25565"
    volumes:
      - ./data:/data

Version Selection

By default, SpongeVanilla runs the latest STABLE version:
environment:
  TYPE: SPONGEVANILLA
  # Uses latest STABLE by default
Specific Version:
environment:
  TYPE: SPONGEVANILLA
  SPONGEVERSION: "1.11.2-6.1.0-BETA-19"
Experimental Branch:
environment:
  TYPE: SPONGEVANILLA
  SPONGEBRANCH: EXPERIMENTAL
Current Sponge STABLE versions for Minecraft 1.12 require Java 8 tag:
image: itzg/minecraft-server:java8-multiarch

Limbo

Limbo is a lightweight, minimal server for maintaining player connections. Perfect for lobby servers or connection holding.

Configuration

environment:
  TYPE: LIMBO
  LIMBO_BUILD: LATEST
  LIMBO_SCHEMA_FILENAME: default.schem

Environment Variables

VariableDefaultDescription
TYPE-Set to LIMBO
LIMBO_BUILDLATESTBuild number from CI
FORCE_REDOWNLOADfalseForce re-download server JAR
LIMBO_SCHEMA_FILENAMEdefault.schemSchematic file for world
LEVELDefault;${LIMBO_SCHEMA_NAME}Level configuration
The VERSION variable is ignored for Limbo. Find the appropriate build number from the CI page to match your client version.

MOTD Configuration

Limbo requires JSON chat format instead of format codes:
environment:
  TYPE: LIMBO
  MOTD: '{"text":"Welcome to Limbo","color":"gold"}'
If you provide a plain string, it will be automatically converted to JSON format.

Complete Example

docker-compose.yml
services:
  limbo:
    image: itzg/minecraft-server
    container_name: minecraft-limbo
    
    environment:
      EULA: "TRUE"
      TYPE: LIMBO
      LIMBO_BUILD: LATEST
      
      # Limbo-specific settings
      LIMBO_SCHEMA_FILENAME: lobby.schem
      
      MOTD: '{"text":"Lobby Server","color":"aqua"}'
      MAX_PLAYERS: 100
    
    ports:
      - "25565:25565"
    
    volumes:
      - ./limbo-data:/data

NanoLimbo

An alternative lightweight Limbo server implementation.
environment:
  TYPE: NANOLIMBO
NanoLimbo is a fork of the original Limbo by Nan1t, now maintained by BoomEaro. Configuration is similar to standard Limbo.

Crucible

Crucible is a legacy server for Minecraft 1.7.10 combining Forge and Bukkit.

Configuration

environment:
  TYPE: CRUCIBLE
  VERSION: "1.7.10"
  CRUCIBLE_RELEASE: latest
Crucible is only available for Minecraft 1.7.10. Ensure you set VERSION: "1.7.10".

Environment Variables

VariableDefaultDescription
TYPE-Set to CRUCIBLE
VERSION-Must be 1.7.10
CRUCIBLE_RELEASElatestSpecific Crucible release version

Complete Example

docker-compose.yml
services:
  minecraft:
    image: itzg/minecraft-server:java8-multiarch
    container_name: minecraft-crucible
    
    environment:
      EULA: "TRUE"
      TYPE: CRUCIBLE
      VERSION: "1.7.10"
      CRUCIBLE_RELEASE: latest
      
      MEMORY: 4G
    
    ports:
      - "25565:25565"
    
    volumes:
      - ./data:/data
      - ./mods:/data/mods
      - ./plugins:/data/plugins

Custom Server

Run a completely custom server JAR or class files.

Using Custom JAR File

environment:
  TYPE: CUSTOM
  CUSTOM_SERVER: "https://your-server.com/custom-server.jar"

Using Custom Main Class

Replace the -jar invocation with a custom classpath and main class:
environment:
  TYPE: CUSTOM
  CUSTOM_JAR_EXEC: "-cp worldedit.jar:Carpet-Server.jar net.minecraft.server.MinecraftServer"
When using docker run, quote the entire value:
-e CUSTOM_JAR_EXEC="-cp worldedit.jar:Carpet-Server.jar net.minecraft.server.MinecraftServer"

Environment Variables

VariableDefaultDescription
TYPE-Set to CUSTOM
CUSTOM_SERVER-URL or path to custom server JAR
CUSTOM_JAR_EXEC-Custom Java execution arguments

Complete Examples

services:
  minecraft:
    image: itzg/minecraft-server
    environment:
      EULA: "TRUE"
      TYPE: CUSTOM
      CUSTOM_SERVER: "https://cdn.example.com/my-server.jar"
      VERSION: "1.20.4"
      MEMORY: 4G
    ports:
      - "25565:25565"
    volumes:
      - ./data:/data

Use Cases

SpongeVanilla

  • Running Sponge plugins without Forge
  • Vanilla server with plugin capabilities
  • Lightweight plugin platform

Limbo/NanoLimbo

  • Lobby servers for networks
  • AFK/holding servers
  • Minimal resource placeholder servers
  • Connection management

Crucible

  • Legacy 1.7.10 modded servers
  • Forge mods + Bukkit plugins on 1.7.10
  • Maintaining old modpacks

Custom

  • Experimental server implementations
  • Custom-built server software
  • Unreleased or private server builds
  • Educational/development purposes

Troubleshooting

SpongeVanilla Java Version

Problem: SpongeVanilla won’t start Solution: Use Java 8 image for Minecraft 1.12:
image: itzg/minecraft-server:java8-multiarch

Limbo MOTD Format

Problem: MOTD not displaying correctly Solution: Use JSON chat format:
MOTD: '{"text":"Server Name","color":"blue"}'

Custom Server Not Starting

Problem: Custom server JAR fails to launch Solution:
  1. Verify JAR file path is correct
  2. Check JAR file is not corrupted
  3. Ensure proper Java version
  4. Review server logs for specific errors

Crucible Version Mismatch

Problem: Crucible won’t start Solution: Ensure version is set to 1.7.10:
environment:
  VERSION: "1.7.10"

Performance Considerations

Limbo Servers

Limbo servers are extremely lightweight:
environment:
  MEMORY: 512M  # Limbo requires minimal resources

SpongeVanilla

Moderate resource usage:
environment:
  MEMORY: 2G  # For small servers

Crucible

Higher resources needed (mods + plugins):
environment:
  MEMORY: 6G  # Hybrid server requirements

Migration and Compatibility

From Vanilla to SpongeVanilla

environment:
  TYPE: SPONGEVANILLA  # Changed from VANILLA
  VERSION: "1.12.2"
Worlds are compatible - just change the type.

From Other Types to Custom

Custom type can run almost any server JAR:
environment:
  TYPE: CUSTOM
  CUSTOM_SERVER: "path/to/any-server.jar"

Next Steps

Vanilla Server

Return to standard vanilla server

Paper Server

Upgrade to high-performance Paper

Hybrid Servers

Combine mods and plugins

Server Configuration

Configure server properties

Build docs developers (and LLMs) love