Skip to content

v11.4.0 Webhook Service / Scorebot Overhaul / Miscellaneous

Compare
Choose a tag to compare
@cemathey cemathey released this 18 Feb 04:10
· 75 commits to master since this release
90e9aeb

🚀 Features

🚨 PLEASE READ THE UPGRADE INSTRUCTIONS FULLY; THEY ARE DIFFERENT THAN A STANDARD RELEASE ESPECIALLY IF YOU ARE RUNNING LOCAL MODIFICATIONS 🚨

UI improvements; @Dorfieeee continues to crush it with his UI updates and bug fixes and we remain in his debt for the time and effort he is volunteering to this project; it is quite honestly too much to list, please look at the full change logs for details.

Webhook Service (@cemathey)

We have added a new container that will run (only one regardless of how many servers you use) that will now handle Discord rate limiting much better! You should see far less rate limits occur and it now manages shared rate limits which we haven't done previously.

In the future you will be able to see the state of your different configured webhooks (If they're rate limited; how often it has rate limited; number of pending messages, etc.) in the UI.

🚨 AS A REMINDER; YOU SHOULD PROBABLY NEVER USE A WEBHOOK TO SEND KILL LOGS TO DISCORD BECAUSE YOUR SERVER WILL GENERATE THEM FASTER THAN DISCORD CAN ACCEPT THEM 🚨

You can view the webhook_service.log which is shared across all of your game servers if there are any errors.

Watch Kill Rate (@cemathey) (@ElGuillermo)

With thanks to @ElGuillermo we have ported his plugin solution for this into CRCON itself.

You can now configure CRCON to notify you in Discord (with optional role/user mentions) when a player exceeds your configured kills per minute (KPM) rate.

There are options to whitelist players with flags, whitelist categories of weapons (armor, artillery and machine guns) and so forth.

It is accessible under Others > Watch Kill Rate and has a service (WATCH KILL RATE) that must be enabled under Settings > Services once you have configured/enabled it.

If you are running @ElGuillermo's plugin that duplicated this 🚨 YOU SHOULD REMOVE HIS VERSION PRIOR TO UPGRADING SO YOU DO NOT RECEIVE WARNINGS FROM BOTH VERSIONS 🚨

Scorebot Overhaul (@cemathey)

We've updated the Scorebot feature (that posts a message to Discord and updates it periodically to show a live view of your server) significantly.

It has been renamed from Scorebot to Scoreboard and will now contain 3 messages instead of 1 (Discord has some internal limitations on the length of a message and the number of embeds).

It now shows your server map rotation, and is very configurable (You can enable/disable individual fields and translate text).

IF your current Scorebot configuration contains both a valid public stats page URL and at least 1 webhook; these will automatically be updated in the new configuration.

You can still access your legacy Scorebot configuration from /api/get_scorebot_config

This is configurable under Others > Scoreboard and has a service (SCOREBOARD) that must be be enabled under Settings > Services once you have configured/enabled it.

Miscellaneous Features

  • You can now configure an RCON Chat Command to change the map to the next map in the rotation (@FlorianSW)

🐛 Bug Fixes

  • The Auto Settings message template type can now be configured under Settings > Templates (@ElGuillermo)
  • In some scenarios CRCON would fail to record game server logs (@FlorianSW)
  • The TK auto ban feature was failing to run previously because of a bug we introduced in a previous release (@cemathey)
  • The Churchill tank weapon names were missing and have been added (@dirtyformal)
  • You can now forward VIP removals to other servers through the UI (@Dorfieeee)
  • Fixed the clear button for search parameters on the game logs page (@Dorfieeee)

⚙️ Others

  • Updated from python 3.11 to python 3.12
  • The frontend (UI) container now builds in our github actions to make sure changes don't break the build process (@FlorianSW)
  • Bump paramiko from 3.5.0 to 3.5.1 by @dependabot in #925
  • Bump django-cors-headers from 4.6.0 to 4.7.0 by @dependabot in #923
  • Bump sqlalchemy from 2.0.37 to 2.0.38 by @dependabot in #922
  • Bump humanize from 4.11.0 to 4.12.0 by @dependabot in #942
  • Bump simplejson from 3.19.3 to 3.20.1 by @dependabot in #944
  • Bump httpx from 0.23.3 to 0.28.1 by @dependabot in #943
  • Bump sentry-sdk[django] from 2.20.0 to 2.21.0 by @dependabot in #945

Upgrade Instructions

Conditional Instructions

supervisord.conf

If you have a custom/copy of the supervisord.conf file, you need to make these additional changes before upgrading:

  1. Edit config/supervisord.conf
  2. Find the scorebot program and delete this section entirely
  3. Add a new section for the updated scoreboard:

[program:scoreboard]
command=python -m rcon.scoreboard
environment=LOGGING_FILENAME=scoreboard%(ENV_SERVER_NUMBER)s.log
startretries=5
  1. Add a section for the new watch_killrate feature:
[program:watch_killrate]
command=/code/manage.py watch_killrate
environment=LOGGING_FILENAME=watch_killrate_%(ENV_SERVER_NUMBER)s.log
startretries=5
autostart=true
autorestart=unexpected
  1. Save and close the file

Watch Kill Rate

If you installed @ElGuillermo's plugin that performs the same purpose; you should follow his install instructions for it in reverse and remove it prior to upgrading or you will receive warnings from both.

Docker Compose Files

IF you have changed your docker-compose-common-components.yaml file; you will need to add the new webhook_service definition which you can copy from the repo

THIS IS A TOTALLY OPTIONAL STEP; IT WILL STILL WORK WITHOUT IT:
Update your compose.yaml file; we are now using a Docker volume for the internal database that Scoreboard (formerly Scorebot) uses due to the way the Docker file system works.

  1. Open your compose.yaml file
  2. Add a volumes section at the top of the file:
volumes:
  scoreboard_db:
  1. Update the x-supervisor: &supervisor definition to include this volume by adding the following line underneath - .config/:/config/:
    - scoreboard_db:/scoreboard_db
  2. Save and close the file
    You can compare your compose.yaml file with the docker-templates/one-server.yaml file as an example.

YOUR SCOREBOARD SERVICE WILL STILL WORK IF YOU DO NOT DO THIS; JUST A LITTLE LESS EFFICIENTLY

.env Changes

THIS IS A TOTALLY OPTIONAL STEP; YOU WILL JUST RECEIVE SOME WARNINGS ABOUT UNSET ENVIRONMENT VARIABLES WHEN YOU START YOUR CONTAINERS

We have added a few environment variables for the webhook-service container to allow power users to tune their rate limiting.

  1. Open your .env file
  2. Open default.env and copy the Webhook Service section to your .env
  3. Save and close the file.

Mandatory Steps

Once you have done the steps above that apply to your situation it is a standard upgrade:

git fetch --tags
git checkout v11.4.0
docker compose pull
docker compose up -d

New Contributors

Full Changelog: v11.3.0...v11.4.0