Deploy a Minecraft Java Edition server for unlimited multiplayer with plugins, mods, and full admin control on your own server.
Grab the automated bash script from GitHub to follow along with the video.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/gaming/minecraft-java/minecraft-java-ubuntu.sh
chmod +x minecraft-java-ubuntu.sh
sudo bash minecraft-java-ubuntu.sh
The script installs Docker if needed, pulls the Minecraft Java Edition Docker image, and starts the server container. The server will download the latest Minecraft version on first run — this may take a few minutes.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/gaming/minecraft-java/minecraft-java-ubuntu.sh
chmod +x minecraft-java-ubuntu.sh
sudo bash minecraft-java-ubuntu.sh
Edit server.properties inside the data volume to customize your server — set the server name, toggle online-mode, set max players, and choose difficulty. Restart the container to apply changes.
# Edit server.properties in the data volume
sudo nano /opt/minecraft-java/data/server.properties
# Key settings to configure:
# server-name=My Minecraft Server
# online-mode=true
# max-players=20
# difficulty=normal
# Restart to apply
docker restart minecraft-java
Open Minecraft Java Edition on your PC, go to Multiplayer, click Add Server, enter your server's IP and port, then click Done and join.
# In Minecraft Java Edition:
# Multiplayer → Add Server → Server Address:
<your-server-ip>:25565
Run admin commands via RCON on port 25575, manage whitelist and bans, and monitor server activity with Docker logs. Use the RCON console for live admin control without joining the game.
# View live server logs
docker logs -f minecraft-java
# Connect to RCON console (admin commands)
docker exec -it minecraft-java rcon-cli
# Common admin commands (in RCON or in-game as op):
# /op PlayerName — grant admin
# /whitelist add Name — add to whitelist
# /ban PlayerName — ban a player
# /save-all — force world save
| Port | Purpose |
|---|---|
| 25565 TCP | Minecraft Java game port (players connect here) |
| 25575 TCP | RCON admin console |
A Minecraft Java Edition server lets you and your friends play together on a shared world you fully control. Run vanilla, Paper, Spigot, or Fabric servers with plugins and mods. The server stores your world data and manages connections for all players simultaneously.
Self-hosting your Minecraft server gives you full control over who can join, what plugins or mods are installed, server rules, and world backups. Unlike paid server hosting, there are no player slot fees, and you can run paper plugins for performance improvements and gameplay mods.
Minecraft Java Edition uses TCP port 25565 for player connections. Open this port in your firewall. If running a private server, consider restricting access to specific IP addresses. RCON uses port 25575 — keep this firewalled from the public internet.
Alternatives include Minecraft Realms (official, limited players, monthly fee), Aternos (free hosting, limited), Minehut (cloud hosting), and Bedrock dedicated server (cross-platform but different editions). Choose self-hosted Java for maximum plugin and mod support.
Avoid self-hosting if you want friends on console or mobile to play — Bedrock Edition is needed for cross-platform play. Also avoid if your home internet upload speed is under 10 Mbps — you will need a VPS for good player experience.
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
Vanilla is the official Mojang server with no modifications. Spigot is a performance-optimized fork with plugin support. Paper is a fork of Spigot with additional optimizations and bug fixes — it is the recommended server type for most setups. All support standard Minecraft gameplay with progressively better performance.
For a small server with 2 to 5 players, 2 GB of RAM is a minimum. For 10 to 20 players, plan for 4 to 6 GB. Heavily modded servers (Forge with large mod packs) may need 8 to 12 GB. Use the -Xms and -Xmx JVM flags to allocate RAM: -Xmx6G allocates 6 GB maximum.
Install Paper or Spigot as your server type. Download plugin JAR files from trusted sources like SpigotMC, Bukkit, or Modrinth. Place the JAR files in the plugins directory inside your server folder and restart the server. Plugins load automatically and generate configuration files.
Set white-list=true in server.properties. Add player usernames using the in-game or RCON command: whitelist add PLAYERNAME. Only whitelisted players can join. Remove players with whitelist remove PLAYERNAME and view the list with whitelist list.
Yes. Install the appropriate server mod loader (Forge or Fabric) instead of vanilla or Paper. Place mod JAR files in the mods directory. All players must also have the same mod loader and the same mods installed on their client. Use CurseForge or Modrinth to find compatible mod packs.
Use a cron job to copy the world directory to a backup location while the server is running, or schedule server downtime for cleaner backups. Alternatively, install a backup plugin like DriveBackupV2 that automatically compresses and copies the world to a cloud destination on a schedule.
RCON (Remote Console) lets you send server commands from outside the game via a remote connection. Enable it in server.properties by setting enable-rcon=true and a strong rcon.password. Use an RCON client like mcrcon to run admin commands without being in-game. Never expose RCON port 25575 publicly.
This depends on hardware and server type. A vanilla server on a modern 4-core CPU with 4 GB RAM can comfortably handle 10 to 20 players. Paper significantly improves performance, allowing 20 to 50+ players on the same hardware. Very large servers with 100+ players require dedicated hardware and advanced server management.