Skip to content
Open source, MIT Bun · SvelteKit · Postgres Docker Compose

RCON for WARDOGS, without handing out the password.

Warcon is a self-hosted panel for WARDOGS dedicated servers. Run every server from one place, give each admin their own login and role, and keep a record of everything that happens. The RCON password stays encrypted on the server. Nobody needs to know it.

A free hosted instance for the community is on the way. Until then, self-hosting takes one docker compose up.

Warcon server overview showing team scores, match control and a scoreboard for a WARDOGS server

Taken against the built-in demo server, so the numbers are synthetic.

The problem

The official web console calls the game server from the browser over plain HTTP. It cannot be hosted on HTTPS, and every admin has to be given the raw RCON password.

What Warcon does instead

Warcon talks to the game server from its own process. It keeps the password server-side under AES-GCM, signs admins in with their own accounts, and checks the role before every action.

And it writes it down

An audit row is written before the reply is sent. Who did what, to which server, from where, and whether the game accepted it.

Features

Built for people who run more than one server.

01

Every server in one place

Add as many WARDOGS servers as you run. Each keeps its own encrypted RCON password, and the dashboard shows them all live.

02

Accounts, not a shared password

Owner and member logins with viewer, operator and admin roles per server. Password resets, forced changes, disable, session revocation and login throttling. Optional sign in with Discord.

03

A full audit trail

Every login, user or server change and every game command, with actor, target, outcome, IP and duration. Filter it, export it as CSV or JSON, and read the game server’s own log beside it.

04

Analytics the game does not keep

A background poller samples each server: players online over time, uptime, time per map, busiest hours, player playtime and sessions, match history with results.

05

Everything the official console does

Status and scoreboard, kick, ban, kill, whisper, change team, broadcasts, map override and next map, end or restart match, rotation editing, reserved slots, score tick, sponsor image, and the whole ServerSettings.ini with validate and apply.

06

Try it before you point it anywhere

A built-in demo server imitates a real WARDOGS RCON listener, so you can explore every screen before you enter a single real password.

How it works

One process between your admins and the game.

Warcon serves the pages, holds the sessions, and makes the calls to each game server’s RCON listener. A background poller samples status and players on an interval and keeps what the game throws away. Postgres stores it all, with TimescaleDB retention for the samples when available.

Run it beside the game server, on any VPS, or on a container host. It only needs to reach the RCON port, directly, over a private network, or through a TLS proxy on the game host.

Browser
Admins sign in
HTTPS ▸
Warcon
Sessions · roles · audit · poller
HTTP ▸
Game server
:7776 WDRCON
Postgres
users · servers · audit · samples · matches

The protocol was reverse-engineered from the official console and is documented in the repository.

Self-host

Two containers, one file to edit.

Docker Compose starts Warcon and a TimescaleDB database. Open the URL, create the owner account, add your first server, and invite your admins. Migrations run on start, and the database lives in a named volume.

  1. 1A machine with Docker: a cheap VPS, a spare PC, or the game server box itself.
  2. 2Your server’s host, RCON port (usually 7776) and RCON password.
  3. 3Optional: Caddy, nginx, Traefik or a Cloudflare Tunnel in front for HTTPS.
Terminal
git clone https://github.com/warcon-app/warcon.git warcon && cd warcon
cp .env.example .env
# set BETTER_AUTH_SECRET and ENCRYPTION_KEY to `openssl rand -base64 32` values,
# POSTGRES_PASSWORD, and ORIGIN to the URL people will open
docker compose up -d
Roles

Give each admin exactly what they need.

Roles are per server. A member can be admin on one server and viewer on another. The owner manages users, servers and access, and sees the whole audit trail.

Actionsvieweroperatoradminowner
Status, players, rotation, bans, reserved slots, config, server log, analytics
Broadcast, whisper, kick, kill, change team, end or restart match, change map, next map, live rotation edits·
Ban and unban, reserved slots, score tick, save rotation, sponsor image, config apply, raw API calls··
Manage users, servers and access; see the whole audit trail···