Package: game-server-manager
Game Server ManagerCommand to manage and control various types of game servers.Free software: MIT license(Coming soon!) Documentation:https://game-server-manager.readthedocs.io.RequirementsPOSIX Complient System - built and tested on Arch Linux, but should work on any Linux, MAC OSX or Windows Subsystem for Linux versionUses and requires the following commands:grep
java # optional for Java based servers
ln
nohup
ps
screen # optional for screen based servers
steamcmd # optional for Steam based servers
vim # or whatever your default $EDITOR command is
whichPython - built and tested with 3.6, but for full 1.0 release, unit tests will suppport 2.7 and 3.4+ unless there is a compelling reason not toFeaturesAllows full management of different types of servers with full configuration supported for each. Existing types (so far):Generic configurable gameserver typesCustom Screen (custom_screen): Generic gameserver that has an interactive console and can easily be ran via the screen command. Requires additional configuration to work.Custom Steam (custom_steam): Generic gameserver that can be installed and updated from Steam. Also, optionally support Steam workshop. Requires additional configuration to work.Custom RCON (custom_rcon): Generic Steam gameserver withSource RCON protocolsupport. Requires additional configuration to work.Java (java): Generic Java base gameserver that can be ran with screen. Requires additional configuration to work.Gameservers for specific gamesMinecraft (minecraft): Java based gameserver ran with screen for Minecraft.ARK (ark): Steam based gameserver with RCON support for ARK: Surivial Evolved.QuickstartInstall from pip:sudo pip install game_server_manager
gs --helpgswill attempt to use.gs_config.jsonas the main configuration file. If this does not exist, you must provide all configuration options via command line.-twill speciify type of gameserver and-swill save a.gs_config.jsonfile based on your commandline parameters.GenericGenerate default config (assuming generic type ofcustom_screen):gs -t custom_screen -s statusEdit.gs_config.jsonwith anything that is relevant to your serverStart server:gs startOptional: Once you get everything working, make an issue and/or pull request to make a new server type so you do not have to configure in the future!MinecraftExisting InstallIf you already have an existing install, it is simple to set upgsto run with it:gs -t minecraft -s statusThis will generate a default.gs_config.jsonfile. Edit this to match your existing install.JavaYou much have Java installed to run Minecraft. If you need help installing Java, consult the documentation on the Minecraft wiki:https://minecraft.gamepedia.com/Tutorials/Setting_up_a_server#Installing_Java_2FirewallOpen any firewall ports you need as detailed on Minecraft wiki:https://minecraft.gamepedia.com/Tutorials/Setting_up_a_server#Firewalling.2C_NATs_and_external_IP_addressesInstall/StartAssuming you want the latest stable version of Minecraft and the server to run as userminecraftwith all of the default settings:gs -t minecraft -u minecraft -s install
gs start
gs statusSeegs -t minecraft install –helpfor more details.ARKExisting InstallIf you already have an existing install, it is simple to set upgsto run with it:gs -t ark -s statusThis will generate a default.gs_config.jsonfile. Edit this to match your existing install.SteamCMDInstall SteamCMD according to the docs for your OS:Valve Docs:https://developer.valvesoftware.com/wiki/SteamCMDArch Linux:https://wiki.archlinux.org/index.php/Steam#SteamCMDOpen File LimitIncrease Open Files Limit as detailed on ARK wiki:https://ark.gamepedia.com/Dedicated_Server_Setup#Open_Files_LimitFirewallOpen any firewall ports you need as detailed on ARK wiki:https://ark.gamepedia.com/Dedicated_Server_Setup#Port_Forwarding_and_FirewallInstall/StartAssuming you want the server to run as userarkwith all of the default settings and no mods:gs -t ark -u ark -s install
gs start
gs statusSeegs -t ark install –helpfor more details.Multiple InstancesIt is common to run multiple ARK servers together as a cluster. To do this, you want to use theinstance_overridesconfig option. Example.gs_config.jsonYou can run subcommands against all instances at once with-ci @all. You can even run them all in parellel (get for starting and stopping) with-p:gs start -ci @all -p
gs status -ci @all
gs stop -ci @all -pPlannedStuff planned before the 1.0 release:Full Unit Test and code coverage (Python 2.7, 3.4+ support)DocumentationForge and Curse support for Minecraft serversBackup command for all serversStaging support to update servers while still runningProbably more stuff and maybe more server typesCreditsThis package was created withCookiecutterand theaudreyr/cookiecutter-pypackageproject template.History0.1.2 (2017-12-16)Changesgsto re-run main command as user if it is different than existing. Removes all extra logic for indivual commands as another user.0.1.0 (2017-12-15)First release on PyPI.