[PR #525] [CLOSED] External per-instance configuration files #3121

Closed
opened 2026-02-27 03:53:22 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/GameServerManagers/LinuxGSM/pull/525
Author: @jaredballou
Created: 11/3/2015
Status: Closed

Base: masterHead: master


📝 Commits (10+)

  • 790c90b Pulled upstream changes, added functions and cfg/servers in each game's directory to .gitignore
  • b6d63b1 Merged default/common/instance configs and GitHub fetch updates
  • 6d90017 Updating Git fetcher
  • 63595d5 Added JSON parser for pulling Git metadata and doing updates
  • 8f23e8a Created addons tool as a proof of concept and test for Git fetching of addons for gameservers
  • b80d3fc Updated check_root to allow root execution for Docker. Updated insserver script with more over-complicated features nobody wants or needs.
  • 903362b Added GitHub downloader/updater POC. It downloads a manifest of the hashes for all files for use in comparisons.
  • 25130ff Updated insserver script to have headers and default values set from script in a more standardized way.
  • b44f930 Major rework to put subdirectories under lgsm directory, as a test. New games support function that has parameters set from hierarchially loaded gamedata files to stgart to move towards single-instance manager for all games
  • 963eef3 Bugfixes, new game parser updates

📊 Changes

393 files changed (+16198 additions, -1019 deletions)

View changed files

📝 .gitignore (+5 -1)
📝 GameServerQuery/gsquery.py (+0 -0)
Insurgency/insserver (+0 -139)
📝 README.md (+54 -1)
📝 cfg/ARKSurvivalEvolved/lgsm-default.ini (+0 -0)
📝 cfg/Arma3/lgsm-default.network.cfg (+0 -0)
📝 cfg/Arma3/lgsm-default.server.cfg (+0 -0)
📝 cfg/BlackMesa/lgsm-default.cfg (+0 -0)
📝 cfg/BladeSymphony/lgsm-default.cfg (+0 -0)
📝 cfg/BrainBread2/lgsm-default.cfg (+0 -0)
📝 cfg/CounterStrike/lgsm-default.cfg (+0 -0)
📝 cfg/CounterStrikeConditionZero/lgsm-default.cfg (+0 -0)
📝 cfg/CounterStrikeGlobalOffensive/lgsm-default.cfg (+0 -0)
📝 cfg/CounterStrikeSource/lgsm-default.cfg (+0 -0)
📝 cfg/DayOfDefeat/lgsm-default.cfg (+0 -0)
📝 cfg/DayOfDefeatSource/lgsm-default.cfg (+0 -0)
📝 cfg/DeathmatchClassic/lgsm-default.cfg (+0 -0)
📝 cfg/DoubleActionBoogaloo/lgsm-default.cfg (+0 -0)
📝 cfg/FistfulOfFrags/lgsm-default.cfg (+0 -0)
📝 cfg/GarrysMod/lgsm-default.cfg (+0 -0)

...and 80 more files

📄 Description

I created a version of insserver to support putting configs that allow overrides of script settings for each instance in a way that makes sense (at least to me). This allows users to simply update the script from GitHub or via download, and not have to back up or re-configure their settings. It also supports multiple instances a little better. I had all this in version 200914, I ported it over to the latest version and tested it with my servers. As far as I can see, it works, but this is my first time doing a PR so be aware that I am pretty new at this.

  • Added external config support, load files from cfg/servers directory, in this order:
    • _default.cfg (which is managed by Git and should not be edited by end users)
    • _common.cfg (which is the user's common settings for all servers)
    • SERVICENAME.cfg for the individual instances.
  • TODO: If this PR is accepted, modify the default config creation to use a fetch from GitHub as the functions files are.
  • Cleaned up the function script calling, it no longer has to change directory when function files are downloaded, which annoyed me.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/GameServerManagers/LinuxGSM/pull/525 **Author:** [@jaredballou](https://github.com/jaredballou) **Created:** 11/3/2015 **Status:** ❌ Closed **Base:** `master` ← **Head:** `master` --- ### 📝 Commits (10+) - [`790c90b`](https://github.com/GameServerManagers/LinuxGSM/commit/790c90be3917f42686442b136d05487bd181058a) Pulled upstream changes, added functions and cfg/servers in each game's directory to .gitignore - [`b6d63b1`](https://github.com/GameServerManagers/LinuxGSM/commit/b6d63b1a4c97c0936d49f9c92cee84af4e7737c8) Merged default/common/instance configs and GitHub fetch updates - [`6d90017`](https://github.com/GameServerManagers/LinuxGSM/commit/6d90017c85e46c6409208569ea0afa2fca5ab6a1) Updating Git fetcher - [`63595d5`](https://github.com/GameServerManagers/LinuxGSM/commit/63595d5e9b401bbea9b5a07750bf7f7fcd958c9e) Added JSON parser for pulling Git metadata and doing updates - [`8f23e8a`](https://github.com/GameServerManagers/LinuxGSM/commit/8f23e8a23e9422340ec605696cbe15e7444dffbc) Created addons tool as a proof of concept and test for Git fetching of addons for gameservers - [`b80d3fc`](https://github.com/GameServerManagers/LinuxGSM/commit/b80d3fc0cb9f6f464f1bd7bd36852bdd159b7bf3) Updated check_root to allow root execution for Docker. Updated insserver script with more over-complicated features nobody wants or needs. - [`903362b`](https://github.com/GameServerManagers/LinuxGSM/commit/903362b6a06c32c7cf9443dd1ab16884db17ba53) Added GitHub downloader/updater POC. It downloads a manifest of the hashes for all files for use in comparisons. - [`25130ff`](https://github.com/GameServerManagers/LinuxGSM/commit/25130ff22a066eaf7a5c6df492398db7d14b3a79) Updated insserver script to have headers and default values set from script in a more standardized way. - [`b44f930`](https://github.com/GameServerManagers/LinuxGSM/commit/b44f93085ace116f587db6e5c65e716b96853073) Major rework to put subdirectories under lgsm directory, as a test. New games support function that has parameters set from hierarchially loaded gamedata files to stgart to move towards single-instance manager for all games - [`963eef3`](https://github.com/GameServerManagers/LinuxGSM/commit/963eef36e321cb7f67d0557f2be251eeb158ebc9) Bugfixes, new game parser updates ### 📊 Changes **393 files changed** (+16198 additions, -1019 deletions) <details> <summary>View changed files</summary> 📝 `.gitignore` (+5 -1) 📝 `GameServerQuery/gsquery.py` (+0 -0) ➖ `Insurgency/insserver` (+0 -139) 📝 `README.md` (+54 -1) 📝 `cfg/ARKSurvivalEvolved/lgsm-default.ini` (+0 -0) 📝 `cfg/Arma3/lgsm-default.network.cfg` (+0 -0) 📝 `cfg/Arma3/lgsm-default.server.cfg` (+0 -0) 📝 `cfg/BlackMesa/lgsm-default.cfg` (+0 -0) 📝 `cfg/BladeSymphony/lgsm-default.cfg` (+0 -0) 📝 `cfg/BrainBread2/lgsm-default.cfg` (+0 -0) 📝 `cfg/CounterStrike/lgsm-default.cfg` (+0 -0) 📝 `cfg/CounterStrikeConditionZero/lgsm-default.cfg` (+0 -0) 📝 `cfg/CounterStrikeGlobalOffensive/lgsm-default.cfg` (+0 -0) 📝 `cfg/CounterStrikeSource/lgsm-default.cfg` (+0 -0) 📝 `cfg/DayOfDefeat/lgsm-default.cfg` (+0 -0) 📝 `cfg/DayOfDefeatSource/lgsm-default.cfg` (+0 -0) 📝 `cfg/DeathmatchClassic/lgsm-default.cfg` (+0 -0) 📝 `cfg/DoubleActionBoogaloo/lgsm-default.cfg` (+0 -0) 📝 `cfg/FistfulOfFrags/lgsm-default.cfg` (+0 -0) 📝 `cfg/GarrysMod/lgsm-default.cfg` (+0 -0) _...and 80 more files_ </details> ### 📄 Description I created a version of insserver to support putting configs that allow overrides of script settings for each instance in a way that makes sense (at least to me). This allows users to simply update the script from GitHub or via download, and not have to back up or re-configure their settings. It also supports multiple instances a little better. I had all this in version 200914, I ported it over to the latest version and tested it with my servers. As far as I can see, it works, but this is my first time doing a PR so be aware that I am pretty new at this. - Added external config support, load files from cfg/servers directory, in this order: - _default.cfg (which is managed by Git and should not be edited by end users) - _common.cfg (which is the user's common settings for all servers) - SERVICENAME.cfg for the individual instances. - TODO: If this PR is accepted, modify the default config creation to use a fetch from GitHub as the functions files are. - Cleaned up the function script calling, it no longer has to change directory when function files are downloaded, which annoyed me. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 03:53:22 +03:00
Sign in to join this conversation.
No labels
Atomic
Epic
cannot reproduce
command: backup
command: console
command: debug
command: details
command: fast-dl
command: install
command: mods
command: monitor
command: post-details
command: restart
command: send
command: start
command: stop
command: update
command: update-lgsm
command: validate
command: wipe
distro: AlmaLinux
distro: Arch Linux
distro: CentOS
distro: Debian
distro: Fedora
distro: RedHat
distro: Rocky Linux
distro: Ubuntu
distro: openSUSE
engine: goldsrc
engine: source
game: 7 Days to Die
game: ARMA 3
game: Ark: Survival Evolved
game: Assetto Corsa
game: Avorion
game: BATTALION: Legacy
game: Barotrauma
game: Battalion 1944
game: Battlefield 1942
game: Black Mesa: Deathmatch
game: Blade Symphony
game: Call of Duty 2
game: Call of Duty 4
game: Call of Duty: United Offensive
game: Counter-Strike 1.6
game: Counter-Strike 2
game: Counter-Strike: Global Offensive
game: Counter-Strike: Source
game: Day of Infamy
game: Dayz
game: Death Match Classic
game: Don't Starve Together
game: ET: Legacy
game: Eco
game: Factorio
game: Factorio
game: Garry's Mod
game: Half-Life
game: Hurtword
game: Insurgecy
game: Insurgecy
game: Insurgency: Sandstorm
game: Just Cause 3
game: Killing Floor
game: Killing Floor 2
game: Left 4 Dead 2
game: Minecraft
game: Minecraft Bedrock
game: Mordhau
game: Multi Theft Auto
game: Mumble
game: Natural Selection 2
game: No More Room in Hell
game: Pavlov VR
game: Post Scriptum
game: Project Zomboid
game: Quake 3
game: QuakeWorld
game: Red Orchestra: Ostfront 41-45
game: Return to Castle Wolfenstein
game: Rising World
game: Rust
game: San Andreas Multiplayer
game: Satisfactory
game: Soldat
game: Soldier of Fortune 2
game: Squad
game: Squad 44
game: Starbound
game: Stationeers
game: Sven Co-op
game: Team Fortress 2
game: Teamspeak 3
game: Teeworlds
game: Terraria
game: The Front
game: Unreal Tournament 2004
game: Unreal Tournament 3
game: Unreal Tournament 99
game: Unturned
game: Valheim
game: Wurm Unlimited
game: Zombie Master Reborn
game: label missing
good first issue
help wanted
info: alerts
info: dependency
info: docker
info: docs
info: email
info: query
info: steamcmd
info: systemd
info: tmux
info: website
info: website
needs more info
outcome: duplicate
outcome: issue resolved
outcome: issue resolved
outcome: issue unresolved
outcome: pr accepted
outcome: pr rejected
outcome: unconfirmed
outcome: wontfix
outcome: wrong forum
potential-duplicate
priority
pull-request
type: bug
type: feature
type: feature
type: feature request
type: game server request
type: refactor
waiting response
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/LinuxGSM#3121
No description provided.