Skip to content

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.

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
  • 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
    • Known VPN Networks
    • Known non-residential addresses
    • Known proxies
    • FireHOL databases
  • Database support
    • Postgresql w/PostGIS
  • 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
    • STV Recording. Uploads are done using the simple srcdsup tool.
    • /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
  • User Interfaces
    • CLI
    • Discord
    • Web
      • Public / Authenticated
        • Server Browser
        • News
        • Wiki
        • User reports
        • Ban Appeals
      • Admin
        • Edit Word Filters
        • Ban player by steam/net/asn/group
        • Current Reports
        • Current Appeals
        • Edit News
        • Edit Servers

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 directory.