Forked from oshinko/install-rust-server-on-linux.sh
Created
January 29, 2021 05:50
-
-
Save grinnan/55413cfc76427c75d9504fc8a8fd8613 to your computer and use it in GitHub Desktop.
Install Rust Server on Linux
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
######################################################################## | |
# Host your own Rust Dedicated Server | |
# | |
# see also: https://www.rustafied.com/how-to-host-your-own-rust-server | |
# | |
# Usage: | |
# RUST_HOME=$HOME/rust \ | |
# RUST_SERVER_MAXPLAYERS=100 \ | |
# RUST_SERVER_HOSTNAME="Your Rust Server" \ | |
# RUST_SERVER_IDENTITY=your-rust-server \ | |
# RUST_SERVER_TICKRATE=10 \ | |
# RUST_SERVER_DESCRIPTION="Your Rust Server description" \ | |
# RUST_SERVER_HEADERIMAGE=https://your-host/512x256.png \ | |
# RUST_SERVER_URL=https://discord.gg/your-server-info-url \ | |
# install-rust-server.sh | |
######################################################################## | |
if [ -z "$RUST_HOME" ]; then | |
echo 'requires $RUST_HOME' | |
exit 1 | |
fi | |
if [ -z "$RUST_RCON_PASSWORD" ]; then | |
echo 'requires $RUST_RCON_PASSWORD' | |
exit 1 | |
fi | |
if [ -z "$RUST_SERVER_MAXPLAYERS" ]; then | |
RUST_SERVER_TICKRATE=50 | |
fi | |
if [ -z "$RUST_SERVER_HOSTNAME" ]; then | |
echo 'requires $RUST_SERVER_HOSTNAME' | |
exit 1 | |
fi | |
if [ -z "$RUST_SERVER_IDENTITY" ]; then | |
echo 'requires $RUST_SERVER_IDENTITY' | |
exit 1 | |
fi | |
if [ -z "$RUST_SERVER_TICKRATE" ]; then | |
RUST_SERVER_TICKRATE=10 | |
fi | |
if [ -z "$RUST_SERVER_DESCRIPTION" ]; then | |
echo 'requires $RUST_SERVER_DESCRIPTION' | |
exit 1 | |
fi | |
if [ -z "$RUST_SERVER_HEADERIMAGE" ]; then | |
echo 'requires $RUST_SERVER_HEADERIMAGE' | |
exit 1 | |
fi | |
if [ -z "$RUST_SERVER_URL" ]; then | |
echo 'requires $RUST_SERVER_URL' | |
exit 1 | |
fi | |
echo "Initial Parameters" | |
echo " RUST_HOME: $RUST_HOME" | |
echo " RUST_RCON_PASSWORD: $RUST_RCON_PASSWORD" | |
echo " RUST_SERVER_MAXPLAYERS: $RUST_SERVER_MAXPLAYERS" | |
echo " RUST_SERVER_HOSTNAME: $RUST_SERVER_HOSTNAME" | |
echo " RUST_SERVER_IDENTITY: $RUST_SERVER_IDENTITY" | |
echo " RUST_SERVER_TICKRATE: $RUST_SERVER_TICKRATE" | |
echo " RUST_SERVER_DESCRIPTION: $RUST_SERVER_DESCRIPTION" | |
echo " RUST_SERVER_HEADERIMAGE: $RUST_SERVER_HEADERIMAGE" | |
echo " RUST_SERVER_URL: $RUST_SERVER_URL" | |
echo | |
# Install SteamCMD | |
sudo yum install glibc.i686 libstdc++.i686 -y | |
mkdir ~/Steam && cd ~/Steam | |
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf - | |
# Install Rust | |
./steamcmd.sh +login anonymous +force_install_dir $RUST_HOME +app_update 258550 validate +quit | |
# Initial resources | |
cd $RUST_HOME | |
cat << EOF > start-$RUST_SERVER_IDENTITY.sh | |
$RUST_HOME/RustDedicated \\ | |
-batchmode -nographics \\ | |
-server.ip 0.0.0.0 \\ | |
-server.port 28015 \\ | |
-rcon.ip 0.0.0.0 \\ | |
-rcon.port 28016 \\ | |
-rcon.password $RUST_RCON_PASSWORD \\ | |
-server.maxplayers $RUST_SERVER_MAXPLAYERS \\ | |
-server.hostname "$RUST_SERVER_HOSTNAME" \\ | |
-server.identity "$RUST_SERVER_IDENTITY" \\ | |
-server.level "Procedural Map" \\ | |
-server.seed 12345 \\ | |
-server.worldsize 3000 \\ | |
-server.saveinterval 300 \\ | |
-server.globalchat true \\ | |
-server.tickrate $RUST_SERVER_TICKRATE \\ | |
-server.description "$RUST_SERVER_DESCRIPTION" \\ | |
-server.headerimage "$RUST_SERVER_HEADERIMAGE" \\ | |
-server.url $RUST_SERVER_URL | |
EOF | |
# Start | |
sudo bash -c "cat << EOF > /etc/systemd/system/rust-$RUST_SERVER_IDENTITY.service | |
[Unit] | |
Description=Rust $RUST_SERVER_HOSTNAME | |
[Service] | |
WorkingDirectory=$RUST_HOME | |
ExecStart=/usr/bin/sh $RUST_HOME/start-$RUST_SERVER_IDENTITY.sh | |
Restart=always | |
Type=simple | |
User=`whoami` | |
[Install] | |
WantedBy=multi-user.target | |
EOF" | |
sudo systemctl daemon-reload | |
sudo systemctl enable rust-$RUST_SERVER_IDENTITY.service | |
sudo systemctl restart rust-$RUST_SERVER_IDENTITY.service |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment