Skip to content

TimInTech/minecraft-server-Proxmox

Repository files navigation

🟩 Minecraft Server on Proxmox – Version 2.0 (updated 2025-09-02)

Minecraft Server on Proxmox

GitHub Stars GitHub Forks License Latest Release


πŸ“ Introduction

This repository lets you deploy a high-performance Minecraft server (Java & Bedrock) on your Proxmox host in minutes.
Designed for both VMs and LXC containers, it provides easy CLI-first installation, automated backups, and update scripts.
Perfect for self-hosters, gaming communities, and homelab enthusiasts!


🧩 Technologies & Dependencies

Proxmox Debian Ubuntu Java Minecraft Bash Systemd Screen


πŸ“Š Status

⚠ No build workflow present
For automated tests or deployment, please add main.yml to .github/workflows/.


πŸš€ Quickstart

Requirements:
Proxmox host, Ubuntu 24.04 LTS or Debian 11/12 guest (VM or CT).

VM (DHCP)

wget https://raw.githubusercontent.com/TimInTech/minecraft-server-Proxmox/main/setup_minecraft.sh
chmod +x setup_minecraft.sh
./setup_minecraft.sh

Open console:

screen -r minecraft

VM (Static IP)

sudo tee /etc/netplan/01-mc.yaml >/dev/null <<'YAML'
network:
  version: 2
  ethernets:
    ens18:
      addresses: [192.168.1.50/24]
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [1.1.1.1,8.8.8.8]
YAML
sudo netplan apply

Then run the installer as above.

LXC/CT

wget https://raw.githubusercontent.com/TimInTech/minecraft-server-Proxmox/main/setup_minecraft_lxc.sh
chmod +x setup_minecraft_lxc.sh
./setup_minecraft_lxc.sh

Open console:

screen -r minecraft

Bedrock

wget https://raw.githubusercontent.com/TimInTech/minecraft-server-Proxmox/main/setup_bedrock.sh
chmod +x setup_bedrock.sh
./setup_bedrock.sh

Open console:

screen -r bedrock

πŸ—ƒοΈ Backups

Backup worlds and server files before updates! Choose systemd or cron.

Option A: systemd

sudo tee /etc/mc_backup.conf >/dev/null <<'EOF'
MC_SRC_DIR=/opt/minecraft
MC_BEDROCK_DIR=/opt/minecraft-bedrock
BACKUP_DIR=/var/backups/minecraft
RETAIN_DAYS=7
EOF

sudo tee /etc/systemd/system/mc-backup.service >/dev/null <<'EOF'
[Unit]
Description=Minecraft backup (tar)
[Service]
Type=oneshot
EnvironmentFile=/etc/mc_backup.conf
ExecStart=/bin/mkdir -p "${BACKUP_DIR}"
ExecStart=/bin/bash -c 'tar -czf "${BACKUP_DIR}/java-$(date +%%F).tar.gz" "${MC_SRC_DIR}"'
ExecStart=/bin/bash -c '[ -d "${MC_BEDROCK_DIR}" ] && tar -czf "${BACKUP_DIR}/bedrock-$(date +%%F).tar.gz" "${MC_BEDROCK_DIR}" || true'
EOF

sudo tee /etc/systemd/system/mc-backup.timer >/dev/null <<'EOF'
[Unit]
Description=Nightly Minecraft backup
[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true
[Install]
WantedBy=timers.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now mc-backup.timer

On-demand:

sudo systemctl start mc-backup.service

Option B: cron

crontab -e
30 3 * * * tar -czf /var/backups/minecraft/mc-$(date +\%F).tar.gz /opt/minecraft
45 3 * * * tar -czf /var/backups/minecraft/bedrock-$(date +\%F).tar.gz /opt/minecraft-bedrock

♻️ Auto-Update

Java Edition:

cd /opt/minecraft
./update.sh

Cron:

crontab -e
0 4 * * 0 /opt/minecraft/update.sh >> /var/log/minecraft-update.log 2>&1

Bedrock requires manual download from Mojang (bedrock_helper.sh gives reminder message).


βš™οΈ Configuration

/etc/mc_backup.conf

  • MC_SRC_DIR: Java server path (/opt/minecraft)
  • MC_BEDROCK_DIR: Bedrock server path (/opt/minecraft-bedrock)
  • BACKUP_DIR: Backup target (/var/backups/minecraft)
  • RETAIN_DAYS: Retention days

JVM memory (Java)
Edit /opt/minecraft/start.sh:

#!/bin/bash
java -Xms2G -Xmx4G -jar server.jar nogui

Small: -Xms1G -Xmx2G, Medium: -Xms2G -Xmx4G.

Firewall

sudo ufw allow 25565/tcp    # Java
sudo ufw allow 19132/udp    # Bedrock
sudo ufw enable

Optional: systemd service (Java)

sudo cp minecraft.service /etc/systemd/system/minecraft.service
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft

πŸ•ΉοΈ Admin/Commands

See SERVER_COMMANDS.md for operator setup, screen usage, and common commands.


πŸ”§ Troubleshooting

  • Java 21 unavailable on Debian 11 β†’ falls back to OpenJDK 17.
  • Missing start.sh β†’ recreate as shown above and chmod +x start.sh.
  • Permission issues β†’ ensure ownership of /opt/minecraft* or use sudo.

🀝 Contributing


πŸ“š References


License

MIT