{"id":26041255,"url":"https://github.com/mistercalvin/amxbans","last_synced_at":"2026-05-17T02:10:39.345Z","repository":{"id":243288015,"uuid":"812016844","full_name":"MisterCalvin/amxbans","owner":"MisterCalvin","description":"An updated and Dockerized version of AMXBans with added quality of life features","archived":false,"fork":false,"pushed_at":"2024-07-24T15:08:24.000Z","size":2131,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-07-24T21:27:25.883Z","etag":null,"topics":["amxbans","amxmodx","counter-strike","docker","goldsrc","half-life","php","webui"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MisterCalvin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-07T19:21:11.000Z","updated_at":"2024-07-24T15:08:27.000Z","dependencies_parsed_at":"2024-06-07T20:45:58.298Z","dependency_job_id":"e55c3199-14d2-46d0-940e-d5522141b7eb","html_url":"https://github.com/MisterCalvin/amxbans","commit_stats":null,"previous_names":["mistercalvin/amxbans"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisterCalvin%2Famxbans","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisterCalvin%2Famxbans/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisterCalvin%2Famxbans/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MisterCalvin%2Famxbans/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MisterCalvin","download_url":"https://codeload.github.com/MisterCalvin/amxbans/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242402426,"owners_count":20122264,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amxbans","amxmodx","counter-strike","docker","goldsrc","half-life","php","webui"],"created_at":"2025-03-07T13:51:03.113Z","updated_at":"2026-05-17T02:10:34.307Z","avatar_url":"https://github.com/MisterCalvin.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"## AMXBans 6.14.5\n![AMXBans 6.14.5](build/nginx/config/amxbans/web/images/banner/amxbans.png \"AMXBans\")  \nAn updated and Dockerized version of AMXBans with added quality of life features. See [INSTALL.md](INSTALL.md) for help with installation, or [CHANGELOG.md](CHANGELOG.md) for update details\n\n## Quickstart (Docker)\n\n\u003e [!IMPORTANT]  \n\u003e If you intend to use an existing AMXBans database, you will need to import the new columns from [build/nginx/config/amxbans/amxbans_update.sql](build/nginx/config/amxbans/amxbans_update.sql) (be sure to create a backup of your database beforehand). Failure to do so will result in application errors when using certain pages. It is recommended you do a fresh install of AMXBans if you intend to use this version of the application.\n\n`git clone https://github.com/MisterCalvin/amxbans.git \u0026\u0026 cd ./amxbans \u0026\u0026 docker compose pull \u0026\u0026 docker compose up -d`\n\n\u003e [!NOTE]\n\u003e You are not required to use the `amxbans-mariadb` container image in this repo if you have an existing MySQL database. This image is provided for convenience\n\n### docker compose\n```\nservices:\n  amxbans-nginx:\n    image: ghcr.io/mistercalvin/amxbans-nginx:latest\n    container_name: amxbans-nginx\n    hostname: amxbans-nginx\n    environment:\n      TZ: \"UTC\"\n      INSTALL: \"True\" # Set to \"False\" after successful install\n      \n      # All of the variables below are optional and can be removed after a successful install\n      # They can be omitted entirely if you wish to input this information manually during your first install\n      ADMIN_USER: \"root\"\n      ADMIN_PASS: \"password\" # Minimum 4 characters\n      ADMIN_EMAIL: \"root@email.com\"\n      URL_PATH: \"amxbans.mydomain.com\"\n      DB_HOST: \"amxbans-mariadb\"\n      DB_USER: \"root\"\n      DB_PASS: \"password\"\n      DB: \"amxbans\"\n      DB_PREFIX: \"amx_\"\n    volumes:\n      - amxbans_web:/var/www/html\n    ports:\n      - 80:80\n    depends_on:\n      - amxbans-mariadb\n    restart: unless-stopped\n\n  amxbans-mariadb:\n    image: ghcr.io/mistercalvin/amxbans-mariadb:latest\n    container_name: amxbans-mariadb\n    hostname: amxbans-mariadb\n    environment:\n      TZ: \"UTC\"\n      MYSQL_USER: \"root\"\n      MYSQL_PASSWORD: \"password\"\n      MYSQL_ROOT_PASSWORD: \"rootpassword\"\n      MYSQL_DATABASE: \"amxbans\"\n    volumes:\n      - amxbans_db:/var/lib/mysql\n    ports:\n      - 3306:3306\n    restart: unless-stopped\n\nvolumes:\n  amxbans_web:\n    name: amxbans_web\n  amxbans_db:\n    name: amxbans_db\n```\n\n### docker cli\n\nCreate two named volumes before executing the commands below: `docker volume create amxbans_web` and `docker volume create amxbans_db`\n\n#### Web Server\n```\ndocker run -d \\\n  --name=amxbans-nginx \\\n  --hostname=amxbans-nginx \\\n  -e TZ=\"UTC\" \\\n  -e INSTALL=\"True\" \\\n  -e ADMIN_USER=\"root\" \\\n  -e ADMIN_PASS=\"password\" \\\n  -e ADMIN_EMAIL=\"root@email.com\" \\\n  -e URL_PATH=\"amxbans.mydomain.com\" \\\n  -e DB_HOST=\"amxbans-mariadb\" \\\n  -e DB_USER=\"root\" \\\n  -e DB_PASS=\"password\" \\\n  -e DB=\"amxbans\" \\\n  -e DB_PREFIX=\"amx_\" \\\n  -v amxbans_web:/var/www/html \\\n  -p 80:80 \\\n  --restart unless-stopped \\\n  ghcr.io/mistercalvin/amxbans-nginx:latest\n  ```\n\n#### Database\n  ```\n  docker run -d \\\n  --name=amxbans-mariadb \\\n  --hostname=amxbans-mariadb \\\n  -e TZ=\"UTC\" \\\n  -e MYSQL_USER=\"root\" \\\n  -e MYSQL_PASSWORD=\"password\" \\\n  -e MYSQL_ROOT_PASSWORD=\"rootpassword\" \\\n  -e MYSQL_DATABASE=\"amxbans\" \\\n  -v amxbans_db:/var/lib/mysql \\\n  -p 3306:3306 \\\n  --restart unless-stopped \\\n  ghcr.io/mistercalvin/amxbans-mariadb:latest\n```\n\n## Notes, Disclaimers, Bugs\n\n\u003e [!WARNING]\n\u003e The codebase for AMXBans is 20+ years old. Outside of the work done by fysiks1 to make AMXBans work with modern versions of PHP/MySQL, and the quality of life features/bug fixes featured in this repo, there has been no active development for AMXBans in a long time, nor has the codebase been audited recently. Please keep this in mind if you intend to publicly expose this application to the internet, as there may be undiscovered exploits or undocumented bugs. If you do intend to expose this application to the internet, consider using the Docker images found in this repo, which will run the application as an unpriviledged user, and ensure you generate secure, random passwords for your instance. The author of this repo is in no way responsible for users who choose not to heed this warning.\n\n- Executing `amx_plugins` on `Admin area -\u003e Server -\u003e \u003cYour GoldSrc Server\u003e` will return `No response from server!`, this is because SourceQuery handles packet fragmentation in a different way than the old `rcon_hl_net.inc` library. There is no fix currently, however all other commands do work.\n\n- Bans issued from `Admin area -\u003e Add online ban` will be marked as the Server issuing the ban on our `ban_list.php`, rather than the web user who executed it. No fix currently.\n\n- I'm not sure email_security is actually doing anything on `Admin area -\u003e Website -\u003e Admins` or `Admin area -\u003e Website -\u003e Settings`. I personally use an SMTPS relay, and successfully tested it with that.\n\n- The Active checkbox for your Default Ban Set on `Admin area -\u003e Server -\u003e Ban Reasons` will not be checked, even if it is correctly set in the database. No fix currently.\n\n- The Docker containers are currently only compiled and tested on amd64. ARM64 images will be coming in the future.\n\n## Credits\n\n[fysiks1/amxbans](https://github.com/fysiks1/amxbans) for their work updating AMXBans to PHP8  \n[PHPMailer](https://github.com/PHPMailer/PHPMailer)  \n[xPaw/SourceQuery](https://github.com/xPaw/PHP-Source-Query) for their PHP Source Query class  \n[TrafeX/docker-php-nginx](https://github.com/TrafeX/docker-php-nginx) for their tiny NGINX 1.24/PHP-FPM 8.3 Dockerfile  \n[jbergstroem/mariadb-alpine](https://github.com/jbergstroem/mariadb-alpine) for their tiny mariadb Dockerfile   \n[cod3venom/amx_sploit](https://github.com/cod3venom/amx_sploit)  \n[NginxProxyManager/nginx-proxy-manager](https://github.com/NginxProxyManager/nginx-proxy-manager) for [block-exploits.conf](build/nginx/config/conf.d/include/block-exploits.conf)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmistercalvin%2Famxbans","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmistercalvin%2Famxbans","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmistercalvin%2Famxbans/lists"}