Getting Started ‐ Installation - MarechJ/hll_rcon_tool GitHub Wiki

🧭 You are here : Wiki home / Getting Started / Installation


Menu


Important

Make sure you've read and understood the Requirements page before attempting to install CRCON.


0. Login to your VPS server via SSH

See this guide to get into a SSH terminal prompt.

1. Download CRCON

Note

Being logged as "root", the current working directory should be /root.
That's where git will download you CRCON installation, under /root/hll_rcon_tool.

You can choose to install it anywhere you'd prefer, but as it is the default place, all the commands given in the documentation will always use /root/hll_rcon_tool as default.
That's the reason why changing the default installation folder isn't recommended, as it will force you to adapt any further instruction.


🟠 Using Ubuntu ? Don't have "root" ? Click me !

Some Ubuntu Linux distributions disable the "root" user and /root folder by default.
In these, your default user is "ubuntu", using /home/ubuntu as default folder.
Your CRCON folder will then be /home/ubuntu/hll_rcon_tool

As "ubuntu" doesn't have "superuser" permissions and can't be promoted to "root", which isn't enabled,
you'll have to use the sudo command as a prefix to ALL commands that require "superuser" permissions.
Example (starting Docker containers) :

As "root" As "ubuntu"
docker compose up -d --remove-orphans
sudo docker compose up -d --remove-orphans

See this page's instructions if you want to enable "root" on Ubuntu.

  1. Get the CRCON files from the official repository

    git clone https://github.com/MarechJ/hll_rcon_tool.git
  2. Enter the CRCON folder

    cd /root/hll_rcon_tool

2. Create Configuration file (.env)

Now, you're going to create and edit an .env file, in which you'll tell CRCON how to connect to your HLL game server(s).
Here we'll use nano, a simple text editor that runs in text mode.

  1. Install nano

    apt-get update && apt-get install nano
  2. Copy the default.env environnement config file template to a new file named .env

    cp default.env .env
  3. Ask nano to edit the .env file
    ⚠️ Do not edit default.env

    nano .env

Edit Configuration Options

Tip

In nano, you can move the cursor with the arrow keys (⬅️⬆️⬇️➡️).

You do not have to change all the values. Only these 5 are mandatory :

1. CRCON Database Password (HLL_DB_PASSWORD)

Caution

Do not change this string if CRCON has been started at least one time :
your database would not be accessible anymore.

  • Enter a string that will be used as database access password.
    • Check the comments in the .env file for forbidden characters, such as %, @, :, /, ?, $ or !.
      To be sure : only use alphanumerical characters (a-z, 0-9).
    • You may note it somewhere, but you won't have to enter it to use CRCON on a daily basis.
    HLL_DB_PASSWORD=anythingwithoutanyspaceorfunkycharacter

2. CRCON API Secret (RCONWEB_API_SECRET)

Caution

Do NOT change this string if CRCON has been started at least one time :
all users passwords would be invalidated.

  • Enter a long string that will be used to scramble users passwords.
    • Avoid characters such as %, @, :, /, ?, $ or !.
      To be sure : only use alphanumerical characters (a-z, 0-9).
    • You may note it somewhere, but you won't have to enter it to use CRCON on a daily basis.
    RCONWEB_API_SECRET=anythingwithoutanyspaceorfunkycharacter

3. Hell Let Loose Server RCON IP (HLL_HOST)

  • The RCON IP will be provided by your game server provider.
    HLL_HOST=123.123.123.123

4. Hell Let Loose Server RCON Port (HLL_PORT)

  • The RCON port will be provided by your game server provider.
    ⚠️ It is NOT the same as the game server (query) or SFTP ports.
    HLL_PORT=12345

5. Hell Let Loose Server RCON Password (HLL_PASSWORD)

  • The RCON password will be provided by your game server provider.
    HLL_PASSWORD=yourrconpassword

Multiserver Configuration (optional)

You can configure up to 10 game servers to be managed in CRCON using the provided .env template.
You will see repeats of the following in the .env file :

#########################################################################################
###                                     SERVER X                                      ###
#########################################################################################
  • Configure each game server you want to setup :
    (server 2, server 3, etc, repeating the server 1's steps above for the 2nd/3rd/... server).
  • You can leave the parameters values as blank in the servers parts you don't intend to use
    (you also can delete these unused parts).

Save File

⚠️ Triple-check there is no space before/after the = signs, nor in the values you've set.

If you're using nano :

  • save the changes with Ctrl+o (press the [Enter]key to validate)
  • exit nano with Ctrl+x

3. Create a Docker compose file

docker compose commands need a special compose.yaml file to know what to do.
This file will be created from a template.

The docker-templates/ folder contains two example templates :
⚠️ Do not edit these files

  • one-server.yaml for a single game server ;
  • ten-servers.yaml for up to 10 game servers.
    (we'll see how to modify it to fit your servers number)

1. If you want to manage a single game server

Make a copy of one-server.yaml to create compose.yaml :

cp docker-templates/one-server.yaml compose.yaml

That's it : go to 4. Run CRCON for the first time !

2. If you want to manage 2 (or more) game servers

You can either :

  • (easier) copy ten-servers.yaml and delete the parts concerning servers you don't need (see below).
    cp docker-templates/ten-servers.yaml compose.yaml
  • copy one-server.yaml and add server 2, 3, etc parts in it (look at docker-templates/ten-servers.yaml for examples)
    cp docker-templates/one-server.yaml compose.yaml

There are two places that need to be updated for the compose.yaml to work properly, according to your number of servers :

1. Networks

The networks section (at the top) must contain a definition for each server.
Have a serverx: entry for each server you are using (look at docker-templates/ten-servers.yaml for examples)

Example (3 game servers) :

networks:
  common:
  server1:
  server2:
  server3:

Warning

The common: network is mandatory : do not delete it.

2. Services

The services section defines the containers Docker will start on launch :

  • You must have a services definition for each server you are willing to manage.
  • You can't have a services definition for a server that is not configured in the .env file.

Have a look at this page for adding servers in .env and compose.yaml, and complete templates for 2 game servers.

4. Run CRCON for the first time

CRCON is now ready to start and connect to your HLL game server(s).

Warning

Do not think it's over yet, as we MUST secure the default "admin" user account.

Enter these commands to start CRCON :

Linux Windows
docker compose up -d --remove-orphans
docker volume create redis_data  
docker volume create postgres_data  
docker compose up -d --remove-orphans

Note

Launch process will display a lot of scrolling text.
Don't panic, as you do not have to read/do anything.

At the end of launch process, if everything went well, you'll see an output similar to this :
(this is an example for a CRCON managing a single game server. It has been edited to fit) :

❯ docker compose up -d --remove-orphans
...
... A lot of scrolling text ...
...
[+] Running 8/8
 ✔ Network hll_rcon_tool_common            Created  0.1s
 ✔ Network hll_rcon_tool_server1           Created  0.1s
 ✔ Container hll_rcon_tool-redis-1         Healthy  0.2s
 ✔ Container hll_rcon_tool-postgres-1      Healthy  0.2s
 ✔ Container hll_rcon_tool-maintenance-1   Healthy  0.1s
 ✔ Container hll_rcon_tool-backend_1-1     Healthy  0.1s
 ✔ Container hll_rcon_tool-supervisor_1-1  Started  0.1s
 ✔ Container hll_rcon_tool-frontend_1-1    Started  0.1s

If any of the containers reports a red Error status, and/or if you see messages about Unhealthy services, something is misconfigured.
Have a look at this troubleshooting procedure.

5. CSRF Setup

Due to inner security checks, we need to declare the VPS IP/port as "secure"
to be allowed to enter the users management admin panel.
Failing to do so will result in CSRF errors when accessing it.

1. Log into CRCON private web interface

Note

The CRCON private web interface can be reached from all over the world, in any web browser.
For example (replace 123.123.123.123 with your VPS IP) :

  • Server 1 : http://123.123.123.123:8010/
  • Server 2 : http://123.123.123.123:8011/
  • Server 3 : http://123.123.123.123:8012/

If you can't get into CRCON private web interface,
have a look at this troubleshooting procedure.

Default login credentials :

  • Username : admin
  • Password : admin

2. Modify the Server Url parameter value

  • Get into the "Others" menu, then open "CRCON Settings" submenu.
  • Enter your CRCON URL in the second parameter line (Server Url).
    ⚠️ Mind the leading http:// and ending / parts.
    Example : http://123.123.123.123:8010/
  • ⚠️ Don't forget to click on the "SUBMIT" button

image

3. Restart CRCON

To be taken in account, the Server Url value you've just set has to be read during the CRCON Docker containers start.

docker compose down
docker compose up -d --remove-orphans

6. Secure CRCON Admin Account

Caution

You MUST change the "admin" user's default password, as it is insanely insecure.

1. Log into CRCON admin interface

Note

The CRCON admin interface can be reached from all over the world, in any web browser.
For example (replace 123.123.123.123 with your VPS IP) :

  • Server 1 : http://123.123.123.123:8010/admin
  • Server 2 : http://123.123.123.123:8011/admin
  • Server 3 : http://123.123.123.123:8012/admin

Note

You should be already logged in. If not, the credentials are still admin/admin.

2. Change the admin's default password

Click on the "Change password" link in the top-right header part and follow instructions.

Change admin password

3. Create you own users

This is optional, but heavily recommended.

  • The "admin" account should not be used by anyone on a daily basis.
    Being set as default, this is the first user account that will be targeted by brute-force attacks.
    We even recommend to disable it, unchecking the "Active" checkbox.
    ⚠️ Just make sure you've created another user having "Superuser" and "Staff" statuses enabled first !
  • Using personal accounts, you'll be able to keep track of your different moderators actions.
    You'll also be able to finetune the permissions each moderator has.
    ie :
    • "William" can kick people, but not ban them
    • "Teddy" can kick and ban people, but can't unban them
    • "George" has "Staff" status enabled : he can do anything, even changing server's settings
    • "Bob" is one of the CRCON admins : he has "Superuser" status enabled and can create/delete moderators accounts

Create as many users as you need, giving them specific roles and/or individual permissions.
Remember :

  • "Superusers" are the only ones who can manage users, so you MUST have at least one "active"
  • "Staff" have ALL the usual permissions

7. Basic configuration is over !

🎉 You now have a fully working and secured CRCON ! Congratulations !

Take your time to explore all the menus and features.

You'll find a lot of things to customize.
Most of the settings are described/explained on their own page and in this Wiki.
There is also a lot of questions/answers about them on CRCON's Discord.

If you have any question (or just want to come and say hi), feel free to join us on Discord.

Have fun !

⚠️ **GitHub.com Fallback** ⚠️