Game server · no KYC
Host Minecraft Server on an Offshore VPS
Host a fast, DDoS-protected Minecraft server on an offshore VPS you pay for in crypto, with no identity check and no third party throttling your world.
What it is
Minecraft Server is the self-hosted multiplayer backend for Minecraft: Java Edition, letting you run a persistent world that friends or a community connect to over the internet. Server flavours like Paper and Purpur add plugin support and major performance gains over the vanilla server, so you control the rules, mods, whitelist, and world data.
Why host it offshore
Public Minecraft servers are constant DDoS targets and hosting your own on rented commercial platforms usually means handing over ID and a card number. On a no-KYC, crypto-paid ChainVPS instance you keep full root, get always-on DDoS mitigation and unmetered bandwidth for player traffic, and never tie your gaming community to your real identity.
The deploy
A working reference setup
Copy this onto a fresh ChainVPS instance. Replace the placeholders, then bring it up.
services:
mc:
image: itzg/minecraft-server:latest
container_name: minecraft
ports:
- "25565:25565" # Java Edition (TCP) — the only port players need
# - "127.0.0.1:25575:25575" # RCON — keep bound to localhost, never public
environment:
EULA: "TRUE" # required: accepts Mojang EULA
TYPE: "PAPER" # high-performance server; use VANILLA/FABRIC/FORGE as needed
VERSION: "1.21.4" # pin a version; "LATEST" also works
MEMORY: "4G" # heap size; leave headroom below the VPS's total RAM
DIFFICULTY: "normal"
MAX_PLAYERS: "20"
VIEW_DISTANCE: "10"
SIMULATION_DISTANCE: "8"
ONLINE_MODE: "TRUE" # verify accounts with Mojang/Microsoft
ENABLE_WHITELIST: "TRUE"
OVERRIDE_WHITELIST: "TRUE"
ENABLE_RCON: "TRUE"
RCON_PASSWORD: "replace-with-a-long-random-string"
volumes:
- ./data:/data # world + configs persist here — back this up
stdin_open: true
tty: true
restart: unless-stopped
Firewall
Ports to open
| Port | Protocol | Purpose |
|---|---|---|
| 25565 | TCP | Java Edition client connections — the only port that must be open to players |
| 25575 | TCP | RCON remote console — bind to 127.0.0.1 only, never expose publicly |
| 19132 | UDP | Optional Bedrock crossplay if you add the GeyserMC plugin |
Right-sizing
Which plan you need
VPS Small (2 vCPU / 4 GB)
Set MEMORY 2-3G. Minecraft is single-thread heavy per tick, so high clock speed matters more than core count.
VPS Pro (4 vCPU / 8 GB)
MEMORY 4-6G, trim view/simulation distance. Paper/Purpur keeps tick time healthy at this size.
Dedicated (fast single-core CPU, 16 GB+)
Modpacks eat RAM and one busy core. A dedicated box with a high-clock CPU avoids the tick lag shared VPS cores cause.
Best locations: For a game server, player ping matters more than the privacy tier, so pick the location closest to most of your players. ChainVPS's central-European nodes (NL, RO, LU) and the CH privacy tier give low latency across Europe while still offering no-KYC billing and DDoS protection; choose IS or MD if you want the offshore jurisdiction and your players are EU-wide and latency-tolerant.
Lock it down
Hardening checklist
- Never expose RCON (25575) to the internet — bind it to 127.0.0.1 in the compose file and use a long random RCON_PASSWORD; access it over SSH or docker exec instead.
- Keep ONLINE_MODE=TRUE and the whitelist enabled (ENABLE_WHITELIST/OVERRIDE_WHITELIST) so only verified, approved accounts can join; add players with 'docker exec minecraft rcon-cli whitelist add <name>'.
- Automate world backups: cron a 'docker exec minecraft rcon-cli save-off && save-all' then tar the ./data volume, then 'save-on' — store copies off the box so a crash or wipe never costs your world.
- Run a host firewall (ufw) allowing only 22 and 25565; Minecraft servers are frequent DDoS and bot-scan targets, so lean on ChainVPS's included mitigation and don't leave extra ports open.
- Cap MEMORY below the VPS's total RAM (leave ~1-2 GB for the OS) so the JVM never triggers OOM kills; the itzg image applies Aikar GC flags automatically, so avoid hand-tuning heap flags unless you know why.
Deploy it on
The right ChainVPS product
Questions
Hosting Minecraft Server — FAQ
Does this work for Minecraft: Bedrock (mobile/console) players?
The config above is Java Edition. To let Bedrock clients join the same world, add the GeyserMC and Floodgate plugins to a Paper server and open UDP 19132. For a pure Bedrock server, use the itzg/minecraft-bedrock-server image instead.
Do I need Docker, or can I run it directly?
Docker is the cleanest path and what the compose file uses. If you prefer bare metal, install a JRE (Java 21 for 1.20.5+), download the Paper jar, accept the EULA in eula.txt, and launch with 'java -Xmx4G -jar paper.jar nogui' under a systemd unit or tmux session.
How much RAM does a Minecraft server actually need?
Vanilla with a few friends runs fine on 2-3 GB. Plugins and 10-20 players want 4-6 GB. Modpacks are the outlier and can need 8-12 GB or more. Always leave headroom for the OS below your plan's total RAM.
Will an offshore location lag my players?
Latency depends on distance, not on the no-KYC billing. Pick the ChainVPS node nearest your player base; central-European nodes serve most EU communities with sub-50 ms ping. Minecraft is fairly latency-tolerant compared to shooters.
Can I pay without giving ID?
Yes. ChainVPS is no-KYC and crypto-paid, so you can spin up and run a Minecraft server without linking a card or identity to your community.
More to self-host
Other one-click stacks
Spin up Minecraft Server
in the next 60 seconds.
Unmetered bandwidth · DDoS included · 21 cryptocurrencies · no KYC.