Quickstart
This guide walks you through a fresh SourceBans++ install from scratch. By the end you’ll have a working panel, a connected database, and at least one game server reporting back to it.
If you haven’t yet, the Overview is the 2-minute background read.
Before you start
Section titled “Before you start”Make sure your host meets the Requirements:
- A MySQL (>= 5.6) or MariaDB (>= 10.0) database you can connect to.
- PHP >= 8.5 with the listed extensions.
- Your game servers run SourceMod >= 1.11 and Metamod: Source.
If you don’t have a database yet, the Database setup guide installs MariaDB on a fresh Ubuntu host in a handful of commands.
You’ll also want:
- The SteamID of the account you want to make the first admin
(it’s you, probably). In
STEAM_0:0:12345678form — see the SteamID tip below if you only know the numeric form. - A Steam Web API key from steamcommunity.com/dev/apikey (free, takes 30 seconds).
Step 1 — Download
Section titled “Step 1 — Download”Grab the latest release zip from the
Releases page. You
want the sourcebans-pp-X.Y.Z.webpanel-only.zip (web side) and the
sourcebans-pp-X.Y.Z.plugin-only.zip (game side) — or the combined
zip if you prefer.
Step 2 — Upload the web panel
Section titled “Step 2 — Upload the web panel”-
Unzip the web archive. You should see a
web/folder. -
Upload the contents of
web/to either your web root (so the panel lives atexample.com/) or a subfolder (e.g.example.com/sb/). -
Set write permissions on the paths the panel writes to.
The wizard will refuse to proceed unless the paths below are writable by the user the webserver runs as. Pick the tab that matches your host:
On most distros the webserver runs as www-data (Debian/Ubuntu)
or apache (Fedora/RHEL). If you uploaded as root, also
chown the files to that user.
# config.php — the wizard appends DB credentials and the secret# key to this file.sudo chmod 644 config.php
# demos/ — uploaded ban-evidence demos.sudo chmod -R 644 demos
# themes_c/ — Smarty's template cache. The panel writes here on# every page render.sudo chmod -R 774 themes_c
# images/games/, images/maps/ — admin-uploaded thumbnails.sudo chmod -R 644 images/gamessudo chmod -R 644 images/mapsGive the IIS application pool identity (or the user the PHP CGI process runs as) Modify access to:
config.phpdemos\(recursive)themes_c\(recursive)images\games\(recursive)images\maps\(recursive)
The simplest path: right-click the sourcebans folder →
Properties → Security → Edit, add the IIS user (typically
IIS_IUSRS or IIS APPPOOL\<sitename>), and tick Modify.
Most shared hosts already run PHP under your FTP user, so files uploaded over FTP have the right owner automatically.
If the wizard complains about a non-writable path, use your
control panel’s File Manager (cPanel, Plesk, DirectAdmin, …)
and set permissions to 644 for files and 755 for
directories. themes_c/ may need 775.
If your host runs PHP under a different user and you don’t have
suEXEC / suPHP, ask support to enable it — that’s the proper
fix. World-writable (666 / 777) works as a last resort.
Our official Dockerfile handles this automatically — the
webroot is owned by www-data inside the container and the
wizard runs as that user.
Rolling your own container? After copying web/ into place,
run chown -R www-data:www-data /var/www/html.
Step 3 — Run the install wizard
Section titled “Step 3 — Run the install wizard”Open https://<your-domain>/install/ in a browser (or
https://<your-domain>/sb/install/ if you uploaded into a
subfolder). The wizard has five steps; we’ll cover each.
Licence
Section titled “Licence”Read it, tick I have read, and accept the licence, click OK.
Database details
Section titled “Database details”Fill in the connection info for the database you set up earlier:
| Field | What to enter |
|---|---|
Server Hostname | DB host. localhost if the DB is on the same machine, otherwise its IP or domain. |
Server Port | DB port. 3306 is the default. |
Username | DB user. |
Password | DB password. |
Database | The database name. Create it first if you haven’t. |
Table Prefix | The prefix for the panel’s tables. Leave at default unless you’re sharing a database with another app. |
Steam API Key | Paste the API key from steamcommunity.com/dev/apikey. |
SourceBans Email | The “from” address for password-reset and ban-submission emails. Leave empty if you don’t have one. |
System check
Section titled “System check”The wizard runs a final sanity check — PHP version, extensions, paths it needs to write to. Every row should be green. Fix any yellow / red rows before continuing.
Table creation
Section titled “Table creation”One click. The wizard creates the schema, seeds the default settings, and shows a success notification.
Admin account setup
Section titled “Admin account setup”This is the first admin account — that’s you.
Fill it in and click OK. Your panel is now live at
https://<your-domain>/.
Step 4 — Register your first game server
Section titled “Step 4 — Register your first game server”In the panel, navigate to Admin Panel → Server Settings → Add new
server. Fill in the form (game, RCON password, IP, port), click
Add Server, and note the ID column for the new row — that
number is the ServerID the plugin needs in the next step.
Full walkthrough with screenshots: Adding a server.
Step 5 — Install the SourceMod plugins
Section titled “Step 5 — Install the SourceMod plugins”Unzip the plugin archive on each game server. The plugin files
(sbpp_main.smx, sbpp_comms.smx, …) go into
addons/sourcemod/plugins/ and the config files into
addons/sourcemod/configs/.
You then edit two config files:
databases.cfg
Section titled “databases.cfg”Open addons/sourcemod/configs/databases.cfg and add a sourcebans
section pointing at the same database the panel uses:
"sourcebans"{ "driver" "default" "host" "EDITME_DATABASE_HOST" "database" "EDITME_DATABASE_NAME" "user" "EDITME_DATABASE_USER" "pass" "EDITME_DATABASE_PASSWORD" "port" "3306"}sourcebans.cfg
Section titled “sourcebans.cfg”Open addons/sourcemod/configs/sourcebans/sourcebans.cfg and
update the ServerID field to match the ID you noted in Step 4.
Save the files, then reload the map or restart the server so SourceMod re-reads the config.
For more on companion plugins (sbpp_comms, sbpp_report,
sbpp_checker, …) see Plugin setup.
Step 6 — Verify
Section titled “Step 6 — Verify”Back in the panel:
- The Servers page should show your new server as online with the current map and player list within ~30 seconds.
- Try banning a test player from in-game via SourceMod’s admin menu — the ban should appear on the panel’s Bans page within seconds.
- Try banning from the panel — the ban should kick the player from the game server.
If something isn’t working, the most useful starting points are:
- Server connection issues — the panel doesn’t show your server’s map / players.
- Driver not found — the plugin can’t talk to the database.
- Database errors — anything else database-related.
What’s next?
Section titled “What’s next?”Still stuck? Drop into our Discord
and ask in #help-support.