Getting Started ‐ Installation - MarechJ/hll_rcon_tool GitHub Wiki
🧭 You are here : Wiki home / Getting Started / Installation
- Download CRCON
- Create an
.env
file - Create a
compose.yaml
file - Run CRCON for the first time
- CSRF Setup
- Secure CRCON Admin Account
Important
Make sure you've read and understood the Requirements page before attempting to install CRCON.
See this guide to get into a SSH terminal prompt.
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.
-
Get the CRCON files from the official repository
git clone https://github.com/MarechJ/hll_rcon_tool.git
-
Enter the CRCON folder
cd /root/hll_rcon_tool
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.
-
Install
nano
apt-get update && apt-get install nano
-
Copy the
default.env
environnement config file template to a new file named.env
cp default.env .env
-
Ask
nano
to edit the.env
file
⚠️ Do not editdefault.env
nano .env
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 :
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
- Check the comments in the
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
- Avoid characters such as
- The RCON IP will be provided by your game server provider.
HLL_HOST=123.123.123.123
- 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
- The RCON password will be provided by your game server provider.
HLL_PASSWORD=yourrconpassword
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).
=
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
withCtrl
+x
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 :
-
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)
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 !
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 atdocker-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 :
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.
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.
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.
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.
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
- Get into the "Others" menu, then open "CRCON Settings" submenu.
- Enter your CRCON URL in the second parameter line (
Server Url
).
⚠️ Mind the leadinghttp://
and ending/
parts.
Example :http://123.123.123.123:8010/
⚠️ Don't forget to click on the "SUBMIT" button
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
Caution
You MUST change the "admin" user's default password, as it is insanely insecure.
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
.
Click on the "Change password" link in the top-right header part and follow instructions.
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
🎉 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 !