Sign inSign up

ludix0/rust

By ludix0

•Updated 7 days ago

Dockerized dedicated server for Rust, auto-updated via SteamCMD.

Image
0

1.7K

ludix0/rust repository overview

⁠Rust — Dedicated Server (Docker)

🇬🇧 English⁠ | 🇫🇷 Français⁠


⁠English

Docker container to host a Rust dedicated server (SteamCMD App ID 258550). The server binary and dependencies are downloaded automatically via SteamCMD, and the process runs as an unprivileged user (PUID/PGID) instead of root.

  • Docker Hub image: ludix0/rust⁠
  • Ports used: game port 28015 (UDP + TCP, mapped externally to 7777), RCON port 28016 (TCP)
⁠Requirements
  • Docker + Docker Compose
  • About 25-30 GB of free disk space (Rust server files and the world save are large, and grow over time)
  • If the server must be reachable from the internet, forward ports 28015 (UDP + TCP) and 28016 (TCP) on your router to the host running this container
mkdir -p ~/rust && cd ~/rust

Create a docker-compose.yml:

services:
  rust:
    image: ludix0/rust:latest
    container_name: rust
    restart: unless-stopped
    volumes:
      - ${HOME}/volumes/rust/filesServer:/home/steam/server_data
      - ${HOME}/volumes/steamcmd:/home/steam/steamcmd
    environment:
      - TZ=Europe/Paris
      - PUID=1000
      - PGID=1000
      - UPDATE_ON_START=true
      - RUST_HOSTNAME=My Rust Server
      - RUST_IDENTITY=server1
      - RUST_SEED=12345
      - RUST_WORLDSIZE=6000
      - RUST_MAXPLAYERS=50
      - RUST_PVE=true
      - RUST_PORT=28015
      - RUST_RCON_PORT=28016
      - RUST_RCON_PASSWORD=changeme
      - RUST_RCON_WEB=1
      - RUST_DESCRIPTION=Welcome to my Rust server!
      - RUST_SAVEINTERVAL=600
      - COMMSTART=+server.secure 0
    ports:
      - "7777:28015/udp"
      - "7777:28015/tcp"
      - "28016:28016/tcp"
docker compose up -d
docker compose logs -f
⁠Method 2 — Build from source (GitHub)
git clone https://github.com/ludix0/rust.git
cd rust
ln -sf /path/to/your/secrets.env .env   # or create a .env with the variables below
docker build -t ludix0/rust:latest .
docker compose up -d
⁠Environment variables
VariableRequiredDescription
TZNoContainer timezone (e.g. Europe/Paris)
PUIDNoUser ID the server process runs as (avoids running as root)
PGIDNoGroup ID the server process runs as
UPDATE_ON_STARTNoIf true, runs the SteamCMD update/validate on every container start
RUST_HOSTNAMENoServer name shown in the in-game server browser
RUST_IDENTITYNoSave/identity folder name (allows several server profiles on the same data volume)
RUST_SEEDNoWorld generation seed
RUST_WORLDSIZENoMap size
RUST_MAXPLAYERSNoMaximum number of players
RUST_PVENoEnables PvE mode when set to true
RUST_PORTNoGame port used internally by RustDedicated
RUST_RCON_PORTNoRCON port used internally by RustDedicated
RUST_RCON_PASSWORDYesRCON admin password
RUST_RCON_WEBNoEnables the web RCON interface when set to 1
RUST_DESCRIPTIONNoServer description shown in the in-game server browser
RUST_SAVEINTERVALNoAuto-save interval, in seconds
COMMSTARTNoExtra RustDedicated startup arguments (e.g. +server.secure 0)
⁠Volumes
VolumeContent
~/volumes/rust/filesServer:/home/steam/server_dataServer binaries, world save, maps and configuration
~/volumes/steamcmd:/home/steam/steamcmdSteamCMD installation, reused between restarts and updates
⁠Ports
PortProtocolUsage
7777 → 28015UDPGame traffic
7777 → 28015TCPGame traffic
28016 → 28016TCPRCON

⁠Français

Conteneur Docker permettant d'héberger un serveur dédié Rust (App ID SteamCMD 258550). Le binaire du serveur et ses dépendances sont téléchargés automatiquement via SteamCMD, et le processus tourne avec un utilisateur non privilégié (PUID/PGID) plutôt qu'en root.

  • Image Docker Hub : ludix0/rust⁠
  • Ports utilisés : port de jeu 28015 (UDP + TCP, exposé en externe sur 7777), port RCON 28016 (TCP)
⁠Prérequis
  • Docker + Docker Compose
  • Environ 25-30 Go d'espace disque libre (les fichiers du serveur Rust et la sauvegarde du monde sont volumineux, et grossissent avec le temps)
  • Si le serveur doit être accessible depuis internet, rediriger les ports 28015 (UDP + TCP) et 28016 (TCP) sur votre routeur vers la machine qui héberge ce conteneur
⁠Méthode 1 — Installation rapide depuis Docker Hub (recommandée)
mkdir -p ~/rust && cd ~/rust

Créer un fichier docker-compose.yml :

services:
  rust:
    image: ludix0/rust:latest
    container_name: rust
    restart: unless-stopped
    volumes:
      - ${HOME}/volumes/rust/filesServer:/home/steam/server_data
      - ${HOME}/volumes/steamcmd:/home/steam/steamcmd
    environment:
      - TZ=Europe/Paris
      - PUID=1000
      - PGID=1000
      - UPDATE_ON_START=true
      - RUST_HOSTNAME=Mon serveur Rust
      - RUST_IDENTITY=server1
      - RUST_SEED=12345
      - RUST_WORLDSIZE=6000
      - RUST_MAXPLAYERS=50
      - RUST_PVE=true
      - RUST_PORT=28015
      - RUST_RCON_PORT=28016
      - RUST_RCON_PASSWORD=changeme
      - RUST_RCON_WEB=1
      - RUST_DESCRIPTION=Bienvenue sur mon serveur Rust !
      - RUST_SAVEINTERVAL=600
      - COMMSTART=+server.secure 0
    ports:
      - "7777:28015/udp"
      - "7777:28015/tcp"
      - "28016:28016/tcp"
docker compose up -d
docker compose logs -f
⁠Méthode 2 — Build depuis les sources (GitHub)
git clone https://github.com/ludix0/rust.git
cd rust
ln -sf /chemin/vers/votre/secrets.env .env   # ou créer un .env avec les variables ci-dessous
docker build -t ludix0/rust:latest .
docker compose up -d
⁠Variables d'environnement
VariableObligatoireDescription
TZNonFuseau horaire du conteneur (ex. Europe/Paris)
PUIDNonUID utilisé pour faire tourner le serveur (évite de rester en root)
PGIDNonGID utilisé pour faire tourner le serveur
UPDATE_ON_STARTNonSi true, relance la mise à jour/validation SteamCMD à chaque démarrage du conteneur
RUST_HOSTNAMENonNom du serveur affiché dans le navigateur de serveurs en jeu
RUST_IDENTITYNonNom du dossier de sauvegarde/identité (permet plusieurs profils de serveur sur le même volume)
RUST_SEEDNonGraine (seed) de génération du monde
RUST_WORLDSIZENonTaille de la carte
RUST_MAXPLAYERSNonNombre maximum de joueurs
RUST_PVENonActive le mode PvE si réglé sur true
RUST_PORTNonPort de jeu utilisé en interne par RustDedicated
RUST_RCON_PORTNonPort RCON utilisé en interne par RustDedicated
RUST_RCON_PASSWORDOuiMot de passe administrateur RCON
RUST_RCON_WEBNonActive l'interface RCON web si réglé sur 1
RUST_DESCRIPTIONNonDescription du serveur affichée dans le navigateur de serveurs en jeu
RUST_SAVEINTERVALNonIntervalle de sauvegarde automatique, en secondes
COMMSTARTNonArguments de démarrage supplémentaires pour RustDedicated (ex. +server.secure 0)
⁠Volumes
VolumeContenu
~/volumes/rust/filesServer:/home/steam/server_dataBinaires du serveur, sauvegarde du monde, cartes et configuration
~/volumes/steamcmd:/home/steam/steamcmdInstallation de SteamCMD, réutilisée entre les redémarrages et les mises à jour
⁠Ports
PortProtocoleUsage
7777 → 28015UDPTrafic de jeu
7777 → 28015TCPTrafic de jeu
28016 → 28016TCPRCON

Tag summary

Content type

Image

Digest

sha256:69e302e34…

Size

142 MB

Last updated

7 days ago

docker pull ludix0/rust