Systemd unit files for use with the Minecraft Server and associated services (backup and stats).
This repository has been archived on 2024-07-17. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Adam Douglas 5a6841f4dd docs: update changelog
Cleanup changelog and update to match commit history with the exception of inital commits.
2020-03-20 15:34:45 -06:00
CHANGELOG.md docs: update changelog 2020-03-20 15:34:45 -06:00
CONTRIBUTING.md docs: add contributing guidelines 2020-02-07 13:58:54 -06:00
LICENSE docs: add changelog, license and readme 2020-02-06 22:41:06 -06:00
README.md docs: add two assumptions 2020-02-07 22:55:22 -06:00
minecraft-backup.service refacotr: clean up 2020-02-06 21:39:09 -06:00
minecraft-backup.timer refactor: remove redundant property 2020-03-01 00:18:26 -06:00
minecraft-paper.service feat: add unit 2020-02-06 21:35:06 -06:00
minecraft-spigot.service feat: add unit 2020-02-06 21:35:06 -06:00
minecraft-stats.service refactor: change description to be more descriptive 2020-02-06 21:47:29 -06:00
minecraft-stats.timer fix: stats timer not reporting next run 2020-03-20 15:08:22 -06:00
minecraft-vanilla.service feat: add unit 2020-02-06 21:35:06 -06:00

README.md

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