# How to create a Rust server on Linux - Blog - Johannes Olzem
Johannes Olzem's Webspace.

# How to create a Rust server on Linux

Johannes Olzem
May 23, 2023

## Table of Contents

- Requirements
- SteamCMD
- Installing
- Running

## Requirements

- Debian Linux
- >5GB of RAM
- >4.5GB of free disc space

## SteamCMD

### Configuring the envoirenment

Create a user with the name "steam" and give it a password.

sudo useradd -m steam

sudo passwd steam

When prompted, enter a new password for the "steam" user.
Then switch to the "steam" user and go to its home folder.

su steam

cd

Enable the contrib and non-free repositories by changing your `/etc/apt/sources.list` to resemble the following:

deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free

### Installing SteamCMD

Finally, to install SteamCMD run:

sudo apt install steamcmd

## Installing

Run SteamCMD

steamcmd

After a short update period, a prompt like `Steam>` should appear.
To login anonymously type:

login anonymous

Now install the Rust Dedicated Server application.

app_update 258550

This will install and verify the Rust server.
On my ~100 Mbit/s connection this took around 15-20 Minutes.
Afterwards you can quit the SteamCMD shell.

quit

## Running

First navigate to the Rust server directory.

cd ~/Steam/steamapps/common/rust_dedicated

Finally, start up the Rust server by running:

./RustDedicated -batchmode

There are several arguments you can pass to the server to change its behaviour.

Parameter | Default | Description
--- | --- | ---
`+server.ip` | `0.0.0.0` | Sets the Server IP. Leave it to 0.0.0.0 unless you have multiple IPs.
`+server.port` | `28015` | Sets the port the server will use. (default 28015 UDP)
`+rcon.ip` | `0.0.0.0` | Sets the RCON IP.
`+rcon.port` | `28016` | Port to listen to for RCON.
`+rcon.web` | `0` | If set to true, use websocket rcon. If set to false use legacy, source engine rcon.
`+server.tickrate` | `10` | Server refresh rate - Not recommended to go above 30.
`+server.hostname` | `"Your Server Name"` | The displayed name of your server.
`+server.identity` | `"my_server_identity"` | Changes path to your server data rust/server/my_server_identity. Useful for running multiple instances.
`+server.maxplayers` | `50` | Maximum amount of players allowed to connect to your server at a time.
`+server.worldsize` | `3000` | Defines the size of the map generated (min 1000, max 6000)
`+server.seed` | `50000` | Is the map generation seed.
`+server.saveinterval` | `600` | Time in seconds for server save.
`+rcon.password` | `"YourPassword"` | Sets the RCON password
`-logfile` | `gamelog.txt` | If you're using a script, you'd better put the current date as a filename, otherwise, it'll be erased on every start.
`-silent-crashes` | `-` | Won't display a crash dialog and will restart automatically if server is installed as service.

## Sources

- Rust Wiki, "Creating a server"
- Valve Developer Community, "SteamCMD"
- Rustafied, "How to: Host your own Rust Dedicated Server"
- Valve Developer Community, "Rust Dedicated Server"