Coder Social home page Coder Social logo

didstopia / rust-server Goto Github PK

View Code? Open in Web Editor NEW
241.0 15.0 104.0 137 KB

Provides a dedicated linux server for Rust (the game) running inside a Docker container.

License: MIT License

Shell 51.73% JavaScript 36.06% Dockerfile 12.21%
rust server docker

rust-server's Introduction

Rust server that runs inside a Docker container

Docker Automated build Docker build status Docker Pulls Docker stars

DISCLAIMER:

Cracked or pirated versions of Rust are not supported in any way, shape or form. Please do not post issues regarding these.

TUTORIAL: We've written a guide on how to use this image here.

NOTE: This image will install/update on startup. The path /steamcmd/rust can be mounted on the host for data persistence. Also note that this image provides the new web-based RCON, so you should set RUST_RCON_PASSWORD to a more secure password. This image also supports having a modded server (using Oxide), check the RUST_OXIDE_ENABLED variable below.

How to run the server

  1. Set the environment variables you wish to modify from below (note the RCON password!)
  2. Optionally mount /steamcmd/rust somewhere on the host or inside another container to keep your data safe
  3. Enjoy!

The following environment variables are available:

RUST_SERVER_STARTUP_ARGUMENTS (DEFAULT: "-batchmode -load -nographics +server.secure 1")
RUST_SERVER_IDENTITY (DEFAULT: "docker" - Mainly used for the name of the save directory)
RUST_SERVER_PORT (DEFAULT: "" - Rust server port 28015 if left blank or numeric value)
RUST_SERVER_QUERYPORT (DEFAULT: "" - Rust server query port 28016 if left blank or numeric value)
RUST_SERVER_SEED (DEFAULT: "12345" - The server map seed, must be an integer)
RUST_SERVER_WORLDSIZE (DEFAULT: "3500" - The map size, must be an integer)
RUST_SERVER_NAME (DEFAULT: "Rust Server [DOCKER]" - The publicly visible server name)
RUST_SERVER_MAXPLAYERS (DEFAULT: "500" - Maximum players on the server, must be an integer)
RUST_SERVER_DESCRIPTION (DEFAULT: "This is a Rust server running inside a Docker container!" - The publicly visible server description)
RUST_SERVER_URL (DEFAULT: "https://hub.docker.com/r/didstopia/rust-server/" - The publicly visible server website)
RUST_SERVER_BANNER_URL (DEFAULT: "" - The publicly visible server banner image URL)
RUST_SERVER_SAVE_INTERVAL (DEFAULT: "600" - Amount of seconds between automatic saves.)
RUST_RCON_WEB (DEFAULT "1" - Set to 1 or 0 to enable or disable the web-based RCON server)
RUST_RCON_PORT (DEFAULT: "28016" - RCON server port)
RUST_RCON_PASSWORD (DEFAULT: "docker" - RCON server password, please change this!)
RUST_APP_PORT (DEFAULT: "28082" - Rust+ companion app port)
RUST_BRANCH (DEFAULT: Not set - Sets the branch argument to use, eg. set to "-beta prerelease" for the prerelease branch)
RUST_UPDATE_CHECKING (DEFAULT: "0" - Set to 1 to enable fully automatic update checking, notifying players and restarting to install updates)
RUST_UPDATE_BRANCH (DEFAULT: "public" - Set to match the branch that you want to use for updating, ie. "prerelease" or "public", but do not specify arguments like "-beta")
RUST_START_MODE (DEFAULT: "0" - Determines if the server should update and then start (0), only update (1) or only start (2))
RUST_OXIDE_ENABLED (DEFAULT: "0" - Set to 1 to automatically install the latest version of Oxide)
RUST_OXIDE_UPDATE_ON_BOOT (DEFAULT: "1" - Set to 0 to disable automatic update of Oxide on boot)
RUST_RCON_SECURE_WEBSOCKET (DEFAULT: "0" - Set to 1 to enable secure websocket connections to the RCON web interface)
RUST_HEARTBEAT (DEFAULT: "0" - Set to 1 to enable the heartbeat service which will forcibly quit the server if it becomes unresponsive to queries)

Logging and rotating logs

The image now supports log rotation, and all you need to do to enable it is to remove any -logfile arguments from your startup arguments. Log files will be created under logs/ with the server identity and the current date and time. When the server starts up or restarts, it will move old logs to logs/archive/.

How to send or receive command to/from the server

We recently added a small application, called rcon, that can both send and receive messages to the server, much like the console on the Windows version, but this happens to use RCON (webrcon). To use it, simply run the following on the host: docker exec rust-server rcon say Hello World, substituting rust-server for your own container name.

Rust+ companion app support

The image sets up app.port to 28082 by default, but you can optionally override this with the RUST_APP_PORT environment variable.
If you need to set additional options, such as app.listenip or app.publicip, you can supply these to RUST_SERVER_STARTUP_ARGUMENTS environment variable, but be careful to also include the default values.
More information on the Rust+ companion app integration can be found here.

Troubleshooting

  • If the server exits by itself after seemingly starting up fine, make sure the Docker VM has at least 4GB of RAM.
  • If you can connect to the RCON web UI, but not the game itself, make sure you've exposed port 28015 as UDP, not TCP.

Anything else

If you need help, have questions or bug submissions, feel free to contact me @Dids on Twitter, and on the Rust Server Owners Slack community.

rust-server's People

Contributors

brantje avatar d0tty avatar dids avatar lshallo avatar moochannel avatar morgyn avatar torarnv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rust-server's Issues

Fails to start with this new update

Server Config Loaded
Running server/server/cfg/bans.cfg
Running server/server/cfg/users.cfg
NullReferenceException: Object reference not set to an instance of an object
at ErrorText.CaptureLog (System.String error, System.String stacktrace, UnityEngine.LogType type) [0x00050] in <5c5e0d4a0878463e8f54bdd13036e094>:0

at Facepunch.Output.LogHandler (System.String log, System.String stacktrace, UnityEngine.LogType type) [0x00158] in <5c5e0d4a0878463e8f54bdd13036e094>:0
at (wrapper delegate-invoke) .invoke_void_string_string_LogType(string,string,UnityEngine.LogType)
at UnityEngine.Application.CallLogCallback (System.String logString, System.String stackTrace, UnityEngine.LogType type, System.Boolean invokedOnMainThread) [0x00014] in :0
TypeLoadException: Invalid type System.Collections.Generic.List1<ItemDefinition> for instance field System.Collections.Generic.List1+Enumerator[ItemDefinition]:list
at Bootstrap+d__15.MoveNext () [0x001f6] in <5c5e0d4a0878463e8f54bdd13036e094>:0
at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00027] in :0

cannot install on linux

the directory /steamcmd/rust exists in the root directory of the server & has been set to allow everybody R/W access (for testing)

docker run --name rust-server -d -p 28015:28015 -p 28015:28015/udp -p 28016:28016 -p 8080:8080 -v /rust:/steamcmd/rust --env-file /rust.env didstopia/rust-server

sudo docker logs -f rust-server

Loading Steam API...OK.
@sSteamCmdForcePlatformType linux
"@sSteamCmdForcePlatformType" = "linux"

Connecting anonymously to Steam Public...Logged in OK
Waiting for user info...OK
force_install_dir /steamcmd/rust
app_info_update 1
app_update 258550 validate
ERROR! Failed to install app '258550' (Disk write failure)
quit
Starting web server..
Log rotation disabled!
Starting scheduled task manager..
Starting Rust..
./start.sh: line 222: /steamcmd/rust/RustDedicated: No such file or directory
Exiting..

Run as non-root

Run Rust and other services as a non-root user, if possible. Be sure to avoid/catch any UID issues on the host system when working with volumes, since that used to be an issue, so might still be too.

Also look into possibly setting the user/UID/GID via environment variables.

Add wipe command

Not sure if this is better suited to the host or not but the script could look something like

#/bin/bash
serveridentitydir="/steamcmd/rust/server/${RUST_SERVER_IDENTITY}"
find "${serveridentitydir:?}" -type f -name "proceduralmap.*.sav" -delete
find "${serveridentitydir:?}" -type f -name "proceduralmap.*.map" -delete
rm -rf "${serveridentitydir:?}/user"
rm -rf "${serveridentitydir:?}/storage"
find "${serveridentitydir:?}" -type f -name "Log.*.txt" -delete

PS - great work on this container!

Oxide GitHub repository changes

To be prepared for the recently made changes for build rollouts you should change to the api from github for getting the latest build.

curl -s https://api.github.com/repos/OxideMod/Oxide.Rust/releases/latest | jq -r ".assets[] | select(.name | test("${spruce_type}")) | .browser_download_url"

Will give you "https://github.com/OxideMod/Oxide.Rust/releases/download/2.0.3758/Oxide.Rust.zip"

Source: http://oxidemod.org/threads/github-repository-changes.28181/#post-367286

Autoupdate function kills container

Environment (OS/Distro, Docker version etc.)

Ubuntu 16.04

Today after a rustupdate, the server seems to detect the update and kicks all and shutdown (quit)
But after not comming back online i saw that the dockercontainer was stopped and i had to manually start it again.

Some Logs:
...
xxx/76561198282330729/☢Blitzz☢ kicked: Kicked: No Reason Given
xxx/76561198177009247/AzokCz kicked: Kicked: No Reason Given
Invalidate Network Cache took 0.02 seconds
Saved 67,268 ents, serialization(0.00), write(0.01), disk(0.00) totalstall(0.03).
Saving complete
Config Saved
[Raknet] Server Shutting Down (quit)
Exiting..

Fully automatic updates

Add fully automatic updates, including querying Steam for periodically, notifying players about an update, restarting the server and installing the updates.

Run as non root group

Hi,

To manage rights on data persistence into the host can you change the following command in the startup script :

start_rust.sh : L60

# Fix ownership
chown -R $(whoami):$(id -g) /steamcmd/rust

For a normal usage this will not change the way of using of the container but for an advanced usage it would be great.

Log Rotation

Add log rotation/archiving with configurable parameters.

steamcmd does not install on first docker run (no config)

first run:
docker run --name rust-server didstopia/rust-server

Installing/updating Rust.. (this might take a while, be patient)
Starting web server..
Log rotation enabled!
Using startup arguments: -batchmode -load +server.secure 1
Cleaning up old logs..
mv: cannot stat '/steamcmd/rust/logs/*.txt': No such file or directory
Starting scheduled task manager..
Starting Rust..
couldn't execute "/steamcmd/rust/RustDedicated": no such file or directory
    while executing
"spawn -noecho /steamcmd/rust/RustDedicated -batchmode -load +server.secure 1 +rcon.port 28016 +rcon.password docker +rcon.web 1 -logfile /dev/stdout +..."
    ("eval" body line 1)
    invoked from within
"eval [list spawn -noecho] $argv"
    invoked from within
"if {[string compare [lindex $argv 0] "-p"] == 0} {
    # pipeline
    set stty_init "-echo"
    eval [list spawn -noecho] [lrange $argv 1 end]
    clo..."
    (file "/usr/bin/unbuffer" line 13)

I'm guessing because the volume isn't linked yet? Anyway, the container works great under an Ubuntu host once you pass it all the required options and link a volume.

May be unrelated - but on a Windows host the installer never seems to be able to copy the files from the steamapps/downloading folder to the root of the volume - failing with the same couldn't execute "/steamcmd/rust/RustDedicated": no such file or directory

Add Codecov support

Add Codecov support for automated tests for each commit, PR etc. as well as automatic merging for new builds.

Error while compiling: compiler v0.0.0.0 disconnected

Environment (OS/Distro, Docker version etc.)

Ubuntu 16.04, Docker 17.12.0-ce

sudo docker run -it --name rust-server -d -p 28015:28015 -p 28015:28015/udp -p 28016:28016 -p 8080:8080 -v /opt/rust:/steamcmd/rust --env-file /etc/rustserver/rust.env --restart unless-stopped didstopia/rust-server

Expected behavior

Plugins are compiled and load normally/consistently

Actual behavior

Randomly plugins stop being compiled and loaded when added to the server, requiring a restart of the server. Will work fine for a while but after a number of plugins are compiled/loaded the compiler "disconnects".

Running dependency trace for CSharpCompiler.x86_x64
User running server may not have the proper permissions or install is missing files
Error while compiling: compiler v0.0.0.0 disconnected

Steps to reproduce

Load plugin .cs files one at a time until the compiler fails.

New web rcon

Hey,
I m working on a new webrcon app and wanted to share it with you.
It works as a docker container and the first release will have atleast the same features then the facepunch one.
I will publish it soon on github but you can try it there http://rust-admin.com.
If you are interrested about it, maybe i can make a PR with the docker-compose that allow to start a server with this webrcon ?

server description

RUST_SERVER_DESCRIPTION

is it possible to have the option to pass a formatted text file, rather than having to continually enter into the base config script.

RCON restart command kills the server

Describe the bug
When we initiate a restart using the rcon command, the server shuts down gracefully, but never starts back up and I have to start the docker container again.

To Reproduce
Steps to reproduce the behavior:

  1. Go to web rcon or any other rcon method
  2. Type 'restart' into console
  3. Rust does it's thing and then shuts down

Expected behavior
The docker container shouldn't stop and the server should start back up

Environment (please complete the following information):

  • OS: Ubuntu 18.04.2 LTS
  • Docker: Docker version 17.05.0-ce, build 89658be

"Error! Timed out waiting for AppInfo update."

Describe the bug
Crashing on attempt to install

To Reproduce
Attempt to run 1 instance of this image

Expected behavior
A crash does not occur and rust server is successfully installed and running.

Environment (please complete the following information):

  • OS: [RancherOS v1.5.3]
  • Rancher 4.14.128
  • Kublet v1.14.3
  • Docker: 18.6.6

Additional context
Full logs before crash:
crashlog.txt

seeing a lot more console output after recent changes

seeing the following errors after updating to latest docker image

Even though everything seems to get setup correctly.

Command Line: "/steamcmd/rust/RustDedicated" "-batchmode" "-load" "-logfile" "/dev/stdout" "+server.secure" "1" "+rcon.port" "28016" "+rcon.password" "******" "+rcon.web" "1" "+server.identity" "zzzzzzzzzz" "+server.seed" "6549" "+server.hostname" "Razors_Edge" "+server.url" """" "+server.headerimage" """" "+server.description" "This is a TEST server ONLY. You can join but there is no save state" "+server.worldsize" "4000" "+server.maxplayers" "4" "+server.saveinterval" "600"
Command 'batchmode' not found
Command 'load' not found
Command 'logfile' not found
server.secure: "True"
rcon.port: "28016"
Command 'rcon.password' not found
rcon.web: "True"
server.identity: "xxxx"
server.seed: "6549"
server.hostname: "xxxxxxxx"
server.url: "1"
server.headerimage: "1"
server.description: "This is a TEST server ONLY. You can join but there is no save state"
server.worldsize: "4000"
server.maxplayers: "4"
server.saveinterval: "600"

Running in Rancher 2.0 not claiming ownership of directories

On latest image, docker version, and Rancher 2.x version.

Describe the bug
So running this in Rancher 2.0 with the steamcd directory mounted to an NFS volume it fails to do anything in that directory. Now I understand that this just sounds like a problem on my end with permissions but I even set the the permissions of anyone mounting the share to that of root for testing and I achieved the same result. The image appears to try to chown everything to a seperate user. I dont think that will work on a persistent volume afaik. Upon startup these are the logs.

+ trap exit_handler SIGINT SIGTERM 
+ rm -fr '/tmp/*.lock' 
+ '[' '!' -d /steamcmd/rust ']' 
+ '[' '!' -d /steamcmd/rust/server/docker ']' 
++ whoami 
++ whoami 
+ chown -R root:root /steamcmd/rust 
chown: changing ownership of '/steamcmd/rust/logs/archive/docker_2019-07-31_00-42-59.txt': Invalid argument 
chown: changing ownership of '/steamcmd/rust/logs/archive/docker_2019-07-31_00-45-31.txt': Invalid argument 
chown: changing ownership of '/steamcmd/rust/logs/archive/docker_2019-07-31_00-40-51.txt': Invalid argument 
chown: changing ownership of '/steamcmd/rust/logs/archive/docker_2019-07-31_00-38-39.txt': Invalid argument 
chown: changing ownership of '/steamcmd/rust/logs/archive': Invalid argument 
chown: changing ownership of '/steamcmd/rust/logs/docker_2019-07-31_02-53-06.txt': Invalid argument 
chown: changing ownership of '/steamcmd/rust/logs': Invalid argument 
chown: changing ownership of '/steamcmd/rust/test/fuck.test': Invalid argument 
chown: changing ownership of '/steamcmd/rust/test': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/Bundles/shared': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/Bundles/maps': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/Bundles/items': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/Bundles': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/4.5/Browsers': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/4.5': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/registry': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/2.0/Browsers': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/2.0': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/mconfig': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/4.0/Browsers': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono/4.0': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc/mono': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/etc': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge/x86_64': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/MonoBleedingEdge': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/StreamingAssets/MenuVideo': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/StreamingAssets': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/Managed': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/Resources': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/Plugins/x86_64': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data/Plugins': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550/RustDedicated_Data': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/258550': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading/state_258550_258552.patch': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/downloading': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/appmanifest_258550.acf': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/temp/258550': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/temp': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps/libraryfolders.vdf': Invalid argument 
chown: changing ownership of '/steamcmd/rust/steamapps': Invalid argument 
chown: changing ownership of '/steamcmd/rust/server/docker/test.test': Invalid argument 
chown: changing ownership of '/steamcmd/rust/server/docker': Invalid argument 
chown: changing ownership of '/steamcmd/rust/server': Invalid argument 
chown: changing ownership of '/steamcmd/rust': Invalid argument 
+ echo 'Installing/updating steamcmd..' 
Installing/updating steamcmd.. 
+ curl -s http://media.steampowered.com/installer/steamcmd_linux.tar.gz 
+ tar -v -C /steamcmd -zx 
linux32/ 
linux32/libstdc++.so.6 
linux32/steamcmd 
steamcmd.sh 
steam.sh 
+ '[' '!' -z ']' 
+ sed -i 's/app_update 258550.*validate/app_update 258550 validate/g' /install.txt 
+ '[' 0 = 2 ']' 
+ install_or_update 
+ echo 'Installing or updating Rust.. (this might take a while, be patient)' 
Installing or updating Rust.. (this might take a while, be patient) 
+ bash /steamcmd/steamcmd.sh +runscript /install.txt 
Redirecting stderr to '/root/Steam/logs/stderr.txt' 
[  0%] Checking for available updates... 
<redacted>
[100%] Download complete. 
[----] Installing update... 
[----] Extracting package... 
[----] Extracting package... 
[----] Extracting package... 
[----] Extracting package... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Cleaning up... 
[----] Update complete, launching %appname%... 
Redirecting stderr to '/root/Steam/logs/stderr.txt' 
[  0%] Checking for available updates... 
[----] Downloading update (225 of 49,996 KB)... 
<redacted>
[100%] Download complete. 
[----] Installing update... 
[----] Extracting package... 
[----] Extracting package... 
[----] Extracting package... 
[----] Extracting package... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Installing update... 
[----] Cleaning up... 
[----] Update complete, launching Steamcmd... 
Redirecting stderr to '/root/Steam/logs/stderr.txt' 
[  0%] Checking for available updates... 
[----] Verifying installation... 
Steam Console Client (c) Valve Corporation 
-- type 'quit' to exit -- 
Loading Steam API...OK. 
 
"@sSteamCmdForcePlatformType" = "linux" 
 
Connecting anonymously to Steam Public...Logged in OK 
Waiting for user info...OK 
 
 
 
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0) 
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0) 
 Update state (0x11) preallocating, progress: 1.07 (42114492 / 3924991346) 
 Update state (0x11) preallocating, progress: 1.07 (42114492 / 3924991346) 
 Update state (0x11) preallocating, progress: 1.69 (66295238 / 3924991346) 
 Update state (0x11) preallocating, progress: 6.55 (257080435 / 3924991346) 
 Update state (0x11) preallocating, progress: 6.56 (257464200 / 3924991346) 
 Update state (0x11) preallocating, progress: 6.57 (257873808 / 3924991346) 
 Update state (0x11) preallocating, progress: 6.58 (258225978 / 3924991346) 
Error! App '258550' state is 0x602 after update job.
 
+ '[' 0 -ne 0 ']' 
+ '[' '!' -f /steamcmd/rust/build.id ']' 
+ ./update_check.sh 
+ export LD_LIBRARY_PATH=:/steamcmd/rust/RustDedicated_Data/Plugins/x86_64 
+ LD_LIBRARY_PATH=:/steamcmd/rust/RustDedicated_Data/Plugins/x86_64 
+ '[' 0 = 1 ']' 
+ '[' 0 = 1 ']' 
+ RUST_STARTUP_COMMAND= 
+ '[' '!' -z x ']' 
+ RUST_STARTUP_COMMAND=' +rcon.port 28016' 
+ '[' '!' -z x ']' 
+ RUST_STARTUP_COMMAND=' +rcon.port 28016 +rcon.password testpass' 
+ '[' '!' -z x ']' 
+ RUST_STARTUP_COMMAND=' +rcon.port 28016 +rcon.password testpass +rcon.web 28016' 
+ '[' 28016 = 1 ']' 
+ LOGROTATE_ENABLED=1 
++ sed 's/./\L&/g' 
++ echo ' +rcon.port 28016 +rcon.password testpass +rcon.web 28016' 
+ RUST_STARTUP_COMMAND_LOWERCASE=' +rcon.port 28016 +rcon.password testpass +rcon.web 28016' 
+ [[  +rcon.port 28016 +rcon.password testpass +rcon.web 28016 == *\ \-\l\o\g\f\i\l\e\ * ]] 
+ '[' 1 = 1 ']' 
+ echo 'Log rotation enabled!' 
Log rotation enabled! 
+ RUST_STARTUP_COMMAND=' +rcon.port 28016 +rcon.password testpass +rcon.web 28016 -logfile /dev/stdout' 
+ echo 'Using startup arguments: ' 
Using startup arguments: 
+ '[' '!' -d /steamcmd/rust/logs/archive ']' 
++ date +%Y-%m-%d_%H-%M-%S 
+ DATE=2019-07-31_02-55-16 
+ RUST_SERVER_LOG_FILE=/steamcmd/rust/logs/docker_2019-07-31_02-55-16.txt 
+ echo 'Cleaning up old logs..' 
Cleaning up old logs.. 
+ true 
+ mv /steamcmd/rust/logs/docker_2019-07-31_02-53-06.txt /steamcmd/rust/logs/archive 
+ '[' 0 = 1 ']' 
+ cd /steamcmd/rust 
+ echo 'Starting Rust..' 
Starting Rust.. 
+ '[' 1 = 1 ']' 
+ child=132 
+ wait 132 
+ unbuffer /steamcmd/rust/RustDedicated +rcon.port 28016 +rcon.password testpass +rcon.web 28016 -logfile /dev/stdout +server.identity docker +server.seed 651984 +server.hostname 'Plz Revive I Haz Rust' +server.url rust.pfaffe.me +server.headerimage '' +server.description 'This is a server, I guess you can join it. If you want. I guess.' +server.worldsize 4000 +server.maxplayers 25 +server.saveinterval 600 
+ tee /steamcmd/rust/logs/docker_2019-07-31_02-55-16.txt 
+ grep --line-buffered -Ev '^\s*$|Filename' 
couldn't execute "/steamcmd/rust/RustDedicated": no such file or directory 
    while executing 
"spawn -noecho /steamcmd/rust/RustDedicated +rcon.port 28016 +rcon.password testpass +rcon.web 28016 -logfile /dev/stdout +server.identity docker +serv..." 
    ("eval" body line 1) 
    invoked from within 
"eval [list spawn -noecho] $argv" 
    invoked from within 
"if {[string compare [lindex $argv 0] "-p"] == 0} { 
    # pipeline 
    set stty_init "-echo" 
    eval [list spawn -noecho] [lrange $argv 1 end] 
    clo..." 
    (file "/usr/bin/unbuffer" line 13) 
+ pkill -f nginx 
+ echo Exiting.. 
Exiting.. 
+ exit 

It also notable does not throw permission denied calls anymore so as far as I can tell this is purely because it tries to chwon everything and obviously cant because the volume is persistent and the container is not so it cant have the same users. The steam update then fails and that is that. Can also confirm that it is writing data into that directory as well.
image

Server fails fails to show in master list

Server starts, connection via console works, but fails to show on master list.

I am using this docker-compose file, thoughts on what the problem might be?

version: '3'

services:
  rust:
    image: didstopia/rust-server
    container_name: rust
    ports:
      - 28015:28015
      - 28015:28015/udp
      - 28016:28016
    volumes:
      - /Rust:/steamcmd/rust
    environment:
      - 'CPU_MHZ=2199'
      - 'RUST_SERVER_STARTUP_ARGUMENTS=-batchmode -load +server.secure 1'
      - 'RUST_SERVER_NAME=Rusty Underpants Singapore'
      - 'RUST_SERVER_IDENTITY=docker'
      - 'RUST_SERVER_DESCRIPTION=Testing Traffic costs, come play while the server is up!'
      - 'RUST_SERVER_MAXPLAYERS=100'
      - 'RUST_SERVER_WORLDSIZE=3500'
      - 'RUST_SERVER_SEED=78476576'
      - 'RUST_RCON_WEB=1'
      - 'RUST_RCON_PORT=28016'
      - 'RUST_RCON_PASSWORD=testing12345'
      - 'RUST_UPDATE_CHECKING=1'
      - 'RUST_UPDATE_BRANCH=public'
      - 'RUST_START_MODE=2'
      - 'RUST_SERVER_SAVE_INTERVAL=600'
    restart: unless-stopped

Embedded SW needs a refresh

Can you give the container on docker a refresh
some of the internal packages are out of date for security & bug fixes

latest update does nto seem to be updating the internal rust copy

client fails saying server requires update.

the new 209 update

sudo docker run --name rust-server -d -p 28015:28015 -p 28015:28015/udp -p 28016:28016 -p 8080:8080 --mount 'type=bind,source=/rustdata,target=/steamcmd/rust' --env-file /rustdata/rust.env -ti didstopia/rust-server start

Connecting anonymously to Steam Public...Logged in OK
Waiting for user info...OK
force_install_dir /steamcmd/rust
app_info_update 1
app_update 258550 validate
Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
Error! App '258550' state is 0x206 after update job.
quit

Unable to connect to RCON creating new server

Just created a server and I'm unable to connect on the RCON port. Request reaches the server and this shows in the logs:

3/20/2017 2:24:36 PM|Fatal|<>c__DisplayClass6.<receiveRequest>b__5|WebSocketSharp.WebSocketException: An exception has occurred while reading an HTTP request/response. ---> System.IO.EndOfStreamException: The header cannot be read from the data source.
                             at WebSocketSharp.HttpBase+<>c__DisplayClass1.<readHeaders>b__0 (Int32 i) [0x00000] in <filename unknown>:0
                             at WebSocketSharp.Ext.EqualsWith (Int32 value, Char c, System.Action`1 action) [0x00000] in <filename unknown>:0
                             at WebSocketSharp.HttpBase.readHeaders (System.IO.Stream stream, Int32 maxLength) [0x00000] in <filename unknown>:0
                             at WebSocketSharp.HttpBase.Read[HttpRequest] (System.IO.Stream stream, System.Func`2 parser, Int32 millisecondsTimeout) [0x00000] in <filename unknown>:0
                             --- End of inner exception stack trace ---
                             at WebSocketSharp.HttpBase.Read[HttpRequest] (System.IO.Stream stream, System.Func`2 parser, Int32 millisecondsTimeout) [0x00000] in <filename unknown>:0
                             at WebSocketSharp.HttpRequest.Read (System.IO.Stream stream, Int32 millisecondsTimeout) [0x00000] in <filename unknown>:0
                             at WebSocketSharp.Net.WebSockets.TcpListenerWebSocketContext..ctor (System.Net.Sockets.TcpClient tcpClient, System.String protocol, Boolean secure, WebSocketSharp.Net.ServerSslConfiguration sslConfig, WebSocketSharp.Logger logger) [0x00000] in <filename unknown>:0
                             at WebSocketSharp.Ext.GetWebSocketContext (System.Net.Sockets.TcpClient tcpClient, System.String protocol, Boolean secure, WebSocketSharp.Net.ServerSslConfiguration sslConfig, WebSocketSharp.Logger logger) [0x00000] in <filename unknown>:0
                             at WebSocketSharp.Server.WebSocketServer+<>c__DisplayClass6.<receiveRequest>b__5 (System.Object state) [0x00000] in <filename unknown>:0
3/20/2017 2:24:36 PM|Error|WebSocketServiceManager.InternalTryGetServiceHost|A WebSocket service with the specified path isn't found:
                             path: /

nginx faulting/crashing

I have an fresh Docker install, previously this Rust server was running like a charm, however when I start the container now I get this message after downloading/starting (and the container stops):

Loading Prefab Bundle 0%
Loading Prefab Bundle 0%
Loading Prefab Bundle 0%
Loading Prefab Bundle 0%
Loading Prefab Bundle 0%
Loading Prefab Bundle 0%

  • pkill -f nginx

    .
  • echo Exiting..
  • exit

Anyone got a clue?

Docker rust-server in Virtualbox

Hi Guys,

I want to launch rust-server in dockerized environment but using Virtualbox.

When i run the image

docker run --name rust-server1
-p 3000:3000 -p 8080:8080 -p 28015:28015 -p 28016:28016
-it -d
-v /mnt/sda1/var/game/RustServer:/steamcmd/rust
--env RUST_SERVER_WORLDSIZE=1500
didstopia/rust-server

I finally have this error message

NullReferenceException: Object reference not set to an instance of an object
at TerrainMap`1[T].FromByteArray (System.Byte[] dat) [0x00000] in :0
at WorldSetup+c__Iterator0.MoveNext () [0x00594] in :0
at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00027] in <3d3ce0a05f164357836ebcee3caff781>:0

This error i don't know how to fix it. i think the docker binaries should be the host not inside a virtualmachine (docker-machine i used to create the docker binaries and then i run the docker didstopia/rust-server image.

Path issue when no volume is mounted

Running without mounting a volume (eg. docker run --name rust-server didstopia/rust-server) doesn't work, most likely due to the old path issue. Should be an easy fix though.

Fallback handler could not load library /steamcmd/rust/RustDedicated_Data/Mono/x86_64/libsteam_api64.so
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
dlopen failed trying to load:
steamclient.so
with error:
steamclient.so: cannot open shared object file: No such file or directory
[S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.so.
Fallback handler could not load library /steamcmd/rust/RustDedicated_Data/Mono/x86_64/libsteam_api64.so
Couldn't initialize Steam Server (0)
eac_server.so [x64] :: OnLoad()
Server startup complete
Setting up 1 worker threads for Enlighten.
  Thread -> id: 7f1287600700 -> priority: 1 
EasyAntiCheat Shutting Down
[Raknet] Server Shutting Down (Shutting Down)
Unhandled Exception: System.NullReferenceException: 
  at (wrapper managed-to-native) UnityEngine.AssetBundle:Unload (bool)
  at FileSystem_AssetBundles.Finalize () [0x00000] in <filename unknown>:0 

Cracked

How would I make this so that I people can join with a cracked client?
Not with this repo dock, but original steam server?

I've setup Luma, and set server.secure to 0. When they join, they get kicked for steam auth.

Any work around? Rust 1974.. latest

Migrate to Habitat

Migrate to Habitat which will allow us to export to Docker, bare metal, virtual machines etc. while the server stays the same across all systems and environments.

RCON leaking data externally

it seems that "rcon" is leaking data to
www.battlemetrics.com
all details of the players online are exposed, including the playing time.

is there anyway to block this information, it seems it is default for the basic container.

Login to steam failed

I was trying to get my own server setup and had some issues. I can access Rcon and I was able to register my server with rust's list but I can't connect to it at all. I have port forward everything on my router and there is no other firewall in between.

I started digging in the log files and noticed this line...
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
I then exec'd into the container and tried logging in manually but nothing worked. For some reason ```login anonymous`` prompted for a password and didn't work. I also tried a steam account that I normally use when steamcmd requires a steam account and it didn't work either.

Here is my docker-compose:

version: '3'
services:
   server:
      image: didstopia/rust-server
      ports:
       - "28015:28015"
       - "28015:28015/udp"
       - "28016:28016"
       - "8085:8080"
      volumes:
       - "./rust:/steamcmd/rust"
      environment:
       - RUST_SERVER_STARTUP_ARGUMENTS=-batchmode -load -logfile /dev/stdout +server.secure 1
       - RUST_SERVER_IDENTITY=RUST_BUCKET
       - RUST_SERVER_SEED=12345
       - RUST_SERVER_NAME=Rust Bucket
       - RUST_SERVER_DESCRIPTION=Rust Server on Tank
       - RUST_RCON_PASSWORD=${bucket_key}
       - RUST_OXIDE_ENABLED=1

Environment (OS/Distro, Docker version etc.)

Server Version: 17.09.1-ce

Latest update badly broken

been fine for ages but after latest pull:
on startup after the "header" you added....

Running as user: docker chown: changing ownership of '/steamcmd/rust/rust.env': Operation not permitted chown: changing ownership of '/steamcmd/rust/steamapps/libraryfolders.vdf': Operation not permitted chown: changing ownership of '/steamcmd/rust/steamapps/shadercache': Operation not permitted chown: changing ownership of '/steamcmd/rust/steamapps/appmanifest_258550.acf': Operation not permitted

for every file in the container

until:

`Waiting for user info...OK
force_install_dir /steamcmd/rust
app_info_update 1
app_update 258550 validate
Update state (0x0) : Timed out waiting for update to start, bailing.
Error! App '258550' state is 0x204 after update job.
quit
applicationmanager.cpp (927) : Assertion Failed: m_bStateChangesSavedToDisk
Downloading and installing latest Oxide..
x RustDedicated_Data/: Can't restore time
x RustDedicated_Data/Managed/: Can't restore time
x RustDedicated_Data/Managed/Assembly-CSharp.dll: Can't unlink already-existing object
x RustDedicated_Data/Managed/Facepunch.Console.dll: Can't unlink already-existing object
x RustDedicated_Data/Managed/Facepunch.Network.dll: Can't unlink already-existing object
x RustDedicated_Data/Managed/Facepunch.Rcon.dll: Can't unlink already-existing object
x RustDedicated_Data/Managed/Mono.Data.Tds.dll: Can't unlink already-existing object
x RustDedicated_Data/Managed/MySql.Data.dll: Can't unlink already-existing object
x RustDedicated_Data/Managed/NewAssembly.dll: Can't unlink already-existing object
.........

x RustDedicated_Data/Managed/x86/sqlite3.dll: Can't unlink already-existing object
bsdtar: Error exit delayed from previous errors.
chmod: cannot access '/steamcmd/rust/CSharpCompiler.x86_x64': No such file or directory
chmod: changing permissions of '/dev/null': Operation not permitted
Starting web server..
Log rotation disabled!
Starting Rust..
Found path: /steamcmd/rust/RustDedicated
Unable to open log file, exiting.
Exiting..
`

Then after deleting container and trying a clean "restart" of docker*

`Listening for IPv4 broadcast on: 27036
Logged in OK
Waiting for user info...OK
force_install_dir /steamcmd/rust
app_info_update 1
app_update 258550 validate
Update state (0x0) : Timed out waiting for update to start, bailing.
Error! App '258550' state is 0x204 after update job.
quit
applicationmanager.cpp (927) : Assertion Failed: m_bStateChangesSavedToDisk
Downloading and installing latest Oxide..
x RustDedicated_Data/: Can't restore time
x RustDedicated_Data/Managed/: Can't restore time
x RustDedicated_Data/Managed/Assembly-CSharp.dll: Can't unlink already-existing object
.....

x RustDedicated_Data/Managed/x86/libsqlite3.so: Can't unlink already-existing object
x RustDedicated_Data/Managed/x86/mono-2.0.dll: Can't unlink already-existing object
x RustDedicated_Data/Managed/x86/msvcp140.dll: Can't unlink already-existing object
x RustDedicated_Data/Managed/x86/msvcr120.dll: Can't unlink already-existing object
x RustDedicated_Data/Managed/x86/sqlite3.dll: Can't unlink already-existing object
bsdtar: Error exit delayed from previous errors.
chmod: cannot access '/steamcmd/rust/CSharpCompiler.x86_x64': No such file or directory
chmod: changing permissions of '/dev/null': Operation not permitted
Starting web server..
Log rotation disabled!
Starting Rust..
Found path: /steamcmd/rust/RustDedicated
Unable to open log file, exiting.
Exiting..`

Update your oxide code

Hi Didstopia.

So you know that a part of your code needs updating for oxide install.
Here are the changes needed.

From..

# Check if Oxide is enabled
if [ "$RUST_OXIDE_ENABLED" = "1" ]; then
	# Next check if Oxide doesn't' exist, or if we want to always update it
	INSTALL_OXIDE="0"
	if [ ! -f "/steamcmd/rust/CSharpCompiler.x86_x64" ]; then
		INSTALL_OXIDE="1"
	fi
	if [ "$RUST_OXIDE_UPDATE_ON_BOOT" = "1" ]; then
		INSTALL_OXIDE="1"
	fi

	# If necessary, download and install latest Oxide
	if [ "$INSTALL_OXIDE" = "1" ]; then
		echo "Downloading and installing latest Oxide.."
		OXIDE_URL=$(curl -s https://api.github.com/repos/OxideMod/Oxide.Rust/releases/latest | grep browser_download_url | cut -d '"' -f 4)
		curl -sL $OXIDE_URL | bsdtar -xvf- -C /steamcmd/rust/
		chmod 755 /steamcmd/rust/CSharpCompiler.x86_x64 2>&1 /dev/null

		## NOTE: Disabled until I have time to properly fix this
		#chown -R $PUID:$PGID /steamcmd/rust
	fi
fi

To...

# Check if Oxide is enabled
if [ "$RUST_OXIDE_ENABLED" = "1" ]; then
	# Next check if Oxide doesn't' exist, or if we want to always update it
	INSTALL_OXIDE="0"
	if [ ! -f "/steamcmd/rust/Compiler.x86_x64" ]; then
		INSTALL_OXIDE="1"
	fi
	if [ "$RUST_OXIDE_UPDATE_ON_BOOT" = "1" ]; then
		INSTALL_OXIDE="1"
	fi

	# If necessary, download and install latest Oxide
	if [ "$INSTALL_OXIDE" = "1" ]; then
		echo "Downloading and installing latest Oxide.."
		OXIDE_URL=$(curl -s https://api.github.com/repos/OxideMod/Oxide.Rust/releases/latest | grep browser_download_url | cut -d '"' -f 4)
		curl -sL $OXIDE_URL | bsdtar -xvf- -C /steamcmd/rust/
		chmod 755 /steamcmd/rust/Compiler.x86_x64 2>&1 /dev/null

		## NOTE: Disabled until I have time to properly fix this
		#chown -R $PUID:$PGID /steamcmd/rust
	fi
fi

I been heavily modifying your codes for a more simple setup and upgrading old codes to more efficient ones.

Anyways hope this helps you out.

Replace oxide with umod

Is your feature request related to a problem? Please describe.
Oxide mod is deprecated
Describe the solution you'd like
Would be nice if it's replaced with umod

Inaccurate Server Selection ping

Describe the bug
Viewing server in server selection menu intermittently shows 300+ ping but after joining ping is consistently low. This is not the case with non containerized rust servers running on the same node.

In game ping doesn't spike like in server selection.

To Reproduce
Steps to reproduce the behavior:

  1. View server in server select screen. ( Intermittently shows 300+ )
  2. Join server
  3. F1 client.ping ( Shows normal ping levels ~30ms )

Expected behavior
Out of game ping is accurate with in game ping.

Screenshots
pingbefore

Environment (please complete the following information):

  • OS: Ubuntu 18.04
  • Docker: 18.09.5, build e8ff056

Image does not run on arm architecture

I am having issues running the container on a raspberry pi 4, getting the error "standard_init_linux.go:211: exec user process caused "exec format error"

Any suggestion on how to build a working image for arm64 ?

UMOD changed their linux build url

Describe the bug
When Oxide is enabled, it pulls oxide from this url https://api.github.com/repos/theumod/uMod.Rust/releases/latest which no longer contains the linux version.

To Reproduce
Steps to reproduce the behavior:

  1. Set RUST_OXIDE_ENABLED to 1
  2. Restart
  3. Errors showing DLL issues due to windows oxide being setup

Expected behavior
Should load the linux version of Oxide which now is the following url: https://github.com/theumod/uMod.Rust/tree/linux
https://umod.org/games/rust/download/develop

Environment (please complete the following information):

  • OS: Ubuntu LTS 18.04
  • Docker: 18.06.1-ce

Additional context
Recently Umod seperated linux and windows files, and states to use a new url.
NOTE: For Linux builds, please use the "Develop" URL below:
https://umod.org/games/rust/download/develop

Oxide is not being loaded

When I enable oxide via the environment variable, it's not being (down)loaded.
I can see in the start_rust.sh that it's trying to place and chmodCSharpCompiler.x86_x64.

But that file isn't even present in the latest umod download.
Any suggestion on how to fix this?

Edit: log also confirms:

x RustDedicated_Data/Managed/x86/msvcp140.dll
x RustDedicated_Data/Managed/x86/msvcr120.dll
x RustDedicated_Data/Managed/x86/sqlite3.dll
+ chmod 755 /steamcmd/rust/CSharpCompiler.x86_x64 /dev/null
chmod: cannot access '/steamcmd/rust/CSharpCompiler.x86_x64': No such file or directory

Couldn't load server/docker/proceduralmap.3500.12345.172.sav - file doesn't exist

Describe the bug

rust    | Monument Navmesh Build took 18.62 seconds
rust    | Map Spawned 697 entities
rust    | Couldn't load server/docker/proceduralmap.3500.12345.172.sav - file doesn't exist
rust    | Exiting...

To Reproduce
Steps to reproduce the behavior:

  1. docker-compose up -d

Environment (please complete the following information):

  • OS: Linux 4.4 Ubuntu 16.04 64bit
  • Docker: Docker version 18.03.1-ce, build 9ee9f40
  • System:
rust    | Bootstrap Startup
rust    | CPU
rust    |       Model:  Intel(R) Atom(TM) CPU C3955 @ 2.10GHz
rust    |       Cores:  4
rust    |       Memory: 3948 MB
rust    | GPU
rust    |       Model:  Null Device
rust    |       API:    NULL 1.0 [1.0]
rust    |       Memory: 128 MB
rust    |       SM:     30
rust    | Process
rust    |       Memory:   0 MB
rust    | Mono
rust    |       Collects: 17
rust    |       Memory:   1 MB
rust    | Manifest Metadata Loaded
rust    |       12612 pooled strings
rust    |       14 mesh colliders
rust    |       5721 prefab properties
rust    |       388 effect categories
rust    |       656 entity names
rust    |       86 skinnable names

docker-compose.yaml:

version: '2'

services:
  # HTTPS-ReverseProxy
  rust:
    image: blacklabelops/rust-gameserver
    container_name: rust
    ports:
      - '28015:28015'
      - '28015:28015/udp'
      - '28016:28016'
    volumes:
      - rust_data:/steamcmd/rust
    environment:
      - 'TZ=Europe/Berlin'
      - 'RUST_SERVER_STARTUP_ARGUMENTS=-batchmode -load +server.secure 1'
      - 'RUST_SERVER_IDENTITY=docker'
      - 'RUST_SERVER_SEED=12345'
      - 'RUST_SERVER_NAME=Rust Server [DOCKER]'
      - 'RUST_SERVER_DESCRIPTION=This is a Rust server running inside a Docker container!'
      - 'RUST_SERVER_URL=https://hub.docker.com/r/didstopia/rust-server/'
      - 'RUST_SERVER_BANNER_URL='
      - 'RUST_RCON_WEB=1'
      - 'RUST_RCON_PORT=28016'
      - 'RUST_RCON_PASSWORD=docker'
      - 'RUST_UPDATE_CHECKING=1'
      - 'RUST_UPDATE_BRANCH=public'
      - 'RUST_START_MODE=0'
      - 'RUST_OXIDE_ENABLED=0'
      - 'RUST_OXIDE_UPDATE_ON_BOOT=1'
      - 'RUST_SERVER_WORLDSIZE=3500'
      - 'RUST_SERVER_MAXPLAYERS=500'
      - 'RUST_SERVER_SAVE_INTERVAL=600'
    restart: unless-stopped

volumes:
  rust_data:
    external: false

Investigate Windows support

Look at running the container on Windows and see what the major pain points there are, especially regarding volumes (filesystem, paths and permissions).

Can't acces any rcon command

Hi,

when i'm trying to run any rcon command with :
docker exec rust rcon ANYCOMMAND
I got this :

{ Error: connect ECONNREFUSED 127.0.0.1:28016
    at Object.exports._errnoException (util.js:1022:11)
    at exports._exceptionWithHostPort (util.js:1045:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1087:14)
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 28016 }

When i'm trying to login to the webrcon panel, i've got
Connection was closed - Error 1006

When ingame console i type rcon.login
i've got "invalid command"

here's my startscript :

docker run -it --name rust \
    -p 28015:28015 \
    -p 28015:28015/udp \
    -p 28016:28016 \
    -p 8080:8080 \
    -v /Serv/rust/rust:/steamcmd/rust \
    --env-file /Serv/rust/rust.env \
    didstopia/rust-server

here's my env-file

RUST_SERVER_NAME=NiceNice
RUST_SERVER_DESCRIPTION=oui
RUST_SERVER_URL=blabla.com
RUST_RCON_WEB=1
RUST_RCON_PASSWORD=password
RUST_UPDATE_CHECKING=1
RUST_OXIDE_ENABLED=0
RUST_OXIDE_UPDATE_ON_BOOT=1

is there something i did wrong ?
(cfg folder is empty [suspicious])

thx

Time

The container seems to require some sort of time sync

I'm seeing dates of 2024 & times 04:00 at 21:00 , being reported by Rcon

  1. be able to set time zone (locale)
  2. Be able to turn on & specify NTP inside docker container.

Question: Port 8080

Hello,

I just have a small question about the purpose of Port 8080. In your dockerfile you expose it as a necessary port, but why exactly? What purpose does 8080 serve in this context?

Greetings,
MG

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.