Rust Server Manager is a Linux-only Python CLI for managing a Facepunch Rust dedicated server with built-in WebRCON support.
installation, updates, startup, shutdown, configuration, Oxide/plugin management, SSL generation, and direct websocket RCON access.
- Installs SteamCMD automatically when it is missing
- Creates and maintains
server.properties - Generates
runds.shfrom the current configuration - Installs and updates the Rust dedicated server
- Uses built-in websocket WebRCON instead of external helper scripts
- Supports one-shot RCON commands and an interactive RCON console
- Installs Oxide and downloads plugins from
plugins.txtwhen enabled - Generates SSL assets for WebRCON
- Removes the old map and blueprint wipe commands intentionally
- Linux
- Python 3.11 or newer
opensslon the system path- Network access for SteamCMD, Rust updates, Oxide, and plugin downloads
Python dependency:
websockets>=12,<16
Install from the project root:
pip install .Run the CLI:
rust-server-manager --helpFor development from source:
PYTHONPATH=src python -m rust_server_manager --helpBy default the manager uses the current user's home directory. You can override this with --home.
$HOME/
├── server.properties
├── plugins.txt
├── rust_server.log
├── rust_server/
│ ├── RustDedicated
│ ├── runds.sh
│ ├── .rust_server_manager.pid
│ ├── RustDedicated_Data/
│ ├── oxide/
│ │ └── plugins/
│ └── server/
├── steamcmd/
└── rust_ssl/
├── rust_key.key
├── rust_crt.crt
└── rust_ssl.pfx
General form:
rust-server-manager [--home PATH] <command>Available commands:
install- Install SteamCMD if needed and install Rust dedicated serverupdate- Update Rust and Oxide when enabledstart- Update and start the Rust serverstop- Stop the server with WebRCON when configured, otherwise fall back to the tracked processrestart- Stop and start the serverconsole- Open an interactive WebRCON consolercon <command>- Send a single WebRCON commandprint- Print the server log filedelete [identity]- Delete a server identity directoryssl- Generate SSL certificates for WebRCONwrite-runscript- Regeneraterunds.sh
Examples:
rust-server-manager install
rust-server-manager start
rust-server-manager stop
rust-server-manager console
rust-server-manager rcon "server.writecfg"
rust-server-manager delete my_first_rust_server
rust-server-manager sslThe manager creates server.properties automatically on first use.
Important keys include:
identityipportqueryportapp_portrcon_iprcon_portrcon_passrcon_webrcon_sslrcon_ssl_passhostnamedescriptionmotdheaderimagelogoimageurltagsgamemodepvetickratemaxplayersseedworldsizesaveintervalupkeep_period_minutesenable_oxideenable_rustio
Defaults are defined in src/rust_server_manager/config.py.
When enable_oxide=True, the manager:
- downloads the latest Oxide Rust release
- installs it into the Rust server directory
- optionally installs RustIO when
enable_rustio=True - reads plugin names from
plugins.txt - downloads each plugin from umod.org into the Oxide plugins directory
plugins.txt supports comma-separated values and newline-separated values.
Example:
AdminRadar, BetterChat
NTeleportation
StackSizeController
Rust uses a websocket-based RCON interface. This project includes a native WebRCON client instead of calling external RCON scripts.
Built-in WebRCON is used for:
- one-shot RCON commands
- the interactive console
- graceful shutdown
- post-start setup commands
Minimum configuration:
rcon_web=1
rcon_port=28016
rcon_pass="your_password"
- This project is Linux-only by design.
- The original bash wipe commands were intentionally removed.
stop,console, andrconwork best when WebRCON is configured correctly.- The generated
runds.shis kept as a compatibility and inspection artifact. - A separate home directory can be used per server instance with
--home.
Run tests from the project root:
PYTHONPATH=src python -m unittest discover -s testsRun the CLI module directly:
PYTHONPATH=src python -m rust_server_manager --help