A set of bash scripts set for configuring and running 7 Days To Die linux game servers.
Go to file
2022-01-09 21:49:39 -06:00
Media Lots of gifs for feature list, moving sections around 2021-12-26 02:49:49 -06:00
Scripts Silence failed cp operation, might happen due to preinstaller 2022-01-09 21:49:39 -06:00
.gitmodules Add general Game Servers git as submodule 2021-12-25 21:47:17 -06:00
install.bash Change last message to source ~/.bash_profile instead of cd'ing relatively 2021-12-26 01:03:50 -06:00
LICENSE Add LICENSE 2021-12-26 04:32:31 +00:00
README.md Made note of manual install in Auto Install 2021-12-26 11:13:37 -06:00

7 Days To Die Game Server Linux Scripts

A set of opinionated scripts used to manage 7 days to die.

Table of Contents

[TOC]

Features

  • Xml linting when starting a server: Linting This avoids issues where a server fails to start with no apparent reason in the logs, mostly due to xml parsing errors not properly reported by 7 Days to Die Servers. Requires xmllint to be installed.

  • Automated backups of configurations on start: Configuration Backup This helps to maintain shorter term backups locally to quickly revert changes made start to start on the server.

  • Automatic restart handling on server crash: Until-Loop-Crash When a server crash is detected the server is automatically restarted after 60 seconds, this is managed internally by the script so when you shut down the server explicitly it doesn't start again until told to. Goodbye cronjob!

  • Sane handling of default paths: Sane Paths Instead of the default 7 Days to Die linux behavior of using ~/.local/share/7DaysToDie/ for all saves and serveradmin.xml configurations, this script overrides the path to be local to the given server. This makes management and configuration vastly easier.

  • And more...

Automatic Installation

Must be run as root or a user with access to sudo. This script creates or modifies an existing user of the name sdtd to install the scripts to their path. If this is not acceptable, then see the Requirements section. You'll need to install the programs listed there, then git clone this repository and deploy the top level scripts in the Scripts directory.

bash -c "$(curl https://gitlab.orion-technologies.io/game-servers/7-days-to-die/-/raw/Development/install.bash)"

See defaults next to find out which ports to open.

Requirements

  • Required

    • tmux
      • Used to run servers in detached sessions
    • steamcmd
      • Used to install 7 days to die game servers
      • Important, this MUST be in your PATH variable. This script calls the general installer script which configures steamcmd to be in /usr/local/bin. If this is not in your path, the deployed scripts will NOT work.
  • Optional

    • pv
      • Used to show progress for backup operations

Defaults

By default all servers start at an offset of 50000 + server id. For instance, if you were to start Server-1, the server id would be 1. As such the port Server-1 would run on is 50001, Server-2 would be 50002, and so on.

By default, the base directory for all servers to be installed to is ~/7-Days-To-Die.

Usage

Switch to the sdtd user and source .bash_profile in order to use these scripts assuming automatic installation has been used.

Basic usage:

  • Installing a server
    7D2D-Manage install -s 1
    
    this would install Server-1 if it didn't exist
  • Starting a server
    7D2D-Manage start -s 1
    
    this would start Server-1.
  • Stopping a server
    7D2D-Manage kill -s 1
    
    this would stop Server-1
  • Updating a server
    7D2D-Manage update -s 1
    
    this would update Server-1
  • Getting a backup archive of a server
    7D2D-Manage backup -s 1
    
    this would backup Server-1
  • List installed and running servers
    7D2D-Manage list -r
    
    this would list running servers
    7D2D-Manage list -i
    
    this would list installed servers, note that this only checks if the server directory exists, not if any server files exist within the directory itself

To learn more usage, pass -h to any option, e.g. to get base options:

7D2D-Manage -h

and to get, for instance, start options:

7D2D-Manage start -h

See the wiki for details.