minecraft-systemd-services/README.md

4.5 KiB

What Is Minecraft Server Systemd Services?

Systemd unit files for use with the Minecraft Server and associated services (backup and stats).

Features

  • Supports use with Minecraft server software PaperMC, SpigotMC and Vanilla.
  • Backup the Minecraft server directory.
    • To an archive.
    • Sync to a desired destination.
  • Sync Minecraft stats data to MinecraftStats.

System Requirements

  • GNU Linux operating System
  • Git
  • Wardenctl (optional if one replaces wardenctl commands)
  • Systemd

Installation

Assumptions

  • Have an understanding of general server practices.
  • Have experienced working knowledge within a CLI (command-line interface).
  • Installed all required dependencies as stated in System Requirements section.
  • Dependencies are accessible via environment PATH.
  • Installation is done via Linux CLI.
  • Steps prefixed with a "$" (dollar sign) represents the CLI prompt. The text after the "$" is to be entered at the CLI.
  • Steps prefixed with a "#" (number sign) represents the CLI prompt with elevated user permissions (e.g. root). The text after the "#" is to be entered at the CLI.
  • A single backslash character beside another character is used to escape the proceeding character. In this case backslash character is not to to be entered at the CLI.
  • These instructions are an example of installation and configuration.

Manual

  1. Change to your home directory.
    $ cd ~
    
  2. Download the project.
    $ git clone https://gitlab.com/adouglas/minecraft-systemd-services.git
    
  3. Change to the project directory.
    $ cd minecraft-systemd-services
    
  4. Copy Systemd unit files.
    # cp minecraft-* /etc/systemd/system/
    
    minecraft-backup.service
    minecraft-backup.timer
    minecraft-paper.service
    minecraft-spigot.service
    minecraft-stats.service
    minecraft-stats.timer
    minecraft-vanilla.service
    
  5. Edit each applicable unit file(s).
    $ nano minecraft-backup.service
    
  6. Set file permissions.
    # chmod 644 /etc/systemd/system/minecraft-*
    
  7. Set file ownership and group.
    # chown root:root /etc/systemd/system/minecraft-*
    
  8. Add user base upon "User" unit property value.
    # useradd -r -s /bin/bash minecraft
    
    -r create a system account.
    -s user's login shell.
    
  9. Add group based upon "Group" unit property value.
    • Note: This step is only required if group name differs from username.
    # groupadd minecraft
    # usermod -a minecraft minecraft
    
    -a add the user to supplementary group.
    
  10. Enable services.
    # systemctl enable minecraft-paper.service
    # systemctl enable minecraft-backup.timer
    # systemctl enable minecraft-stats.timer
    

Usage

For an even simpler usage at the CLI run "wardenctl help" without double quotes.

Useful Command Examples

Action Command Example Notes
Reload all unit files systemctl daemon-reload Required after modifying unit file(s).
Restart unit systemctl restart minecraft-paper.service
Start unit systemctl start minecraft-paper.service
Stop unit systemctl stop minecraft-paper.service
View unit status systemctl status minecraft-paper.service
View unit messages journalctl -u minecraft-paper.service
View unit messages journalctl -fu minecraft-paper.service View most recent entries and follow new entries as they occur. Press CTRL-C to quit.

License

Minecraft Server Systemd Services is licensed under the GNU General Public License v3.0. Review the license by viewing the LICENSE file.

Copyright Notice

Copyright (c) 2019-2020 Adam Douglas Some Rights Reserved