Skip to content

Latest commit

 

History

History
109 lines (83 loc) · 3.01 KB

README.md

File metadata and controls

109 lines (83 loc) · 3.01 KB

MinecraftSystemdUnit

Systemd Unit file for Minecraft Server

Installation

  1. Connect to the server or if you want to run the server on your machine, open a terminal
  2. Become root using su or sudo
    • To validate that you're now root, run id
  3. Next install the necessary packages
    apt-get install -y openjdk-11-jre-headless curl screen nano bash grep
  4. Create the /opt folder if it doesn't already exist
    mkdir /opt
  5. Now you need to create the user for the service
    adduser --system --shell /bin/bash --home /opt/minecraft --group minecraft
    chmod +t /opt/minecraft
  6. Create the Systemd Unit file:
    nano /etc/systemd/system/minecraft@.service
    # paste the contents of minecraft@.service
    or
    curl https://raw.githubusercontent.com/agowa338/MinecraftSystemdUnit/master/minecraft%40.service > /etc/systemd/system/minecraft@.service

Setup Instance

Each server has it's own subdirectory of /opt/minecraft. This means that when a new server is being added, the following steps need to be followed:

  1. Create a subdirectory of /opt/minecraft for your Minecraft server, we'll be using feed-the-beast as an example
    • It is recommended to use a name which only includes lowercase characters, spaces should be replaced with dashes
    cd /opt/minecraft
    mkdir feed-the-beast
  2. Upload your files to the /opt/minecraft/feed-the-beast directory
    • Note: All uploaded files should be owned by the minecraft user
    chown -R minecraft:minecraft /opt/minecraft/feed-the-beast
  3. Accept the Minecraft server's EULA
    echo 'eula=true' > eula.txt
    

RAM allocation

With minecraft@.service it's possible to specify the RAM allocation per server. This can be done using a server.conf file in the server's directory.

Example

# /opt/minecraft/ftb-beyond/server.conf
MCMINMEM=512M
MCMAXMEM=2048M

Feed the Beast

Some Feed the Beast packs include a FTBInstall.sh. This script needs to be executed before starting the server.

cd /opt/minecraft/ftb-beyond
su -c 'bash /opt/minecraft/ftb-beyond/FTBInstall.sh' minecraft

Usage

Enable auto-start Minecraft server on boot

systemctl enable minecraft@ftb-beyond

Disable auto-start Minecraft server on boot

systemctl disable minecraft@ftb-beyond

Start Minecraft server manually

systemctl start minecraft@ftb-beyond

Stop Minecraft server manually

systemctl stop minecraft@ftb-beyond

Connecting to the Minecraft server console

To enter the console, screen is used.

All screen sessions are owned by the minecraft user and are prefixed with mc-.

# This will attach to the Minecraft server called `ftb-beyond`
su -c 'screen -r mc-ftb-beyond' minecraft

Note: To detach (exit) from the session, press CTRL + A followed by D.