[Support] ich777 - Gameserver Dockers


Recommended Posts

19 hours ago, ich777 said:

Container now fixed, I think they also made it necessary in a recent version to have the library 'libsndio6.1'.

Please update the container, but I would recommend that you delete it completely and also the created folder in the appdata directory and redownload it from the CA App.

 

I also attached a log from my dev machine that runs on 6.8.0 (I made a few empty lines after it says that no modules are found because I simply put the module in the folder and restarted the container).

Tested it with 'Contest Of Champions 0492':

nwnee.log 5.16 kB · 1 download

I'm still getting the same error, although now it seems to be checking twice. I was attempting to use it with the same module, Contest Of Champions 0492.

log.txt

Link to comment
15 hours ago, ich777 said:

I will build a script that you can use so that you could launch it inside a screen session, really don't understand the usecase for that (there are so many apps on the mobile phone or even software on windows/linux so that you can connect to rcon)...

 

Here is the finished script: l4d2.sh

Please download it and place it in your appdata folder (I don't recommend to place it in the same folder as L4D2.

Then go to the template page and create a new Path (update the 'Host Path' where your script physically is - please not that you have to type in 'user.sh' at 'Container Path' and 'l4d2.sh' at 'Host Path' at the end):

screenshot.png.f3a37987602ec4fc21be577cf987c447.png

 

This script should work for most of the 'srcds' containers you can also customize it to your liking (please note that I also included a script for the termination handler - the termination handler is only included in the newer builds and I update the containers in the near future to support this - at the time you can leave the script as it is but please note that if you end the screen session the container will NOT automatically restart if the termination handler is not implemented). EDIT: Updated the L4D2 container to support the termination handler... :D

 

After the container started entirely you can then connect to the screen session by opening a console window for that container and type in: 'su $USER -c "screen -xS &USER"' or simply 'su steam -c "screen -xS steam"' (put also a message in the log how to do that).

 

If you got further questions feel free to contact me. ;)

 

I will look into that.

 

EDIT: No problem here, also attached the log: l4d2.log

Have you changed something in the template itself?

On which Unraid version are you? Have you installed a cache drive in your system? Can you try to change the 'ServerFiles' path to '/mnt/user/appdata/l4d2' (stop the container and delete the old folder for left4dead in the appdata directory befor doing that...)

 

That doesn't work, gdb isn't installed in the containers so there is no output.

But I don't need that output.

 

You want only to bring up the command line?

This should be possible, I will look into it but jsDOS is designed to load a zip file and then start the executable inside the zip, don't know if it would work the way you would like to use it.

Just purged the folder and reinstalled the app from the  community apps plugin again today, same issue - I have been installing to /mnt/user/appdata/l4d2 rather than cache from the start - I am on Unraid 6.8.3 - I can try using my cache drive - pretty sure my appdata folder is set to prefer mode so I will swap that now and see if that helps.

See logs:

 

Update state (0x101) committing, progress: 58.67 (4812218723 / 8202656842)
Update state (0x101) committing, progress: 58.68 (4813019123 / 8202656842)
Update state (0x101) committing, progress: 58.69 (4814223871 / 8202656842)
Update state (0x101) committing, progress: 58.70 (4815004139 / 8202656842)
Update state (0x101) committing, progress: 58.71 (4815629318 / 8202656842)
Update state (0x101) committing, progress: 58.72 (4816202362 / 8202656842)
Update state (0x101) committing, progress: 58.72 (4816703629 / 8202656842)
Update state (0x101) committing, progress: 58.73 (4817122866 / 8202656842)
Update state (0x101) committing, progress: 58.74 (4817962729 / 8202656842)
Update state (0x101) committing, progress: 58.75 (4818946359 / 8202656842)
Update state (0x101) committing, progress: 58.76 (4819688920 / 8202656842)
Update state (0x101) committing, progress: 58.76 (4820238981 / 8202656842)
Update state (0x101) committing, progress: 58.77 (4820707914 / 8202656842)
Update state (0x101) committing, progress: 62.82 (5152699145 / 8202656842)
Update state (0x101) committing, progress: 62.84 (5154537738 / 8202656842)
Update state (0x101) committing, progress: 73.26 (6009561231 / 8202656842)
Update state (0x101) committing, progress: 73.27 (6010194234 / 8202656842)
Update state (0x101) committing, progress: 73.28 (6010693799 / 8202656842)
Update state (0x101) committing, progress: 73.29 (6011708900 / 8202656842)
Update state (0x101) committing, progress: 73.30 (6012476650 / 8202656842)
Update state (0x101) committing, progress: 73.31 (6013542086 / 8202656842)
Update state (0x101) committing, progress: 73.32 (6014328143 / 8202656842)
Update state (0x101) committing, progress: 73.39 (6019990404 / 8202656842)
Update state (0x101) committing, progress: 73.40 (6020942346 / 8202656842)
Update state (0x101) committing, progress: 73.41 (6021653635 / 8202656842)
Update state (0x101) committing, progress: 92.92 (7622095264 / 8202656842)
Update state (0x101) committing, progress: 92.93 (7623095284 / 8202656842)
Update state (0x101) committing, progress: 92.95 (7624106147 / 8202656842)
Update state (0x101) committing, progress: 92.96 (7625166870 / 8202656842)
Update state (0x101) committing, progress: 93.03 (7630646624 / 8202656842)
Update state (0x101) committing, progress: 93.04 (7631921404 / 8202656842)
Update state (0x101) committing, progress: 97.85 (8026301170 / 8202656842)
Success! App '222860' fully installed.
---Prepare Server---
---Server ready---
---Start Server---
Server will auto-restart if there is a crash.
Setting breakpad minidump AppID = 222860
Using breakpad crash handler
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Segmentation fault
Add "-debug" to the /serverdata/serverfiles/srcds_run command line to generate a debug.log to help with solving this problem
Fri 14 Aug 2020 10:30:46 PM BST: Server restart in 10 seconds
Setting breakpad minidump AppID = 222860
Using breakpad crash handler
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Segmentation fault

 

Link to comment

Very odd - I now seem to have it working ok but only when on the cache drive....

Edit - the ask for access via screen for server console is kinda agnostic of the server type - some things will not support rcon and rcon itself is an insecure protocol - I'd rather just login over SSL and deal with things via portainer or via Unraid docker console.

Edited by aterfax
Link to comment
7 hours ago, aterfax said:

Very odd - I now seem to have it working ok but only when on the cache drive....

Edit - the ask for access via screen for server console is kinda agnostic of the server type - some things will not support rcon and rcon itself is an insecure protocol - I'd rather just login over SSL and deal with things via portainer or via Unraid docker console.

Also works if not on the cache drive but you must specify the disk where thegamefiles are, don't use '/mnt/user/appdata/...'

For example if the gamefileare on disk3 then you must enter: '/mnt/disk3/appdata/...' if you don't have it in the appdata folder then for example: '/mnt/disk3/l4d2' then it would also work.

 

Log in over ssl? I think you mean ssh?

Please look at the post above, I've attached a script that you can use to install screen and it will also work for other containers. Some of my containers have screen installed by default since it's needed, like minecraft bedrock (to op a user).

You also can connect via ssh to a unraid or host machine console and connect to the screen session inside the container.

  • Like 1
Link to comment

I do mean over SSL - you can access your docker consoles from the docker page inside Unraid after all or in setups like mine I have access to all running dockers via a portainer instance being hosted with SSL protection.

I was using /mnt/user/appdata/l4d2 before getting it working on the cache drive- is there a reason why you cannot run this from an appdata dir like all my other dockers? I really have no idea what could be causing a segfault in /mnt/user/appdata/l4d2 unless the file system is doing something whacky in the background with the cache. E.g. below:

 image.thumb.png.1cd330b8fe181dbb6541b49a3e53573f.png

Edited by aterfax
Link to comment
2 hours ago, aterfax said:

I do mean over SSL - you can access your docker consoles from the docker page inside Unraid after all or in setups like mine I have access to all running dockers via a portainer instance being hosted with SSL protection.

Yes, but you can access also the container console itself in portainer or isn't that enough if you run it with my script that installs screen and everything is needed?

 

2 hours ago, aterfax said:

I was using /mnt/user/appdata/l4d2 before getting it working on the cache drive- is there a reason why you cannot run this from an appdata dir like all my other dockers? I really have no idea what could be causing a segfault in /mnt/user/appdata/l4d2 unless the file system is doing something whacky in the background with the cache. E.g. below:

That is a limitation of Docker itself, some containers need the physical path where the files are (eg Don't Starve, L4D2,...) and some not and that's not a limitation of my containers that's a limitation of the application itself that runs in the container. There are also other containers out there that act as in your case L4D2 but that has with the application itself to do and not the container.

 

Like I've said above you can run the containers from other directorys too but you have to link tho the path where the gamefiles are (/mnt/user is not the physical path this is just 'virtual' path that combines all directorys so that they are in the right spot if you open up a share).

For example:

If you make a new share, let's say 'gameservers' that is forbidden to use the cache and is exclusively on the array the 'virtual' path is /mnt/user/gameserver/... but the real path would be (let's say unraid created this folder on disk3) /mnt/disk3/gameserver/...

 

The same goes for your appdata directory if it's on the array it would be (also let's say it's on disk3) /mnt/disk3/appdata/... even if it's available through /mnt/user/appdata/

(Please also note that if the files are spread over multiple disks this doesn't work)

 

I also have some games on my appdata (which is set to use the cache only) where the path would be /mnt/cache/appdata/... and also got games that are on a Unassigned Drives share where the path is /mnt/disks/DISKNAME/... and even got one game that I've set to be on the array in the folder 'gameserver' (and I also set to use only disk6 in my case) where the path is /mnt/disk6/gameserver/...

 

Hope this makes things clearer.

  • Like 1
Link to comment
37 minutes ago, ich777 said:

Yes, but you can access also the container console itself in portainer or isn't that enough if you run it with my script that installs screen and everything is needed?

 

That is a limitation of Docker itself, some containers need the physical path where the files are (eg Don't Starve, L4D2,...) and some not and that's not a limitation of my containers that's a limitation of the application itself that runs in the container. There are also other containers out there that act as in your case L4D2 but that has with the application itself to do and not the container.

 

Like I've said above you can run the containers from other directorys too but you have to link tho the path where the gamefiles are (/mnt/user is not the physical path this is just 'virtual' path that combines all directorys so that they are in the right spot if you open up a share).

For example:

If you make a new share, let's say 'gameservers' that is forbidden to use the cache and is exclusively on the array the 'virtual' path is /mnt/user/gameserver/... but the real path would be (let's say unraid created this folder on disk3) /mnt/disk3/gameserver/...

 

The same goes for your appdata directory if it's on the array it would be (also let's say it's on disk3) /mnt/disk3/appdata/... even if it's available through /mnt/user/appdata/

(Please also note that if the files are spread over multiple disks this doesn't work)

 

I also have some games on my appdata (which is set to use the cache only) where the path would be /mnt/cache/appdata/... and also got games that are on a Unassigned Drives share where the path is /mnt/disks/DISKNAME/... and even got one game that I've set to be on the array in the folder 'gameserver' (and I also set to use only disk6 in my case) where the path is /mnt/disk6/gameserver/...

 

Hope this makes things clearer.

Many thanks for the explanation - I was not aware that certain things would have issues with the virtual paths as it were.

The script for L4D you sent me works great and starts everything in a screen which is super.

In terms of screen / tmux support for gameservers - I have gotten quite used to using https://linuxgsm.com/  which keeps each server console in its own tmux and has a robust logging setup and a lot of support for many game servers. The access to the console via SSH or if in a docker potentially via the Unraid or portainer console is certainly my preference to RCON given RCON's shortcomings.

The developer (Dan Gibbs) has actually been looking for someone able to maintain / make a docker from his project for some time - so you might find working with his project easier to maintain / supports more game server types? His solution as it stands is excellent supporting automatic install of plugins etc...

I'd love to see a collab!

Link to comment
14 minutes ago, aterfax said:

The script for L4D you sent me works great and starts everything in a screen which is super.

You can also modify the script a little bit to work with my other containers if there is no screen session (you also can add SSH and connect to it directly).

 

15 minutes ago, aterfax said:

In terms of screen / tmux support for gameservers - I have gotten quite used to using https://linuxgsm.com/  which keeps each server console in its own tmux and has a robust logging setup and a lot of support for many game servers.

That's what a container is it run's everything as own dedicated process, also containers itself has robust logging but you have to configure it for yourself but and once it works it also very robust. ;)

 

22 minutes ago, aterfax said:

The access to the console via SSH or if in a docker potentially via the Unraid or portainer console is certainly my preference

You can also connect to a screen session directly from the Unraid SSH console with this command: 'docker exec -u steam -ti [Name of your Container] screen -xS steam'

 

24 minutes ago, aterfax said:

The developer (Dan Gibbs) has actually been looking for someone able to maintain / make a docker from his project for some time - so you might find working with his project easier to maintain / supports more game server types? His solution as it stands is excellent supporting automatic install of plugins etc...

I'm sorry but that will not happen since I've got also about 100 (or I think it could be a few more than 100 with a few not released yet) containers now and the list is getting longer and longer and maintain everything is really not that easy... Just look at this thread... :D

 

If someone asks for auto plugins or something (for example Conan Exiles has the ability to install plugins with my container automatically or ARK also has this builtin natively with a command line switch) it should be also possible to just implement anything afterwards with a script that I wrote for you and even if that's too complicated I can look into it and can implement it in the container itself.

 

Screen/Tmux is not my preferred way of running game servers (I keep my containers as lightweight and uncomplicated as they can be).

Just think of another solution for your case for example:

Install the Debian-Buster container from the CA Apps and reverse proxy it through with LetsEncrypt and secure it with htpasswd (a tutorial for that and template configuration should be on the docker page or on github my username is also 'ich777') and you have a full Linux environment available through https simply everywhere a webbrowser is running (so you can connect to your internal network - Unraid, Portainer,...) even open up a console and ssh to whatever you want, you even can mount the logs inside the Debian-Buster container in a subdirectory for direct access.

 

This is the way I connect to my home network if I'm on the go and the best thing is that you don't need any kind of VPN to your home since it's running with noVNC over https (sometimes I even create new containers like Neverwinternights Enhanced Edition or MagicMirror2 in the Debian Container becaus it's having everything in it and if it doesn't I grab it from my home network).

  • Like 1
Link to comment
On 8/14/2020 at 6:59 AM, ich777 said:

Have you restarted the container after putting 'Contest Of Champions 0492' in it?

Have you changed the path from /mnt/cache/appdata/... to /mnt/user/appdata/...?

I had forgotten to change the path to use user instead of mnt.

 

Everything is working now!

 

Thank you for putting up with my newbie questions and helping me out!

  • Like 1
Link to comment
17 hours ago, Pegasus029 said:

Hallo ich benutze den Docker für den Ark Server von ich777 nun ist die frage wie mache ich Dort ein Server update ???

Bitte fragen auf deutsche ins deutsche unterforum und einfach denjenigern markieren mit @ und seinem namen.

Einfach den container neu starten, wenn das nicht funktioniert Validate auf "true" stellen.

Bitte beachte aber das die linux version meistens ein wenig hinterherhinkt.

Link to comment

Startet denn dein minecraft basic server Container bei nem crash auch immer den server automatisch neu?

oder führt den save-all befehl in intervallen aus?

ich möchte nämlich gerne zu dem container wechseln da ich zurzeit (seit einiger zeit) MineOs-Node benutze und es sehr instabil läuft und die Server dauernt crashen (speziell server die auf 1.12.2 laufen.)

Edited by Cornflake
Link to comment
2 minutes ago, Cornflake said:

Startet denn dein minecraft basic server Container bei nem crash auch immer den server automatisch neu?

oder führt den save-all befehl in intervallen aus?

ich möchte nämlich gerne zu dem container wechseln da ich zurzeit (seit einiger zeit) MineOs-Node benutze und es sehr instabil läuft und die Server dauernt crashen (speziell server die auf 1.12.2 laufen.

Bitte auch an dich, fragen auf deutsch gehören ins deutsche unterforum, markier mich einfach mit @ und ich777.

Zur 1. Frage: Ja sollte, kommt aber auch immer auf den crash drauf an (wenn der prozess java abstürzt statet der container neu - wenn der crash aber den java befehl noch weiter laufen lässt dann nicht ist aber in den wenigsten fällen so).

Wie meinst das mit dem save-all Befehl (du kannst prinzipiell alles mit dem container realisieren da du das startscript anpassen kannst und den save all befehl zeitgesteuert ausführen kannst hab zum besipiel bei meinem MinecraftBedrockServer ein script am laufen das ihn immer um mitternacht neu startet).

Link to comment
2 hours ago, Cornflake said:

Okay, I'm sorry.

 

Thanks for that fast reply.

I dont know how to edit the startscript, that reboot on midnight sounds good, how to do it? 

Here is the restart script for the MinecraftBasicServer: minecraftbasicserver.sh

 

Read a few posts above how to attach it to the container (in your case 'minecraftbasicserver.sh' has to be the path '/opt/scripts/user.sh' in the container - read below or better speaking above how to do this):

 

If you got any further questions feel free to ask. ;)

Link to comment
On 5/9/2020 at 7:37 AM, Vagus said:

Hi Ich777! Managed to get my Avorian server up and running successfully, but now I'm having difficulty running the Arma 3 server.

 

I am having some issues grabbing a log full log, but this is a snippet which I feel has the error that's stopping the server from running:

 

 

Just wondering if this ever got fixed?
I seem to be having the same sort of issue.

 

I have my gaming_appdata on a separate drive as a share, so gaming_appdata = /mnt/disk2

see below my config:

 

image.thumb.png.43e25b6ca9166f09b59b08112f17c8dd.png

...

image.thumb.png.dc3edd0f7b6d6801e383d53ad45cf315.png

 

docker just keeps crashing and auto restarting.

Log attached. (apologize that its RAW)

514cbc197115266e4927c2d722c113d7a3bb8debdf4c3b57022b6175b6b39183-json.log

Link to comment
14 minutes ago, Natcoso9955 said:

Just wondering if this ever got fixed?
I seem to be having the same sort of issue.

 

I have my gaming_appdata on a separate drive as a share, so gaming_appdata = /mnt/disk2

see below my config:

docker just keeps crashing and auto restarting.

Log attached. (apologize that its RAW)

514cbc197115266e4927c2d722c113d7a3bb8debdf4c3b57022b6175b6b39183-json.log 89.22 kB · 0 downloads

Yep, this was the fix:

 

 

On which unraid version are you?

Can you try to change '/mnt/user/gaming_appdata/arma3/...' to '/mnt/disk2/gaming_appdata/arma3/...' both of them - gamefiles and profiles?

 

Is this the first time you try to run the container?

Link to comment
2 minutes ago, ich777 said:

Yep, this was the fix:

 

 

On which unraid version are you?

Can you try to change '/mnt/user/gaming_appdata/arma3/...' to '/mnt/disk2/gaming_appdata/arma3/...' both of them - gamefiles and profiles?

 

Is this the first time you try to run the container?

This is actually what i just started doing, noticed that the files arnt actually showing on mnt/disk2

 

Latest stable release of unraid.

Ill let you know how it goes with directly pointing to disk. :)

Link to comment
2 minutes ago, Natcoso9955 said:

This is actually what i just started doing, noticed that the files arnt actually showing on mnt/disk2

 

Latest stable release of unraid.

Ill let you know how it goes with directly pointing to disk. :)

Please be sure to set in the settings of the share itself to use only disk2 (or disk whatever you want to use).

Otherwise it will eventually spread the files over more disks or place it on a completely different disk.

 

Hope this helps ;)

Link to comment
6 minutes ago, ich777 said:

Please be sure to set in the settings of the share itself to use only disk2 (or disk whatever you want to use).

Otherwise it will eventually spread the files over more disks or place it on a completely different disk.

 

Hope this helps ;)

Yeah it is set, its the only disk used in that share, all my game server stuff goes on disk2 as its a hybrid drive with a faster RPM.

Ive never had issues with other images (terraria, 7d2d, killing floor) all have the files on disk2, just arma being strange. hahaha

 

Still appears to be looping the following:

/opt/scripts/start-server.sh: line 54: 65 Segmentation fault ./arma3server ${GAME_PARAMS}
---Checking if UID: 99 matches user---
usermod: no changes
---Checking if GID: 100 matches user---
usermod: no changes
---Setting umask to 000---
---Checking for optional scripts---
---No optional script found, continuing---
---Starting...---
---Update SteamCMD---
---Update SteamCMD---
Redirecting stderr to '/serverdata/Steam/logs/stderr.txt'
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...Warning: failed to init SDL thread priority manager: SDL not found

OK.
Logging in user 'unreal_server9955' to Steam Public ...
Logged in OK
Waiting for user info...OK
---Update Server---
Redirecting stderr to '/serverdata/Steam/logs/stderr.txt'
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...Warning: failed to init SDL thread priority manager: SDL not found

OK.
Logging in user 'unreal_server9955' to Steam Public ...
Logged in OK
Logged in OK
Waiting for user info...OK
Success! App '233780' already up to date.
Waiting for user info...OK
Success! App '233780' already up to date.
---Prepare Server---
---server.cfg found...
---Start Server---
18:23:41 Could not enable linux core dumps. Error 1 - �

 

Link to comment
2 minutes ago, Natcoso9955 said:

Yeah it is set, its the only disk used in that share, all my game server stuff goes on disk2 as its a hybrid drive with a faster RPM.

Ive never had issues with other images (terraria, 7d2d, killing floor) all have the files on disk2, just arma being strange. hahaha

 

Still appears to be looping the following:

 

Is it looping again? Are the files now on disk2?

This is not strictly speaking an error if doesn't loops because it only says that if there is a crash it can't dump it...

 

If it's looping again I will try this later on my Unraid server, please report back.

Link to comment
36 minutes ago, Natcoso9955 said:

Yes files now on disk2 directly.

Yeah its looping.

Let me know if you need anything from me to test, etc.

Please update the container or delete and repull it from the CA App, now it should work without any issues.

I think I made a mistake the last time I updated the container and deleted one line in the startup script... :P

 

Please report back.

Link to comment
On 8/17/2020 at 1:58 PM, ich777 said:

Here is the restart script for the MinecraftBasicServer: minecraftbasicserver.sh

 

Read a few posts above how to attach it to the container (in your case 'minecraftbasicserver.sh' has to be the path '/opt/scripts/user.sh' in the container - read below or better speaking above how to do this):

 

If you got any further questions feel free to ask. ;)

Thank you very much, i will try it out :D

  • Like 1
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.