From 7f94a241290e7ccaaf8fe986e3268f32b34b575a Mon Sep 17 00:00:00 2001 From: kimzuni Date: Tue, 30 Apr 2024 23:08:44 +0900 Subject: [PATCH] fixed: auto update/reboot, broadcast/countdown --- Dockerfile | 4 +- docs/en/README.md | 171 +++++++++++++++++++----------------- docs/kr/README.md | 44 +++++----- scripts/helper_functions.sh | 7 +- scripts/reboot.sh | 2 +- scripts/start.sh | 3 +- scripts/update.sh | 2 +- 7 files changed, 123 insertions(+), 110 deletions(-) diff --git a/Dockerfile b/Dockerfile index 57731e3..48edf97 100644 --- a/Dockerfile +++ b/Dockerfile @@ -72,13 +72,15 @@ ENV TZ="UTC" \ AUTO_UPDATE_CRON_EXPRESSION="0 * * * *" \ AUTO_UPDATE_WARN_MINUTES=15 \ AUTO_UPDATE_WARN_MESSAGE="Server will update in remaining_time minutes." \ + AUTO_UPDATE_WARN_REMAINING_TIMES="1 5 10" \ AUTO_REBOOT_ENABLED=false \ AUTO_REBOOT_CRON_EXPRESSION="0 0 * * *" \ AUTO_REBOOT_WARN_MINUTES=15 \ AUTO_REBOOT_WARN_MESSAGE="Server will reboot in remaining_time minutes." \ + AUTO_REBOOT_WARN_REMAINING_TIMES="1 5 10" \ AUTO_REBOOT_EVEN_IF_PLAYERS_ONLINE=false \ - BROADCAST_COUNTDOWN_MTIMES="1 5 10 15 30 60" \ BROADCAST_COUNTDOWN_SUSPEND_MESSAGE="Suspends countdown because there are no players." \ + BROADCAST_COUNTDOWN_SUSPEND_MESSAGE_ENABLE=true \ TARGET_COMMIT_ID= \ DISCORD_WEBHOOK_URL="" \ DISCORD_SUPPRESS_NOTIFICATIONS=false \ diff --git a/docs/en/README.md b/docs/en/README.md index 082775b..35f09c1 100644 --- a/docs/en/README.md +++ b/docs/en/README.md @@ -235,95 +235,100 @@ or by changing the permissions for all other: `chmod o=rwx data/` You can use the following values to change the settings of the server on boot. It is highly recommended you set the following environment values before starting the server: -| Variable | Info | Default Value | Allowed Values | Added in Version | -|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|------------------| -| TZ | Timezone used for Cron and Game server. (Not applicable to Log) | UTC | See [TZ Identifiers](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#Time_Zone_abbreviations) | 0.1.0 | -| PUID\* | The uid of the user the server should run as. | 1000 | !0 | 0.1.0 | -| PGID\* | The gid of the user the server should run as. | 1000 | !0 | 0.1.0 | -| PORT\* | Game port that the server will expose. | 7777 | 1024-65535 | 0.1.0 | -| QUERY_PORT | Query port used to communicate with Steam servers. | 27016 | 1024-65535 | 0.1.0 | -| UPDATE_ON_BOOT\*\* | Update the server when the docker container starts. | true | true/false | 0.1.0 | -| BACKUP_ENABLED | Enables automatic backups. | true | true/false | 0.1.1 | -| BACKUP_CRON_EXPRESSION | Setting affects frequency of automatic backups. | 0 0 \* \* \* | Needs a Cron-Expression - See [Configuring Automatic Backups with Cron](#configuring-automatic-backups-with-cron) | 0.1.1 | -| DELETE_OLD_BACKUPS | Delete backups after a certain number of days. | false | true/false | 0.1.1 | -| OLD_BACKUP_DAYS | How many days to keep backups. | 30 | any positive integer | 0.1.1 | -| AUTO_UPDATE_ENABLED | Enables automatic updates. | false | true/false | 0.1.4 | -| AUTO_UPDATE_CRON_EXPRESSION | Setting affects frequency of automatic updates. | 0 \* \* \* \* | Needs a Cron-Expression - See [Configuring Automatic Updates with Cron](#configuring-automatic-updates-with-cron) | 0.1.4 | -| AUTO_UPDATE_WARN_MINUTES | How long to wait to saved and update the server, after the player were informed. (This will be ignored, if no Players are connected) | 15 | !0 | 0.1.4 | -| AUTO_UPDATE_WARN_MESSAGE | Messages to broadcast on countdown for automatic updates. | Server will update in `remaining_time` minutes. | "string" | dev | -| AUTO_REBOOT_ENABLED | Enables automatic reboots. | false | true/false | dev | -| AUTO_REBOOT_CRON_EXPRESSION | Setting affects frequency of automatic reboots. | 0 0 \* \* \* | Needs a Cron-Expression - See [Configuring Automatic Reboots with Cron](#configuring-automatic-reboots-with-cron) | dev | -| AUTO_REBOOT_WARN_MINUTES | How long to wait to saved and reboot the server, after the player were informed. (This will be ignored, if no Players are connected) | 15 | !0 | dev | -| AUTO_REBOOT_WARN_MESSAGE | Messages to broadcast on countdown for automatic reboots. | Server will reboot in `remaining_time` minutes. | "string" | dev | -| AUTO_REBOOT_EVEN_IF_PLAYERS_ONLINE | Reboot the Server even if there are players online. | false | true/false | dev | -| BROADCAST_COUNTDOWN_MTIMES | Broadcast when the remaining time during countdown is included. | 1 5 10 15 30 60 | !0 and " "(Space) | 0.1.6 | -| BROADCAST_COUNTDOWN_SUSPEND_MESSAGE | Discord message when countdown suspended due to no players. | Suspends countdown because there are no players. | "string" | dev | -| TARGET_COMMIT_ID | Install and run the game server at the specified version. | _(empty)_ | See [Locking Specific Game Version](#locking-specific-game-version)(#target-commit-id) | 0.1.3 | -| DISCORD_WEBHOOK_URL | Discord webhook url found after creating a webhook on a discord server. | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.0 | -| DISCORD_SUPPRESS_NOTIFICATIONS | Enables/Disables `@silent` messages for the server messages. | false | true/false | 0.1.0 | -| DISCORD_CONNECT_TIMEOUT | Discord command initial connection timeout. | 30 | !0 | 0.1.0 | -| DISCORD_MAX_TIMEOUT | Discord total hook timeout. | 30 | !0 | 0.1.0 | -| DISCORD_PRE_INSTALL_MESSAGE | Discord message sent when server begins installing. | Server is installing... | "string" | 0.1.0 | -| DISCORD_PRE_INSTALL_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.0 | -| DISCORD_PRE_INSTALL_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.0 | -| DISCORD_POST_INSTALL_MESSAGE | Discord message sent when server completes installing. | Server install complete! | "string" | 0.1.2 | -| DISCORD_POST_INSTALL_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.2 | -| DISCORD_POST_INSTALL_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.2 | -| DISCORD_PRE_UPDATE_BOOT_MESSAGE | Discord message sent when server begins updating. | Server is updating... | "string" | 0.1.0 | -| DISCORD_PRE_UPDATE_BOOT_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.0 | -| DISCORD_PRE_UPDATE_BOOT_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.0 | -| DISCORD_POST_UPDATE_BOOT_MESSAGE | Discord message sent when server completes updating. | Server update complete! | "string" | 0.1.2 | -| DISCORD_POST_UPDATE_BOOT_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.2 | -| DISCORD_POST_UPDATE_BOOT_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.2 | -| DISCORD_PRE_START_MESSAGE | Discord message sent when server begins to start. | Server has been started! | "string" | 0.1.0 | -| DISCORD_PRE_START_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.0 | -| DISCORD_PRE_START_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.0 | -| DISCORD_SERVER_INFO_MESSAGE_ENABLED | Send the server settings with DISCORD_PRE_START_MESSAGE. | true | true/false | 0.1.1 | -| DISCORD_SERVER_INFO_MESSAGE_WITH_IP | Send the server IP and Port with server info. | false | true/false | 0.1.0 | -| DISCORD_PRE_SHUTDOWN_MESSAGE | Discord message sent when server begins to shutdown. | Server is shutting down... | "string" | 0.1.0 | -| DISCORD_PRE_SHUTDOWN_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.0 | -| DISCORD_PRE_SHUTDOWN_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.0 | -| DISCORD_POST_SHUTDOWN_MESSAGE | Discord message sent when server begins to shutdown. | Server is stopped! | "string" | 0.1.0 | -| DISCORD_POST_SHUTDOWN_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.0 | -| DISCORD_POST_SHUTDOWN_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.0 | -| DISCORD_PLAYER_JOIN_MESSAGE | Discord message sent when player joins the server. | `player_name` has joined! | "string" | 0.1.9 | -| DISCORD_PLAYER_JOIN_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.9 | -| DISCORD_PLAYER_JOIN_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.9 | -| DISCORD_PLAYER_LEAVE_MESSAGE | Discord message sent when player leaves the server. | `player_name` has left. | "string" | 0.1.9 | -| DISCORD_PLAYER_LEAVE_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.9 | -| DISCORD_PLAYER_LEAVE_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.9 | -| DISCORD_PRE_BACKUP_MESSAGE | Discord message when starting to create a backup. | Creating backup... | "string" | 0.1.1 | -| DISCORD_PRE_BACKUP_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.1 | -| DISCORD_PRE_BACKUP_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.1 | -| DISCORD_POST_BACKUP_MESSAGE | Discord message when a backup has been made. | Backup created at `file_path` | "string" | 0.1.1 | -| DISCORD_POST_BACKUP_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.1 | -| DISCORD_POST_BACKUP_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.1 | -| DISCORD_PRE_BACKUP_DELETE_MESSAGE | Discord message when starting to remove older backups. | Removing backups older than `old_backup_days` days | "string" | 0.1.1 | -| DISCORD_PRE_BACKUP_DELETE_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.1 | -| DISCORD_PRE_BACKUP_DELETE_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.1 | -| DISCORD_POST_BACKUP_DELETE_MESSAGE | Discord message when successfully removed older backups. | Removed backups older than `old_backup_days` days | "string" | 0.1.1 | -| DISCORD_POST_BACKUP_DELETE_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.1 | -| DISCORD_POST_BACKUP_DELETE_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.1 | -| DISCORD_ERR_BACKUP_DELETE_MESSAGE | Discord message when there has been an error removing older backups. | Unable to delete old backups, OLD_BACKUP_DAYS is not an integer. OLD_BACKUP_DAYS=`old_backup_days` | "string" | 0.1.1 | -| DISCORD_ERR_BACKUP_DELETE_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.1 | -| DISCORD_ERR_BACKUP_DELETE_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.1 | -| DISCORD_BROADCAST_MESSAGE_ENABLE\*\* | If the Discord message is enabled for broadcast content. | true | true/false | 0.1.6 | -| DISCORD_BROADCAST_MESSAGE_URL\* | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.6 | -| DISABLE_GENERATE_SETTINGS | Whether to automatically generate the Game.ini | false | true/false | 0.1.1 | -| ENABLE_PLAYER_LOGGING | Enables Logging and announcing when players join and leave. | true | true/false | 0.1.9 | -| PLAYER_LOGGING_POLL_PERIOD | Polling period (in seconds) to check for players who have joined or left | 5 | !0 | 0.1.9 | -| ARM_COMPATIBILITY_MODE | Switches the compatibility layer from Box86 to QEMU when executing steamcmd for server updates. This setting is only applicable for ARM64 hosts. | false | true/false | 0.1.0 | +| Variable | Info | Default Value | Allowed Values | Added in Version | +|---------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|------------------| +| TZ | Timezone used for Cron and Game server. (Not applicable to Log) | UTC | See [TZ Identifiers](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#Time_Zone_abbreviations) | 0.1.0 | +| PUID\* | The uid of the user the server should run as. | 1000 | !0 | 0.1.0 | +| PGID\* | The gid of the user the server should run as. | 1000 | !0 | 0.1.0 | +| PORT\* | Game port that the server will expose. | 7777 | 1024-65535 | 0.1.0 | +| QUERY_PORT | Query port used to communicate with Steam servers. | 27016 | 1024-65535 | 0.1.0 | +| UPDATE_ON_BOOT\*\* | Update the server when the docker container starts. | true | true/false | 0.1.0 | +| BACKUP_ENABLED | Enables automatic backups. | true | true/false | 0.1.1 | +| BACKUP_CRON_EXPRESSION | Setting affects frequency of automatic backups. | 0 0 \* \* \* | Needs a Cron-Expression - See [Configuring Automatic Backups with Cron](#configuring-automatic-backups-with-cron) | 0.1.1 | +| DELETE_OLD_BACKUPS | Delete backups after a certain number of days. | false | true/false | 0.1.1 | +| OLD_BACKUP_DAYS | How many days to keep backups. | 30 | any positive integer | 0.1.1 | +| AUTO_UPDATE_ENABLED | Enables automatic updates. | false | true/false | 0.1.4 | +| AUTO_UPDATE_CRON_EXPRESSION | Setting affects frequency of automatic updates. | 0 \* \* \* \* | Needs a Cron-Expression - See [Configuring Automatic Updates with Cron](#configuring-automatic-updates-with-cron) | 0.1.4 | +| AUTO_UPDATE_WARN_MINUTES | How long to wait to saved and update the server, after the player were informed. (This will be ignored, if no Players are connected) | 15 | !0 | 0.1.4 | +| AUTO_UPDATE_WARN_MESSAGE | Messages to broadcast on countdown for automatic updates. | Server will update in `remaining_time` minutes. | "string" | 0.1.10 | +| AUTO_UPDATE_WARN_REMAINING_TIMES | Informing when the remaining time during countdown is included. | 1 5 10 | !0 and " "(Space) | 0.1.10 | +| AUTO_REBOOT_ENABLED | Enables automatic reboots. | false | true/false | 0.1.10 | +| AUTO_REBOOT_CRON_EXPRESSION | Setting affects frequency of automatic reboots. | 0 0 \* \* \* | Needs a Cron-Expression - See [Configuring Automatic Reboots with Cron](#configuring-automatic-reboots-with-cron) | 0.1.10 | +| AUTO_REBOOT_WARN_MINUTES | How long to wait to saved and reboot the server, after the player were informed. (This will be ignored, if no Players are connected) | 15 | !0 | 0.1.10 | +| AUTO_REBOOT_WARN_MESSAGE | Messages to broadcast on countdown for automatic reboots. | Server will reboot in `remaining_time` minutes. | "string" | 0.1.10 | +| AUTO_REBOOT_WARN_REMAINING_TIMES | Informing when the remaining time during countdown is included. | 1 5 10 | !0 and " "(Space) | 0.1.10 | +| AUTO_REBOOT_EVEN_IF_PLAYERS_ONLINE | Reboot the Server even if there are players online. | false | true/false | 0.1.10 | +| BROADCAST_COUNTDOWN_SUSPEND_MESSAGE | Discord message when countdown suspended due to no players. | Suspends countdown because there are no players. | "string" | 0.1.10 | +| BROADCAST_COUNTDOWN_SUSPEND_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.2 | +| TARGET_COMMIT_ID | Install and run the game server at the specified version. | _(empty)_ | See [Locking Specific Game Version](#locking-specific-game-version)(#target-commit-id) | 0.1.3 | +| DISCORD_WEBHOOK_URL | Discord webhook url found after creating a webhook on a discord server. | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.0 | +| DISCORD_SUPPRESS_NOTIFICATIONS | Enables/Disables `@silent` messages for the server messages. | false | true/false | 0.1.0 | +| DISCORD_CONNECT_TIMEOUT | Discord command initial connection timeout. | 30 | !0 | 0.1.0 | +| DISCORD_MAX_TIMEOUT | Discord total hook timeout. | 30 | !0 | 0.1.0 | +| DISCORD_PRE_INSTALL_MESSAGE | Discord message sent when server begins installing. | Server is installing... | "string" | 0.1.0 | +| DISCORD_PRE_INSTALL_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.0 | +| DISCORD_PRE_INSTALL_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.0 | +| DISCORD_POST_INSTALL_MESSAGE | Discord message sent when server completes installing. | Server install complete! | "string" | 0.1.2 | +| DISCORD_POST_INSTALL_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.2 | +| DISCORD_POST_INSTALL_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.2 | +| DISCORD_PRE_UPDATE_BOOT_MESSAGE | Discord message sent when server begins updating. | Server is updating... | "string" | 0.1.0 | +| DISCORD_PRE_UPDATE_BOOT_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.0 | +| DISCORD_PRE_UPDATE_BOOT_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.0 | +| DISCORD_POST_UPDATE_BOOT_MESSAGE | Discord message sent when server completes updating. | Server update complete! | "string" | 0.1.2 | +| DISCORD_POST_UPDATE_BOOT_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.2 | +| DISCORD_POST_UPDATE_BOOT_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.2 | +| DISCORD_PRE_START_MESSAGE | Discord message sent when server begins to start. | Server has been started! | "string" | 0.1.0 | +| DISCORD_PRE_START_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.0 | +| DISCORD_PRE_START_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.0 | +| DISCORD_SERVER_INFO_MESSAGE_ENABLED | Send the server settings with DISCORD_PRE_START_MESSAGE. | true | true/false | 0.1.1 | +| DISCORD_SERVER_INFO_MESSAGE_WITH_IP | Send the server IP and Port with server info. | false | true/false | 0.1.0 | +| DISCORD_PRE_SHUTDOWN_MESSAGE | Discord message sent when server begins to shutdown. | Server is shutting down... | "string" | 0.1.0 | +| DISCORD_PRE_SHUTDOWN_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.0 | +| DISCORD_PRE_SHUTDOWN_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.0 | +| DISCORD_POST_SHUTDOWN_MESSAGE | Discord message sent when server begins to shutdown. | Server is stopped! | "string" | 0.1.0 | +| DISCORD_POST_SHUTDOWN_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.0 | +| DISCORD_POST_SHUTDOWN_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.0 | +| DISCORD_PLAYER_JOIN_MESSAGE | Discord message sent when player joins the server. | `player_name` has joined! | "string" | 0.1.9 | +| DISCORD_PLAYER_JOIN_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.9 | +| DISCORD_PLAYER_JOIN_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.9 | +| DISCORD_PLAYER_LEAVE_MESSAGE | Discord message sent when player leaves the server. | `player_name` has left. | "string" | 0.1.9 | +| DISCORD_PLAYER_LEAVE_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.9 | +| DISCORD_PLAYER_LEAVE_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.9 | +| DISCORD_PRE_BACKUP_MESSAGE | Discord message when starting to create a backup. | Creating backup... | "string" | 0.1.1 | +| DISCORD_PRE_BACKUP_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.1 | +| DISCORD_PRE_BACKUP_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.1 | +| DISCORD_POST_BACKUP_MESSAGE | Discord message when a backup has been made. | Backup created at `file_path` | "string" | 0.1.1 | +| DISCORD_POST_BACKUP_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.1 | +| DISCORD_POST_BACKUP_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.1 | +| DISCORD_PRE_BACKUP_DELETE_MESSAGE | Discord message when starting to remove older backups. | Removing backups older than `old_backup_days` days | "string" | 0.1.1 | +| DISCORD_PRE_BACKUP_DELETE_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.1 | +| DISCORD_PRE_BACKUP_DELETE_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.1 | +| DISCORD_POST_BACKUP_DELETE_MESSAGE | Discord message when successfully removed older backups. | Removed backups older than `old_backup_days` days | "string" | 0.1.1 | +| DISCORD_POST_BACKUP_DELETE_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.1 | +| DISCORD_POST_BACKUP_DELETE_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.1 | +| DISCORD_ERR_BACKUP_DELETE_MESSAGE | Discord message when there has been an error removing older backups. | Unable to delete old backups, OLD_BACKUP_DAYS is not an integer. OLD_BACKUP_DAYS=`old_backup_days` | "string" | 0.1.1 | +| DISCORD_ERR_BACKUP_DELETE_MESSAGE_ENABLED | If the Discord message is enabled for this message. | true | true/false | 0.1.1 | +| DISCORD_ERR_BACKUP_DELETE_MESSAGE_URL | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.1 | +| DISCORD_BROADCAST_MESSAGE_ENABLE\*\* | If the Discord message is enabled for broadcast content. | true | true/false | 0.1.6 | +| DISCORD_BROADCAST_MESSAGE_URL\* | Discord Webhook URL for this message. (if left empty will use DISCORD_WEBHOOK_URL) | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.6 | +| DISABLE_GENERATE_SETTINGS | Whether to automatically generate the Game.ini | false | true/false | 0.1.1 | +| ENABLE_PLAYER_LOGGING | Enables Logging and announcing when players join and leave. | true | true/false | 0.1.9 | +| PLAYER_LOGGING_POLL_PERIOD | Polling period (in seconds) to check for players who have joined or left | 5 | !0 | 0.1.9 | +| ARM_COMPATIBILITY_MODE | Switches the compatibility layer from Box86 to QEMU when executing steamcmd for server updates. This setting is only applicable for ARM64 hosts. | false | true/false | 0.1.0 | \* highly recommended to set \*\* Make sure you know what you are doing when running this option enabled. +### Removed environment variables + -
List of deleted or changed environment variables +
Click to display -| Variable | Available Versions | Changed to | -|------------------------------------|--------------------|-------------------------------------| -| DISCORD_SERVER_INFO_MESSAGE_ENABLE | 0.1.0 | DISCORD_SERVER_INFO_MESSAGE_ENABLED | +| Variable | Available Versions | Reason | Changed to | +|------------------------------------|--------------------|--------|-------------------------------------| +| DISCORD_SERVER_INFO_MESSAGE_ENABLE | 0.1.0 | Typo | DISCORD_SERVER_INFO_MESSAGE_ENABLED | +| BROADCAST_COUNTDOWN_MTIMES | 0.1.6 ~ 0.1.9 | Fixed | BROADCAST_COUNTDOWN_REMAINING_TIMES |
@@ -558,4 +563,4 @@ If not set, DISCORD_WEBHOOK_URL will be used. If **TARGET_COMMIT_ID** environment variable is set, will lock server version to specific commit. The Commit ID is a hexadecimal value found on page -and must be set to at least 4 digits. +and please given at least 4 digits. diff --git a/docs/kr/README.md b/docs/kr/README.md index 0464f8a..0c559c5 100644 --- a/docs/kr/README.md +++ b/docs/kr/README.md @@ -235,7 +235,7 @@ docker rmi $(docker images | grep -E ^"(ghcr.io\/)?kimzuni/longvinter-docker-ser 아래 값들을 사용하여 서버의 설정을 변경할 수 있습니다. 서버를 실행하기 전에 값을 설정해야 적용됩니다. -| 변수명 | 정보 | 기본값 | 설정 가능한 값 | 추가된 버전 | +| 변수명 | 설명 | 기본값 | 설정 가능한 값 | 추가된 버전 | |--------------------------------------------|----------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|-----------| | TZ | Cron 및 게임 서버에 사용되는 시간대 설정 (로그 파일에는 적용되지 않음) | UTC | [TZ Identifiers](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#Time_Zone_abbreviations) 참고 | 0.1.0 | | PUID\* | 지정한 값을 가진 UID로 서버 실행 | 1000 | !0 | 0.1.0 | @@ -249,16 +249,17 @@ docker rmi $(docker images | grep -E ^"(ghcr.io\/)?kimzuni/longvinter-docker-ser | OLD_BACKUP_DAYS | 백업 파일 보관 일수 | 30 | !0 | 0.1.1 | | AUTO_UPDATE_ENABLED | 자동 업데이트 활성화 | false | true/false | 0.1.4 | | AUTO_UPDATE_CRON_EXPRESSION | 자동 업데이트 빈도 설정 | 0 \* \* \* \* | 크론식 표현 - [Cron으로 자동 업데이트 설정하는 방법](#cron으로-자동-업데이트-설정하는-방법) 참고 바람 | 0.1.4 | -| AUTO_UPDATE_WARN_MINUTES | 플레이어가 있을 경우 서버를 저장 및 업데이트할 때까지 기다리는 시간(분) | 15 | !0 | 0.1.4 | -| AUTO_UPDATE_WARN_MESSAGE | 자동 업데이트 카운트다운 시 남은 시간을 브로드캐스트 할 떄 전송되는 메시지 | Server will update in `remaining_time` minutes. | "string" | dev | -| AUTO_REBOOT_ENABLED | 자동 재부팅 활성화 | false | true/false | dev | -| AUTO_REBOOT_CRON_EXPRESSION | 자동 재부팅 빈도 설정 | 0 0 \* \* \* | 크론식 표현 - [Cron으로 자동 재부팅 설정하는 방법](#cron으로-자동-재부팅-설정하는-방법) 참고 바람 | dev | -| AUTO_REBOOT_WARN_MINUTES | 플레이어가 있을 경우 서버를 저장 및 재부팅할 때까지 기다리는 시간(분) | 15 | !0 | dev | -| AUTO_REBOOT_WARN_MESSAGE | 자동 재부팅 카운트다운 시 남은 시간을 브로드캐스트 할 떄 전송되는 메시지 | Server will update in `remaining_time` minutes. | "string" | dev | -| AUTO_REBOOT_EVEN_IF_PLAYERS_ONLINE | 플레이어가 있을 경우에도 자동 재부팅 진행 | false | true/false | dev | -| BROADCAST_COUNTDOWN_MTIMES | 카운트다운 중 남은 시간이 이 값에 포함되어 있을 경우에만 브로드캐스트 | 1 5 10 15 30 60 | !0 and " "(Space) | 0.1.6 | -| BROADCAST_COUNTDOWN_SUSPEND_MESSAGE | 플레이어가 없어 카운트다운이 중단된 경우 브로드캐스트 메시지 | Suspends countdown because there are no players. | "string" | dev | -| BROADCAST_COUNTDOWN_SUSPEND_MESSAGE_ENABLE | 이 값이 `true`인 경우에만 해당 메시지 전송 | true | true/false | dev | +| AUTO_UPDATE_WARN_MINUTES | 플레이어에게 알림 전송 후 서버를 업데이트할 때까지 기다리는 시간(분) | 15 | !0 | 0.1.4 | +| AUTO_UPDATE_WARN_MESSAGE | 플레이어에게 남은 시간을 알리기 위해 전송되는 메시지 | Server will update in `remaining_time` minutes. | "string" | 0.1.10 | +| AUTO_UPDATE_WARN_REMAINING_TIMES | 카운트다운 중 남은 시간이 이 값에 포함되어 있을 경우에만 플레이어에게 알림 | 1 5 10 | !0 and " "(Space) | 0.1.6 | +| AUTO_REBOOT_ENABLED | 자동 재부팅 활성화 | false | true/false | 0.1.10 | +| AUTO_REBOOT_CRON_EXPRESSION | 자동 재부팅 빈도 설정 | 0 0 \* \* \* | 크론식 표현 - [Cron으로 자동 재부팅 설정하는 방법](#cron으로-자동-재부팅-설정하는-방법) 참고 바람 | 0.1.10 | +| AUTO_REBOOT_WARN_MINUTES | 플레이어에게 알림 전송 후 서버를 재부팅할 때까지 기다리는 시간(분) | 15 | !0 | 0.1.4 | +| AUTO_REBOOT_WARN_MESSAGE | 플레이어에게 남은 시간을 알리기 위해 전송되는 메시지 | Server will update in `remaining_time` minutes. | "string" | 0.1.10 | +| AUTO_REBOOT_WARN_REMAINING_TIMES | 카운트다운 중 남은 시간이 이 값에 포함되어 있을 경우에만 플레이어에게 알림 | 1 5 10 | !0 and " "(Space) | 0.1.6 | +| AUTO_REBOOT_EVEN_IF_PLAYERS_ONLINE | 플레이어가 있을 경우에도 자동 재부팅 진행 | false | true/false | 0.1.10 | +| BROADCAST_COUNTDOWN_SUSPEND_MESSAGE | 플레이어가 없어 카운트다운이 중단된 경우 브로드캐스트할 메시지 | Suspends countdown because there are no players. | "string" | 0.1.10 | +| BROADCAST_COUNTDOWN_SUSPEND_MESSAGE_ENABLE | 이 값이 `true`인 경우에만 해당 메시지 전송 | true | true/false | 0.1.10 | | TARGET_COMMIT_ID | 게임 서버를 지정한 Commit ID를 가진 버전으로 설치 및 실행 | _(empty)_ | [특정 게임 버전으로 고정](#특정-게임-버전으로-고정) 참고 | 0.1.3 | | DISCORD_WEBHOOK_URL | 디스코드 서버에서 생성한 웹훅 URL | _(empty)_ | `https://discord.com/api/webhooks/` | 0.1.0 | | DISCORD_SUPPRESS_NOTIFICATIONS | 디스코드 메시지 전송 시 멤버들에게 알림을 보내지 않음 | false | true/false | 0.1.0 | @@ -319,18 +320,21 @@ docker rmi $(docker images | grep -E ^"(ghcr.io\/)?kimzuni/longvinter-docker-ser \*\* 기본 값 사용 권장 +### 제거된 환경 변수 + -
삭제 또는 변경된 환경 변수 목록 +
목록 보기 -| Variable | Available Versions | Changed to | -|------------------------------------|--------------------|-------------------------------------| -| DISCORD_SERVER_INFO_MESSAGE_ENABLE | 0.1.0 | DISCORD_SERVER_INFO_MESSAGE_ENABLED | +| 변수명 | 사용 가능한 버전 | 사유 | 대체된 변수명 | +|------------------------------------|---------------|------|-------------------------------------| +| DISCORD_SERVER_INFO_MESSAGE_ENABLE | 0.1.0 | 오타 | DISCORD_SERVER_INFO_MESSAGE_ENABLED | +| BROADCAST_COUNTDOWN_MTIMES | 0.1.6 ~ 0.1.9 | 수정 | BROADCAST_COUNTDOWN_REMAINING_TIMES |
### 게임 포트 -| 포트 | 용도 | +| 포트 | 설명 | |-------|-------------------| | 7777 | 게입 포트 (TCP/UDP) | | 27016 | 쿼리 포트 (TCP/UDP) | @@ -345,7 +349,7 @@ docker rmi $(docker images | grep -E ^"(ghcr.io\/)?kimzuni/longvinter-docker-ser > > [브로드캐스트 메시지를 디스코드로 전송](#브로드캐스트-메시지를-디스코드로-전송) 참고 바람 -## 수동 브로드캐스트 +### 수동 브로드캐스트 아래 명령어를 사용하여 수동으로 브로드캐스트가 가능합니다. @@ -493,7 +497,7 @@ AUTO_REBOOT_CRON_EXPRESSION는 크론식으로, 작업을 실행할 시간 또 [환경 변수](#환경-변수)와 함께 사용되는 설정입니다. -| 변수 | 정보 | 기본값 | 설정 가능한 값 | +| 변수 | 설명 | 기본값 | 설정 가능한 값 | |-----------------------|--------------------------------------------------------------------------------|-------------------------------|-----------------------------------------------------------------| | CFG_SERVER_NAME | 비공식 서버 목록에 표시되는 서버명 | Unnamed Island | "string" | | CFG_MAX_PLAYERS | 동시 접속 최대 인원 | 32 | 1-? | @@ -538,7 +542,7 @@ Docker Compose로 사용하는 방법 - DISCORD_PRE_UPDATE_BOOT_MESSAGE="Server is updating..." ``` -## 브로드캐스트 메시지를 디스코드로 전송 +### 브로드캐스트 메시지를 디스코드로 전송 > [!IMPORTANT] > @@ -559,4 +563,4 @@ Docker Compose로 사용하는 방법 환경 변수 **TARGET_COMMIT_ID** 값이 설정된 경우 서버 버전이 해당 커밋의 버전으로 실행됩니다. Commit ID는 페이지에서 확인할 수 있는 16진수 값이며, -4자리 이상으로 설정해야 합니다. +4자리 이상이 필요합니다. diff --git a/scripts/helper_functions.sh b/scripts/helper_functions.sh index ec49ad5..0dad502 100644 --- a/scripts/helper_functions.sh +++ b/scripts/helper_functions.sh @@ -156,6 +156,7 @@ shutdown_server() { countdown_message() { local mtime="$1" local message="$2" + local remaining_times="$3" local return_val=0 if [[ "${mtime}" =~ ^[0-9]+$ ]]; then @@ -164,7 +165,7 @@ countdown_message() { # Checking for players every minute player_check || break - if [ "$mtime" -eq "$i" ] || [[ " $BROADCAST_COUNTDOWN_MTIMES " == *" $i "* ]]; then + if [ "$mtime" -eq "$i" ] || [[ " $remaining_times " == *" $i "* ]]; then if [ "$i" -eq 1 ]; then message="${message//minutes/minute}" fi @@ -177,7 +178,9 @@ countdown_message() { if [ "$i" -eq 0 ]; then sleep 1s elif [ "$1" -ne "$mtime" ]; then - broadcast_command "${BROADCAST_COUNTDOWN_SUSPEND_MESSAGE}" "warn" + if [ "$BROADCAST_COUNTDOWN_SUSPEND_MESSAGE_ENABLE" = true ]; then + broadcast_command "${BROADCAST_COUNTDOWN_SUSPEND_MESSAGE}" "warn" + fi fi # If there are players but mtime is empty elif [ -z "${mtime}" ]; then diff --git a/scripts/reboot.sh b/scripts/reboot.sh index afa5611..5db8dec 100644 --- a/scripts/reboot.sh +++ b/scripts/reboot.sh @@ -12,7 +12,7 @@ if [ "${AUTO_REBOOT_EVEN_IF_PLAYERS_ONLINE,,}" != true ]; then fi fi -countdown_message "${AUTO_REBOOT_WARN_MINUTES}" "${AUTO_REBOOT_WARN_MESSAGE}" +countdown_message "${AUTO_REBOOT_WARN_MINUTES}" "${AUTO_REBOOT_WARN_MESSAGE}" "${AUTO_UPDATE_WARN_REMAINING_TIMES}" countdown_exit_code=$? case "${countdown_exit_code}" in 0 ) diff --git a/scripts/start.sh b/scripts/start.sh index f2a60b6..6c43010 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -92,14 +92,13 @@ fi LogAction "Checking for available container updates" container_version_check +LogAction "GENERATING CONFIG" if [ "${DISABLE_GENERATE_SETTINGS,,}" = true ]; then - LogAction "GENERATING CONFIG" LogWarn "Env vars will not be applied due to DISABLE_GENERATE_SETTINGS being set to TRUE!" if [ ! -f "$CONFIG_FILE_FULL_PATH" ]; then cp "$CONFIG_FILE_FULL_PATH".default "$CONFIG_FILE_FULL_PATH" fi else - LogAction "GENERATING CONFIG" LogInfo "Using Env vars to create Game.ini" /home/steam/server/compile-settings.sh || exit fi diff --git a/scripts/update.sh b/scripts/update.sh index 7f9704f..191b6bb 100644 --- a/scripts/update.sh +++ b/scripts/update.sh @@ -24,7 +24,7 @@ fi TARGET_COMMIT="${TARGET_COMMIT_ID:-$LATEST_COMMIT}" -countdown_message "${AUTO_UPDATE_WARN_MINUTES}" "${AUTO_UPDATE_WARN_MESSAGE}" +countdown_message "${AUTO_UPDATE_WARN_MINUTES}" "${AUTO_UPDATE_WARN_MESSAGE}" "${AUTO_UPDATE_WARN_REMAINING_TIMES}" countdown_exit_code=$? case "${countdown_exit_code}" in 0 )