/linuxgsm

Linux Game Server Managers_

Primary LanguageShellMIT LicenseMIT

NEW FORK, NEW RULES

Use the new lgsm-core script as a starting point (GitHub HTML - Direct Download). Running that script launches the installer, which pulls the list of games from the gamedata directory. Select the game server you wish to install, and it will ask a few questions as to where to install it. At this point, the script itself is deployed. Now continue on with the normal instructions.

How to deploy the new lgsm-core script

Create a user for your game server if you don't have one already, it's best not to "upgrade" classic LGSM with this new script since it is so different. Go to the location you want to install LGSM (use the home directory if you're not sure). Then, run these commands: ```bash curl https://raw.githubusercontent.com/jaredballou/linuxgsm/master/lgsm-core -O lgsm-core chmod +x lgsm-core ./lgsm-core ``` You will now be presented with a menu
LGSM Installer Menu
Select the game you want to install, and press Enter. The installer will ask you a few more questions, namely where to install the LGSM instance for the game you chose. Just press Enter to select the current directory.
LGSM Installer Exec
At this point, the new instance works (mostly) just like the classic LGSM scripts. As of right now, there is no "self-update" functionality for lgsm-core and deployed instances, but it's in the works.

Benefits of the new fork

  • One script to rule them all.
  • Game server support provided via extensible gamedata system to reduce duplication and increase ability to support more games
  • Decent enough config backend that exposes most of what game server admins want in flat files
  • Creates separate directory for all LGSM files. Defaults to 'lgsm' in the same directory as the script. The structure of this directory is:
    • functions Functions for LGSM. These are like modules, whatever functionality you need from LGSM is mostly handled by these scripts.
    • gamedata Data files that describe the games that can be installed. There is a README.md in this folder with more detail on how this system works. This is still very much a work in progress, and may have some serious changes made. In addition, a majority of the games have NOT been tested with the new lgsm-core and gamedata system, so I'd appreciate anyone that wants to help me sort out the remainder of the games.
    • servers Each game gets its own directory, for instance 'insserver' for the Insurgency LGSM
      • cfg Server configuration files. These files are split out from the script so that upgrading the script doesn't require manual editing, the data and code are being separated.
        • _default.cfg Generated regularly by the main script, this will always be overwritten so do not edit it if you want to keep your changes!
        • _common.cfg The config executed by all your instances. Put defaults for your deployment here, for example ip is a common setting.
        • $instance.cfg These configs are created for each instance of LGSM. For example, if I install insserver and create another instance by symlinking to it with "inspvpserver", I will have insserver.cfg and inspvpserver.cfg files here. These files will never be overwritten by the LGSM.
      • log Log files. Includes script, console, server by default. I am in the process of defining logging settings in gamedata and cfg files to add flexibility and intelligence here.
      • tmp These are "temp files" generated by the gamedata parser. Feel free to take a look at them, but they get regenerated every time the script is ran, so don't make any changes here that you want to keep. Make the changes in the cfg files.
    • tmp General purpose temporary file storage.
  • Better GitHub integration Supports using Git hashes to check for updated files. Self-bootstrapping sort of works....
  • Config files for defaults are in a central location, but will be templated and moved to gamedata at some point.
  • Dependencies handled in standard way via gamedata files. Different versions of the files are referenced by MD5 hashes for a widely supported method of identifying binary content.
  • SteamCMD and server support for beta and workshop files
  • sourcemod command to install latest MetaMod and SourceMod to your game server instance
Probably a lot more, this started off as a POC of hacks and has sort of morphed into a major undertaking all its own. Below is the original upstream README, since the function of the script has been kept as close as possible to legacy.

Linux Game Server Managers

linux Game Server Managers

Build Status Under Development

The Linux Game Server Managers are command line tools for quick, simple deployment and management of various dedicated game servers and voice comms servers.

Hassle-Free Dedicated Servers

Game servers traditionally are not easy to manage yourself. Admins often have to spend hours just messing around trying to get their server working. LGSM is designed to be a simple as possible allowing Admins to spend less time on management and more time on the fun stuff.

Main features

  • Backup
  • Console
  • Details
  • Installer (SteamCMD)
  • Monitor (including email notification)
  • Update (SteamCMD)
  • Start/Stop/Restart server

Compatibility

The Linux Game Server Managers are tested to work on the following Linux distros.
  • Debian based (Ubuntu, Mint etc.).
  • Redhat based (CentOS, Fedora etc.).
Other distros are likely to work but are not fully tested.

Specific Requirements

FAQ

All FAQ can be found here.

https://github.com/dgibbs64/linuxgsm/wiki/FAQ

Donate

If you want to donate to the project you can via PayPal, Flattr or Gratipay. I have had a may kind people show their support by sending me a donation. Any donations you send help cover my server costs and buy me a drink. Cheers!

Useful Links