# Minecraft server hosting in Germany: Frankfurt VPS setup guide

URL: https://cloudj.net/blog/minecraft-server-vps-germany
Published: 2026-11-11 · Updated: 2026-11-11

> Minecraft server hosting in Germany on a Frankfurt VPS: size RAM for your players, install Java and Paper, run it with systemd, open the port, back up worlds.

Minecraft server hosting in Germany gives European players a server in the middle of the continent, and running it on your own VPS gives you full control over the version, plugins, memory and backups. This guide takes you from an empty Frankfurt server to a Java Edition server that starts on boot, survives crashes, and backs up its worlds every night. It covers RAM sizing first, because that is the decision most people get wrong, then the setup commands step by step. The commands assume Ubuntu or Debian; check the OS list for your location in the console before you deploy.

## Why choose Minecraft server hosting in Germany?

Frankfurt sits in central Europe, which makes it a balanced location for a group spread across Germany, France, Poland, Austria and neighbouring countries. If your players are concentrated further west, Amsterdam is the other natural candidate. Cloudj runs servers in both cities, each with 5 TB of traffic included on monthly plans, which is generous for a game server. Compare them in the [Germany VPS overview](https://cloudj.net/blog/best-vps-germany) and the [Netherlands VPS overview](https://cloudj.net/blog/best-vps-netherlands), or see every European city in the [Europe VPS guide](https://cloudj.net/blog/europe-vps-guide).

If most of your players are in Southeast Asia, Europe is the wrong continent; our guide to [hosting a game server in Singapore](https://cloudj.net/blog/game-server-vps-singapore) is the better starting point.

## Sizing: RAM and CPU for your player count

Minecraft's main game loop runs largely on one thread, so the speed and consistency of a single core matter more than many cores. That is why dedicated CPU is worth considering once more than a handful of people play at once: your tick rate is not affected by other workloads. Memory depends on players, view distance, loaded chunks and plugins or mods.

The table is a starting point drawn from common community setups, not a guarantee. Watch the RAM and CPU graphs in the console and adjust.

| Server type | Players | Starting point |
|---|---|---|
| Paper, few plugins | 2 to 5 | 2 vCPU, 4 GB RAM |
| Paper with plugins | 5 to 20 | 2 to 4 vCPU (dedicated), 8 GB RAM |
| Modded (Forge or Fabric packs) | 2 to 10 | 4 vCPU (dedicated), 8 to 16 GB RAM |

Give Java less memory than the server has. On a 4 GB server, a 3 GB Java heap leaves room for the operating system. Ready-made plans in Frankfurt range from 1 vCPU and 1 GB RAM upward, and you can build a custom mix of vCPU, RAM and disk. If the server outgrows its size, resize CPU and RAM and grow the disk from the console; the [resize guide](https://cloudj.net/blog/resize-vps-cpu-ram-disk) explains the steps.

## Step-by-step setup on a Frankfurt VPS

### 1. Deploy and log in

In the [Cloudj console](https://app.cloudj.net), choose Germany, Frankfurt, an Ubuntu or Debian image and your plan, and add your SSH key. Then connect:

```bash
ssh root@your-server-ip
```

If you have not set up keys yet, follow the [SSH key guide](https://cloudj.net/blog/ssh-key-vps-setup) first.

### 2. Install Java and create a service user

Recent Minecraft Java Edition versions need a recent Java runtime. Check the requirement for the version you plan to run, then install a matching OpenJDK package:

```bash
apt update && apt upgrade -y
apt install -y openjdk-21-jre-headless
java -version
useradd -r -m -d /opt/minecraft -s /bin/bash minecraft
```

Running the server as its own user, not root, limits damage if a plugin misbehaves.

### 3. Download the server and accept the EULA

Paper is a popular high-performance server based on the vanilla game, and its [official documentation](https://docs.papermc.io/) explains downloads and configuration. Download the jar for your Minecraft version into `/opt/minecraft`, rename it `server.jar`, then run it once to generate files:

```bash
cd /opt/minecraft
sudo -u minecraft java -Xms1G -Xmx1G -jar server.jar nogui
```

The first run stops and asks you to accept the Minecraft EULA. Read it, then:

```bash
sudo -u minecraft sed -i 's/eula=false/eula=true/' /opt/minecraft/eula.txt
```

Edit `server.properties` to set `motd`, `max-players` and `view-distance`. A lower view distance is the easiest way to save memory and CPU.

### 4. Run it with systemd

Create `/etc/systemd/system/minecraft.service`:

```ini
[Unit]
Description=Minecraft server
After=network-online.target

[Service]
User=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms3G -Xmx3G -jar server.jar nogui
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
```

Adjust `-Xmx` to your plan. Then enable and start it:

```bash
systemctl daemon-reload
systemctl enable --now minecraft
journalctl -u minecraft -f
```

The server now starts on boot and restarts after a crash.

### 5. Open the game port

Java Edition listens on TCP port 25565 by default. With UFW:

```bash
ufw allow OpenSSH
ufw allow 25565/tcp
ufw enable
```

Do not open the RCON port to the internet unless you need it, and if you do, use a strong password. The [UFW firewall guide](https://cloudj.net/blog/ufw-firewall-vps) covers rules in more depth.

## Backups that actually restore

A world you cannot restore is not backed up. A simple nightly routine stops the server briefly, archives the world, and starts it again:

```bash
#!/bin/bash
mkdir -p /opt/backups
systemctl stop minecraft
tar -czf /opt/backups/world-$(date +%F).tar.gz -C /opt/minecraft world world_nether world_the_end
systemctl start minecraft
find /opt/backups -name 'world-*.tar.gz' -mtime +7 -delete
```

Schedule it with cron at a quiet hour, then copy archives off the server, for example with `rsync` to another machine or to an object storage bucket. Test a restore on a spare hourly server now and then, and delete that test server afterwards, since hourly servers are charged while they exist. Our [VPS backup strategy](https://cloudj.net/blog/vps-backup-strategy) covers retention and off-site copies. Many admins also keep `server.properties` and plugin configs in version control; a [self-hosted Git server](https://cloudj.net/blog/self-hosted-git-server-vps) works well for that.

## Billing for a community server

For a weekend event or a test, hourly billing is enough; delete the server when it ends. For a server your community relies on, a 1, 3, 6 or 12 month term with auto-renew avoids interruptions. See live prices on the [pricing page](https://cloudj.net/pricing).

## FAQ

### How much RAM does a Minecraft server need?

For a small Paper server with a few friends, 4 GB is a comfortable start. Plugins, more players and modpacks need more; watch the RAM graph and resize.

### Should I choose Frankfurt or Amsterdam?

Choose the city closer to most of your players and test both with a ping from their homes if you can. Both have the same server range and traffic allowance.

### Can I run Bedrock Edition too?

Yes, the Bedrock dedicated server runs on Linux and uses UDP port 19132 by default. Open that port as well if you host it.

### Is dedicated CPU necessary?

Not for a small group. It becomes useful when tick rate drops under load, because Minecraft depends heavily on single-core performance.

## Launch your server

Pick Frankfurt or Amsterdam based on where your players are, size RAM for your plugins, and set up backups before anyone builds anything important. You can deploy from the [Germany cloud server page](https://cloudj.net/cloud-servers/germany) or the [Netherlands cloud server page](https://cloudj.net/cloud-servers/netherlands), and the console shows the exact price before you confirm.
