Skip to content

gbans is a centralized game community platform with support for global bans. It currently supports Team Fortress 2

License

Notifications You must be signed in to change notification settings

leighmacdonald/gbans

Repository files navigation

gbans

License: MIT Test, Build & Publish Codacy Badge Go Report Card GoDoc Lines of Code Discord chat

gbans is a centralized game administration system for Team Fortress 2 that incorporates a global ban system similar to sourcebans++ as well as some additional basic community tools like news, forums & wikis. The project was initially only intended to be a more modern & secure replacement for sourcebans, but has evolved to handle broader community aspects.

Stability / Usage Notice

While we currently are dogfooding the project on a community with around 50 servers, I would not recommend non-developers use the project yet. It's still in fairly major development mode and large sections are still incomplete or function but very rough.

Before we tag a 1.0.0 release, we will write some proper user-facing documentation. You can however look at the currently incomplete docs.

Features

  • General
  • Import/Export of gbans databases
    • Backend linking of gbans services to enable use of other operators lists in real-time.
    • tf2_bot_detector compatible player list exports.
  • Game support, support for other games would be possible, but is not currently planned.
    • Team Fortress 2
  • Blocking lists & types
    • Valves source server banip config
    • Existing sourcebans database
    • CIDR/IP bans
    • tf2_bot_detector
    • Arbitrary 3rd party CIDR block lists, Proxy/VPN/Datacenter bans
    • FireHOL databases
  • Database support
  • Centralized UDP based logging
    • Message History
    • Connection History
  • Match Histories
    • Stats
      • Overall
      • Per Weapon
      • Per Maps
      • Per Server
      • Per Timeframe
      • Daily position changes
      • Charts
    • "Skill" based scrambles using historical match data
  • SourceMod Plugin
    • Game server authentication
    • Restrict banned players from connecting
    • Restrict muted/gagged players on join
    • Dynamically load admins/mods/reserved slots from gbans
    • Sourcemod admins-sql-* plugin compatibility.
    • STV Recording with auto truncating methods to cleanup old demos
    • /gb_ban <player_id|steam_id> duration Reason Ban a user
    • /gb_unban Unban a previously banned user
    • /gb_kick Kick a user
    • /gb_mod or /mod <message> Call for a mod on discord
  • Markdown formatting support for all multiline inputs with image uploading
  • Community Forum System
    • Categories
    • Forums
    • Private / Restricted forums
    • Signatures
    • Active user display
    • Advanced markdown editor interface
  • User Interfaces
    • CLI
    • Discord
    • Web
      • Public / Authenticated
        • Server Browser
        • News
        • Wiki
        • User reports
        • Ban Appeals
        • SourceTV Downloads
        • In-Game chat logs
        • Server browser
      • Mods
        • Edit Word Filters
        • Ban player by steam/net/asn/group
        • Current Reports
        • Current Appeals
        • Edit News
        • Edit contests
        • In-Game Vote logging
        • Networking Queries
          • Player IP History
          • Players Sharing IPs
          • Query IP information: Location/ASN/Proxy/Map
        • External CIDR block lists editor
      • Admins
        • Edit Servers
        • Edit game moderator/admin permissions. Admins/Groups/Command overrides/Group immunities.

Docker

Docker is recommended to run gbans. You can find the official docker images on ghcr.io.

Assuming you have created your config file and have a database setup you can run it using something like:

docker run -it --rm -v `$(pwd)`/gbans.yml:/app/gbans.yml:ro ghcr.io/leighmacdonald/gbans:latest

There is also a docker-compose config you can use which provides the database as well.

docker-compose -f docker/docker-compose.yml up --build --remove-orphans --abort-on-container-exit --exit-code-from gbans

Documentation

For installation, configuration and usage instruction, developer notes, please see the docs.

Contributors

leighmacdonald
Leigh MacDonald
Gcommer
Gcommer
rjdXpxigYxNT
rjdXpxigYxNT
crescentrose
Ivan
Mircoxi
Mircoxi
Tolfx
Matthew
Naleksuh
Naleksuh
camp3r101
camp3r101
jack-avery
Jack Avery
tdurieux
Thomas Durieux