Skip to content

Installation Docker

Xenne edited this page Aug 14, 2026 · 1 revision

Installing via Docker

RustRconServerManager ships as a self-contained Docker Compose stack — the app container plus a bundled MariaDB container. No external database or reverse proxy is required to get started.

Prerequisites

  • Docker and Docker Compose
  • A free port on the host (default 5000)

Quick start

No need to clone the repository — the installer script downloads docker-compose.yml, generates a .env with random credentials, pulls the published image, and starts the stack:

mkdir rust-rcon-server-manager && cd rust-rcon-server-manager
curl -fsSL https://raw.githubusercontent.com/Xenne93/RustRconServerManager/main/install.sh | bash

Or, if you'd rather clone the repo first:

git clone https://github.com/Xenne93/RustRconServerManager.git
cd RustRconServerManager
./setup.sh          # generates .env with random credentials
docker compose up -d

Open http://localhost:5000 (or whichever APP_PORT you chose) in your browser. The first person to open the panel gets to create the admin account — don't expose the port publicly until you've completed this step.

If you'd rather configure .env by hand instead of running setup.sh, copy .env.example to .env and fill in real values yourself.

What's in the stack

docker compose up -d
        │
        ├── app       (RustRconServerManager, port 5000)
        │       depends on ──► mariadb (healthy)
        └── mariadb   (persistent volume: db_data)
  • app pulls the published image from ghcr.io by default. To build from source instead, edit docker-compose.yml: comment out the image/pull_policy lines and uncomment the build: block.
  • mariadb stores its data in the db_data named volume — it survives docker compose down and image updates. Only docker compose down -v removes it.
  • Uploaded application data (map images, etc.) lives in the app_data named volume.

Key environment variables

All configuration lives in .env (see .env.example in the repo for the full list with comments):

Variable Purpose
IMAGE_TAG Which published image tag to run (latest or a specific release)
APP_PORT Host port the app is exposed on
PATHBASE Optional path prefix if running behind a reverse proxy at a subpath
DB_NAME / DB_USER / DB_PASSWORD / MARIADB_ROOT_PASSWORD Bundled MariaDB credentials
JWT_KEY / RCON_ENCRYPTION_KEY Long random values — never reuse the example values
SMTP_* Needed for the email-based "forgot password" flow. Leave SMTP_HOST blank to disable it (see [[Resetting Your Password
STEAM_API_KEY Optional — player profile/VAC-ban lookups
PROXYCHECK_API_KEY / PROXYCHECK_HMAC_KEY Optional — VPN/proxy detection in Server Protection
AUTO_UPDATE / SKIP_AUTO_UPDATE Self-update behavior on container restart

Updating

docker compose pull
docker compose up -d

The container also checks GitHub Releases on every restart and can self-update in place. Either way, the database volume is untouched by updates.

Next step

Once you've logged in, head to Adding a Server to connect your first Rust server.

More detail

For backups, running behind a reverse proxy, troubleshooting, and production recommendations, see docs/DOCKER_DEPLOYMENT.md in the repository.

Clone this wiki locally