Commit Graph

6647 Commits

Author SHA1 Message Date
Daniel Gibbs
d83e9d9c57
feat: Migrate stats to Google GA-4 (#4295)
* refactor: simplify Google Analytics event tracking

This commit simplifies the code for sending Google Analytics events by using a single POST request instead of multiple cURL commands. The new approach sends all necessary parameters in a JSON payload, reducing redundancy and improving efficiency. Additionally, unnecessary event tracking for summary statistics has been removed.

Co-authored-by: AI Assistant <assistant@example.com>

* add plausable event api

* refactor: remove unnecessary header in info_stats.sh

The commit removes an unnecessary header in the info_stats.sh file. This change simplifies the code and improves readability.

* feat: add country code of external IP address

This commit adds functionality to retrieve the country code of the external IP address. If the country code is not already stored in a file, it uses curl to fetch it from https://ipapi.co/country and saves it in "${tmpdir}/countrycode.txt". If curl fails, an error message is displayed.

* feat: add country code to Google Analytics tracking

This commit adds the country code parameter to the Google Analytics tracking request in the `info_stats.sh` file. It also includes various server statistics such as CPU usage, memory usage, disk usage, distro name, game name, RAM usage, server CPU details, server disk details, server RAM details, and version information.

* refactor: update country code parameter in info_stats.sh

The commit updates the country code parameter in the info_stats.sh file. The previous parameter "country" has been changed to "countryId" for better clarity and consistency.

* feat: add countryId and version to Google Analytics tracking

This commit adds the "countryId" and "version" parameters to the Google Analytics tracking in the info_stats.sh script. Now, when the script sends data to Google Analytics, it includes information about the country and version of LinuxGSM being used.

* refactor: remove unused countryId parameter in info_stats.sh

The commit removes the unused "countryId" parameter from the info_stats.sh file in the lgsm/modules directory. This change improves code cleanliness and eliminates unnecessary code.

* feat: add LinuxGSM stats tracking

This commit adds functionality to track LinuxGSM server statistics using Google Analytics and a custom API. The code now sends POST requests to both services, providing information such as CPU usage, memory usage, disk space, server hardware details, and game-specific data. Additionally, the commit includes an alert feature that sends event data to Discord if enabled.

Co-authored-by: [Author Name]

* refactor: update event name in info_stats.sh

The commit updates the event name in the info_stats.sh file from "linuxgsm" to "pageview". This change ensures that the correct event is being tracked when sending data to the stats.linuxgsm.com API.

* feat: add virtual environment to info_distro, info_game, and info_stats modules

- Added code to retrieve the virtual environment using systemd-detect-virt command.
- Updated the condition for RHEL based distros in info_distro module.
- Removed code related to country code retrieval from external IP address in info_game module.
- Added virtual environment field to the payload sent to Google Analytics and LinuxGSM API in info_stats module.

* feat: remove unnecessary header in info_stats.sh

The commit removes an unnecessary header in the info_stats.sh file. The header was causing an issue with the API request.

* feat: update server stats and enabled alerts

- Updated the server stats to include virtual environment, LinuxGSM version, and enabled alerts.
- Removed unnecessary code for sending alert statistics.

* feat: add alert options to info_stats module

This commit adds new alert options to the info_stats module. The added options include discordalert, emailalert, gotifyalert, iftttalert, mailgunalert, pushbulletalert, pushoveralert, rocketchatalert, slackalert, and telegramalert. These options allow users to configure different types of alerts for their game server statistics.

* feat: add virtual environment tracking to info_stats module

This commit adds the ability to track the virtual environment in the info_stats module. The "virtualenvironment" field is now included in the data sent to Google Analytics.

* feat: add dynamic payload generation for Google Analytics

This commit adds the ability to dynamically generate the payload for sending events to Google Analytics. The payload now includes properties such as `discordalert`, `emailalert`, `gotifyalert`, and more, based on their respective values. This allows for more flexibility in customizing the payload sent to Google Analytics.

The code changes can be found in `info_stats.sh`.

* refactor: simplify payload construction

The code changes in this commit refactor the payload construction in the `info_stats.sh` file. The changes simplify the process by removing repetitive if statements and consolidating the payload parameters. This improves readability and maintainability of the code.

* refactor: refactor alert options in info_stats.sh

Refactored the code in info_stats.sh to improve readability and maintainability. Replaced individual alert options with a unified "alert" option, which now accepts values like "discord", "email", "gotify", etc. This change simplifies the code and makes it easier to add or modify alert options in the future.

* feat: Send stats to Google Analytics GA4

This commit adds the functionality to send server statistics to Google Analytics GA4. The payload includes metrics such as CPU usage, disk usage, memory usage, and server information. The data is sent using a POST request to the Google Analytics API.

The previous code that sent stats to the LinuxGSM stats endpoint has been removed.

Note: This commit does not include any specific file changes.

* refactor: simplify sending stats to Google Analytics

The code changes refactor the logic for sending stats to Google Analytics. The previous implementation had multiple if statements for different alert types, resulting in repetitive code. The refactored code now uses a function to generate the alert payload and reduces duplication. This improves readability and maintainability of the code.

Co-authored-by: John Doe <johndoe@example.com>

---------

Co-authored-by: AI Assistant <assistant@example.com>
Co-authored-by: John Doe <johndoe@example.com>
2023-08-27 21:50:10 +01:00
Daniel Gibbs
f68818d62b refactor: rename clear-modules command to cm;clear-modules
The commit renames the clear-modules command to cm;clear-modules in the core_getopt.sh file. This change improves clarity and consistency in the codebase.
2023-07-26 22:12:20 +01:00
Daniel Gibbs
6dd9709edb fix: add new info about steamcmd failures
This commit fixes an issue in the core_dl.sh script where disk write failures and missing update files were not being handled correctly. Now, when a disk write failure or missing update files occur during the download process, appropriate error messages are displayed and logged.
2023-07-26 21:21:35 +01:00
Daniel Gibbs
c6f752be07 Merge branch 'release/v23.4.0' 2023-07-21 21:23:25 +01:00
Daniel Gibbs
7d50e3a3a6 Merge branch 'release/v23.4.0' into develop 2023-07-21 21:23:25 +01:00
Daniel Gibbs
edcd2b7c8b feat: add serverfiles directory creation step
This commit adds a new step to the workflow that creates a "serverfiles" directory. This directory will be used for storing server-related files.
2023-07-21 01:00:41 +01:00
Daniel Gibbs
6815e3d3e1 Release v23.4.0 2023-07-21 00:54:39 +01:00
Daniel Gibbs
1ea6ebb4ee refactor(av): update querymode in avserver config
The querymode value in the avserver config file has been changed from 5 to 1. TCP query done on rcon port which may not be on
2023-07-21 00:33:06 +01:00
ChaCha
e9f2453e48
Fix(tmux): better tmux session handling for multiple instance on same server / user session (#3767)
* fix(tmux): force tmux to create a new trmux server instance for each game instance to avoid sharing same pid.

* refactor: improve tmux command consistency and add session name flag

This commit refactors the code to improve consistency in the usage of the `tmux` command. It adds the `-L` flag followed by the session name to all `tmux` commands. This ensures that all commands are executed within the correct session. Additionally, it updates the `check_status.sh`, `command_console.sh`, `command_send.sh`, `command_start.sh`, `command_stop.sh`, and `info_distro.sh` files to include this change.

The changes ensure that all relevant commands are executed within the specified session, improving code readability and maintainability.

---------

Co-authored-by: cclecle <clement.chastanier@gmail.com>
Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk>
2023-07-20 22:54:05 +01:00
Daniel Gibbs
ab09a32410
fix: rework wurm server (#4266)
* feat: copy missing directories

Copy the Creative and Adventure directories if they are missing in the server files. This ensures that the necessary directories are present for proper functioning of the server.

* refactor: update default configuration for Wurm server

- Updated the default configuration file for Wurm server.
- Added predefined parameters for game mode, home kingdom, admin password, epic settings, home server, login server, max players, server name, IP address, and ports.
- Modified start parameters to include the new predefined parameters.
- Removed unnecessary lines related to glibc version and sourcing the server config file.
- Updated backup directory path.

* feat: add rmiport and rmiregport to startparameters

This commit adds the `rmiport` and `rmiregport` parameters to the `startparameters` configuration in the Wurm server default config file. These parameters are used for remote method invocation (RMI) port configuration.

* feat: update Wurm server configuration and information

- Updated the default configuration file for the Wurm server.
- Added a new parameter for server-to-server communication.
- Modified the game information script to display the RMI and RMI Registry ports.

This commit improves the configuration and information retrieval for the Wurm server.

* refactor: update startparameters in wurmserver config

The startparameters variable in the wurmserver config file has been updated to remove unnecessary single quotes around the gamemode parameter. This change improves consistency and readability of the code.

* refactor: update startparameters in wurmserver config

The startparameters variable in the wurmserver config file has been updated to include additional parameters for the game server. This change ensures that the server starts with the correct settings and configurations.

* refactor: remove unnecessary start parameter

The commit removes the 'start' parameter from the server's start parameters in the default configuration file. This change simplifies the configuration by removing an unnecessary parameter.

* refactor: update default value for adminpassword in fn_info_game_wurm

The default value for the adminpassword variable in the fn_info_game_wurm function has been updated to "NOT SET" instead of "0". This change ensures that the admin password is properly initialized when not explicitly set.

* feat: add link to Wurm Unlimited server administration documentation

Added a link to the Wurm Unlimited server administration documentation in the default configuration file for LGSM's Wurm server. This will provide users with easy access to information on managing their game servers.

* refactor: remove unnecessary configs in wurmserver config

The commit removes unused lines in the wurmserver configuration file. The removed lines include servercfgdir, servercfg, servercfgdefault, and servercfgfullpath. These lines are no longer needed and have been removed to clean up the code.
2023-07-20 21:13:33 +01:00
Marcin Jakubowski
9be4a09497
fix(armar): fix parsing new a2s config (#4268) 2023-07-20 20:46:12 +01:00
Daniel Gibbs
1149efd57f fix(wet): correct queryport assignment 2023-07-12 15:17:19 +01:00
dependabot[bot]
ba7500901e
build(deps): bump github/issue-labeler from 3.1 to 3.2 (#4258)
Bumps [github/issue-labeler](https://github.com/github/issue-labeler) from 3.1 to 3.2.
- [Release notes](https://github.com/github/issue-labeler/releases)
- [Commits](https://github.com/github/issue-labeler/compare/v3.1...v3.2)

---
updated-dependencies:
- dependency-name: github/issue-labeler
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-12 14:07:57 +01:00
Marcin Jakubowski
c3d51d2d23
fix(armar): adapts game info to the new specification of server config (#4240)
* fix(armar): adapts game info to the new specification of server config

* fix(armar): back to legacy a2s settings
2023-07-12 14:05:21 +01:00
Daniel Gibbs
bbc5a98b48
feat: download appmanifest files for goldsrc games (#4260)
* add appmanifest files to data

* refactor: improve appmanifest check and force update logic

The code changes refactor the `fn_appmanifest_check` function in the `core_steamcmd.sh` file. The improvements include:
- Checking if `BytesDownloaded` and `BytesToDownload` match, and forcing an update if they don't.
- Checking if `BytesStaged` and `BytesToStage` match, and forcing an update if they don't.
- For GoldSrc engine, checking if `SharedDepots` exists in the appmanifest file, and forcing an update if it doesn't.
- Fetching missing appmanifest files from GitHub for specific game shortnames.

These changes enhance the reliability of the appmanifest check process and ensure that updates are forced when necessary.

* a

* refactor: improve removal of appinfo.vdf file

The code has been refactored to improve the removal of the appinfo.vdf file. The find command now redirects error output to /dev/null for a cleaner execution.

* a

* fn_check_steamcmd_appmanifest is now a full check

* a

* a

* feat: add support for fetching appmanifest files

This commit adds support for fetching appmanifest files from the GitHub repository. The code now fetches the appropriate appmanifest files based on the game's shortname and updates them in the serverfiles/steamapps directory. This change ensures that the correct appmanifest files are used, fixing an issue related to updating certain games.

* more appmanifest files

* feat: add appmanifest_10.acf for Counter-Strike

Added the appmanifest_10.acf file for Counter-Strike to resolve an issue with missing SharedDepots. This commit fetches the necessary files from GitHub and forces an update to correct the issue.
2023-07-12 14:04:34 +01:00
Daniel Gibbs
db692b2610
fix(ti): Update config using evrima branch (#4263)
* refactor: simplify start parameters in tiserver config

The start parameters in the tiserver config file have been simplified to only include the default map and port. The unnecessary queryport and eaclaunch parameters have been removed.

* refactor: update default configuration and game info handling

- Set `steammaster` to false in the default configuration file.
- Refactor the game info script to handle changes in the game's ini file structure:
  - Update the key for `queueenabled` to `bQueueEnabled`.
  - Update the key for `rconenabled` to `bRconEnabled`.
  - Add support for retrieving `rconpassword`, `serverpassword`, and `serverpasswordenabled`.
- Modify the message formatting in the info messages script to display queue, RCON, and query ports correctly.
2023-07-12 14:03:50 +01:00
Daniel Gibbs
d34bc29db6
feat: game server config migration (#4262)
* refactor: simplify game directory names in install_config.sh

The commit simplifies the game directory names in the install_config.sh file. It replaces specific game directory names with a generic variable, shortname, to improve code readability and maintainability.

* fix: handle invalid directory paths

The code now checks if the server files or system directory exist before proceeding. If either directory does not exist, an error message is printed and the script exits.
2023-07-12 12:17:31 +01:00
Daniel Gibbs
ce9f864f24
feat(rw): migrate rising world to unity engine (#4261)
* refactor: update default executable name for Rising World server

The default executable name for the Rising World server has been updated from "server.jar" to "RisingWorldServer.x64". This change ensures that the correct executable is used when launching the game server.

* refactor(rw): no longer java

The code in `info_messages.sh` has been refactored to simplify the port command for multiple game servers. This change improves readability and maintainability.

* refactor: simplify info_game_rw function

The info_game_rw function has been refactored to remove redundant code and improve readability. The configuration values are now retrieved using the fn_info_game_keyvalue_pairs function, which reduces duplication and improves maintainability. Additionally, the default values for configip, gamemode, maxplayers, port, queryport, rconport, seed, servername, and worldname have been set to appropriate fallback values if they are not found in the server configuration file.

* refactor: remove unnecessary game ports and query HTTP port

The code changes in this commit refactor the `info_messages.sh` file by removing unnecessary game ports and the query HTTP port. This simplifies the code and improves readability.

* refactor: update queryport calculation in info_game.sh

The code change updates the calculation of the queryport variable in the info_game.sh script. Instead of assigning it the same value as port, it now subtracts 1 from the port value. This ensures that queryport is set correctly for further use in the script.

* feat: add branch configuration option for rwserver

This commit adds a new configuration option `branch` to the `_default.cfg` file in the `rwserver` directory. The default value is set to "unity". This allows users to specify a specific branch for SteamCMD when installing or updating the server.

* refactor: update default game server configuration

The default game server configuration file has been updated to reflect the following changes:
- Removed the predefined parameter `javaram`
- Updated the value of `consoleinteract` to "yes"
- Updated the values of `engine` and `glibc`

These changes ensure that the default configuration is more up-to-date and aligned with the desired behavior for a Rising World game server.

* refactor: remove unnecessary code for game+1, game+2, and game+3

The code changes in this commit involve removing unnecessary code related to the variables port2, port3, and port4. These variables were used to display information about additional games (game+1, game+2, and game+3) in the output. However, since these variables are not being used elsewhere in the script, they have been removed along with the corresponding echo statements. This refactor simplifies the code by eliminating redundant logic.
2023-07-11 17:27:34 +01:00
Daniel Gibbs
c13a7d003f fix(monitor): improve logging messages
- Refactored the `fn_monitor_check_lockfile`, `fn_monitor_check_backup`, and `fn_monitor_check_install` functions in the `command_monitor.sh` file.
- Updated the logging messages to provide more concise and informative output.
- Replaced `fn_print_info_nl` with `fn_print_info` for consistency.
- Removed unnecessary line breaks in the logging messages.
2023-07-10 16:42:16 +01:00
Daniel Gibbs
953efca700 fix: add missing Query port information to GoldSrc info message
This commit adds the functionality to display the Query port information in the GoldSrc info message. The Query port is now shown alongside the Game and Client ports.
2023-07-10 13:35:06 +01:00
Daniel Gibbs
7f4111d167 fix(mta): update xml parsing
The `fn_info_game_mta` function in the `info_game.sh` file has been refactored to update the parameters passed to the `fn_info_game_xml` function. The parameter names have been changed from "port" to "serverport", "httpport" to "httpport", "servername" to "servername", "maxplayers" to "maxplayers", and "ase" to "ase". This change improves code readability and consistency.
2023-07-10 10:13:59 +01:00
Daniel Gibbs
6be6e95f23 Merge branch 'hotfix/v23.3.6' 2023-07-05 16:56:05 +01:00
Daniel Gibbs
e9cfa0103c Merge branch 'hotfix/v23.3.6' into develop 2023-07-05 16:56:04 +01:00
Daniel Gibbs
5cb6c9e3a1 Release v23.3.6 2023-07-05 16:52:39 +01:00
Daniel Gibbs
6726772bb1 refactor: update log directory configuration
The log directory configuration has been updated for multiple game servers. The LGSM_LOGDIR environment variable is now checked and used if available, otherwise the default root directory is used. This change ensures that the correct log directories are set for each server.
2023-07-05 11:18:33 +01:00
Daniel Gibbs
a6d24cdc77 refactor(jc3): update querymode and querytype in jc3server config
The `querymode` has been changed from "2" to "1" and the `querytype` has been cleared in the jc3server configuration file. This change refactors the way server queries are handled.
2023-07-04 21:42:44 +01:00
Daniel Gibbs
21f91009de refactor(mohaa): update querymode and querytype in mohaaserver config
The querymode and querytype values in the mohaaserver config have been updated. The new values are querymode="1" and an empty string for querytype. This change refactors the configuration to use a different method for querying game server information.
2023-07-04 21:33:24 +01:00
Daniel Gibbs
9cd5abdbf5 refactor(mr): update querymode and querytype in _default.cfg
The commit updates the querymode to "1" and removes the value for querytype in the _default.cfg file. This change refactors the configuration related to querying game servers.

Mordhau query port no longer starts with the server. Disabling querying
2023-07-04 17:01:54 +01:00
Daniel Gibbs
f43a84623a refactor: improve monitor check update function
The `fn_monitor_check_update` function has been refactored to improve readability and efficiency. Specifically, a specific check for docker has been added to ignore the command "watch -n 1800 ./csgoserver update". Additionally, the logic for updating the `monitorps` variable has been simplified.
2023-07-04 09:50:32 +01:00
Daniel Gibbs
6716839c8b feat: add steamcmd checking to monitor 2023-07-03 21:43:03 +01:00
Daniel Gibbs
9d699ee36d refactor: improve lockfile checking and add backup and debug mode checks
The code changes refactor the `fn_monitor_check_lockfile` function to include additional checks for backup and debug modes. The new functions `fn_monitor_check_backup` and `fn_monitor_check_debug` are added to handle these checks. Additionally, the `fn_monitor_check_install` function is introduced to check if an installation is currently running. The existing check for active updates in the `fn_monitor_check_update` function is also improved.

These changes enhance the monitoring functionality by providing more comprehensive checks for different scenarios, ensuring that the monitor does not run when certain conditions are met.
2023-07-03 20:47:08 +01:00
Daniel Gibbs
a9a0744070 fix: update server configurations and game versions
- Set `consoleverbose` to "yes" in BTL Server configuration
- Remove redundant line in KF Server configuration
- Remove redundant line in RO Server configuration
- Update VH Server executable path and remove redundant line
- Update BTL Server game version to Ubuntu 20.04 in serverlist.csv
2023-07-03 16:52:38 +01:00
Daniel Gibbs
76badc21ed feat(docker): add trigger for building Docker LinuxGSM and GameServer
Added triggers to the workflow file `trigger-docker-build.yml` to build Docker images for LinuxGSM and GameServer. The trigger for GameServer is dependent on the completion of the LinuxGSM build.
2023-07-02 01:03:10 +01:00
Daniel Gibbs
fd8c83ee32 feat(docker): add trigger for building Docker LinuxGSM and GameServer
Added triggers to the workflow file `trigger-docker-build.yml` to build Docker images for LinuxGSM and GameServer. The trigger for GameServer is dependent on the completion of the LinuxGSM build.
2023-07-02 01:03:00 +01:00
Daniel Gibbs
2844eff22b Merge branch 'hotfix/v23.3.5' into develop 2023-07-02 00:55:07 +01:00
Daniel Gibbs
18bf74af98 Merge branch 'hotfix/v23.3.5' 2023-07-02 00:55:07 +01:00
Daniel Gibbs
257c006977 Release v23.3.5 2023-07-02 00:53:22 +01:00
Daniel Gibbs
2ff6b68239 refactor(docker): simplify root user check
The code changes remove the unnecessary check for the presence of a Docker environment in multiple scripts. Instead, they now only check if the current user is not root. This simplifies the logic and improves readability.

- Simplify root user check in `check.sh`, `check_deps.sh`, `check_permissions.sh`, `check_root.sh`, `command_install.sh`, `core_exit.sh`, and `linuxgsm.sh`
- Remove redundant checks for Docker environment
- Improve code readability
2023-07-02 00:39:40 +01:00
Daniel Gibbs
f2779d1b2d feat(docker): create ENV for directory changes in docker
adds ability to update some variables using ENV variables in docker.

a
2023-07-01 23:03:56 +01:00
Daniel Gibbs
9a0df53b97 fix: update serverlist.csv
- Updated the operating system version for Action: Source server from ubuntu-22.04 to ubuntu-20.04
- Updated the operating system version for Arma Reforger server from ubuntu-22.04 to ubuntu-20.04
2023-07-01 21:25:00 +01:00
Daniel Gibbs
be0cc93697 fix(bt): update querymode and querytype in btserver config
The `querymode` and `querytype` values in the btserver configuration file have been updated. The new values are `1` for `querymode` and an empty string for `querytype`. This change ensures that the correct query mode is used for server queries.
2023-06-30 18:25:30 +01:00
Daniel Gibbs
532e905960 fix(ut3): update querymode and querytype in UT3 server config
The commit updates the `querymode` to "1" and removes the value for `querytype` in the UT3 server configuration file. This change ensures that the correct query mode is used for server queries.
2023-06-30 14:37:54 +01:00
Daniel Gibbs
7b115fe07a fix(sol): update query mode
The query mode has been changed from "4" (gsquery) to "5" (tcp) in the solserver configuration file. Additionally, the query type has been cleared. This ensures that the server uses TCP for querying and removes any specific query type.
2023-06-30 14:25:41 +01:00
Daniel Gibbs
14c5a14945 fix(core_getopt): fix typo in command name
The commit fixes a typo in the command name "cmd_sponso" to "cmd_sponsor" in the core_getopt.sh file. This change ensures that the correct command is used for donation options.
2023-06-30 01:15:37 +01:00
Daniel Gibbs
f37f220a67 fix(etl): re add queryport 2023-06-30 01:14:06 +01:00
Daniel Gibbs
7d958ea222 fix(st): update st settings to get it working again 2023-06-30 00:52:31 +01:00
Daniel Gibbs
d9d6b6ebd3 fix(bt): add missing libxml2-utils
The commit adds the libxml2-utils package to several CSV files. This change is necessary for the proper functioning of some scripts that depend on this package.
2023-06-19 17:52:15 +01:00
Daniel Gibbs
23e39af8a3 Merge branch 'hotfix/v23.3.4' 2023-06-15 22:00:09 +01:00
Daniel Gibbs
300209368e Merge branch 'hotfix/v23.3.4' 2023-06-15 21:59:51 +01:00
Daniel Gibbs
28adc88f13 Release v23.3.4 2023-06-15 21:56:40 +01:00