[Support] ich777 - Gameserver Dockers


Recommended Posts

Just now, WellThen said:

I figured as much, I guess that is to be expected since the game is still Early Access. 

Exactly, but it is strange that the Backup stopped working because my Backup runs now flawlessly since I have set up the server.

Link to comment
1 hour ago, blure007 said:

First of all ich777 thank you for all your effort on creating, maintaining and support these!

 

I'm wondering if anyone has been able to run multiple Valheim servers on the same box. I tryign to run two Valheim instances, one running Valheim and another running Valheim plus. They are both pointed the same appdata/steamcmd source. Each have their own Game Port and Game Port Range, 2456-2458 and 2466-2468.

 

The server running on the standard 2456-2458 ports works like a champ, no connection issues and shows up in the public Server browser, peachy.

The server running on 2466-2468 I can try to manual connect using the IP:PORT and I get the connecting screen for about 5 seconds before I get disconnected, never get to the server password prompt. Server appears to be listening to the correct port as I get to the connecting window. Log below

 

Any ideas on a possible cause?


Connecting anonymously to Steam Public...Logged in OK
Waiting for user info...OK
Success! App '896660' already up to date.
---Prepare Server---
---Server ready---
---Starting Backup daemon---
---Start Server---
[S_API] SteamAPI_Init(): Loaded local 'steamclient.so' OK.
CAppInfoCacheReadFromDiskThread took 1 milliseconds to initialize
CApplicationManagerPopulateThread took 0 milliseconds to initialize (will have waited on CAppInfoCacheReadFromDiskThread)
RecordSteamInterfaceCreation (PID 58): SteamGameServer013 /
RecordSteamInterfaceCreation (PID 58): SteamUtils009 /
Setting breakpad minidump AppID = 892970
RecordSteamInterfaceCreation (PID 58): SteamGameServer013 / GameServer
RecordSteamInterfaceCreation (PID 58): SteamUtils009 / Utils
RecordSteamInterfaceCreation (PID 58): SteamNetworking006 / Networking
RecordSteamInterfaceCreation (PID 58): SteamGameServerStats001 / GameServerStats
RecordSteamInterfaceCreation (PID 58): STEAMHTTP_INTERFACE_VERSION003 / HTTP
RecordSteamInterfaceCreation (PID 58): STEAMINVENTORY_INTERFACE_V003 / Inventory
RecordSteamInterfaceCreation (PID 58): STEAMUGC_INTERFACE_VERSION014 / UGC
RecordSteamInterfaceCreation (PID 58): STEAMAPPS_INTERFACE_VERSION008 / Apps
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils003 before SteamAPI_Init succeeded.
RecordSteamInterfaceCreation (PID 58): SteamNetworkingUtils003 /
RecordSteamInterfaceCreation (PID 58): SteamNetworkingSockets008 /

 

I am having this exact issue but I am just trying to run a single server at the default ports.

Link to comment
1 minute ago, ich777 said:

What is the same issue then?

Have you read the second recommended post in this thread at the top?

Disregard me. I was seeing the same log entries and it seemed like my server was not booting. Turns out the issue was Public Server == 0 

 

Dont know how it got changed but setting it to 1 fixed the issue.

  • Like 1
Link to comment
2 hours ago, ich777 said:

Yes, but you do this with the Variable in the 'Show More Settings' section of the Template.

 

I keep this in mind for every container and the Game Port itself has to be set in the GAME_PORT variable that available like mentioned above.

 

 

This is the way you would do it (this is tested and working btw):

grafik.thumb.png.a3e4e22653cc2a5543daed533a251f69.png

 

Thanks for spelling it out for a simpleton like me. The actual deleting of the Port Range setting and recreating the setting did the trick! Thanks again for all the support

  • Like 1
Link to comment
12 hours ago, truetype said:

Hey, I want a script to have Valheim automatically to update if there's an update available. How can I get to simply run the "app_update 896660" command regurlarly? I cannot get the commands to respond. Trying "docker exec -it Valheim app_update 896660" does not work. 

 

I wrote a quick bash script to update the server, it checks the logs from the last reboot and finds the version then checks steamcmd for the latest version. If the SteamCMD is higher it reboots the docker. 

 

Use at your own risk. 

 

#!/bin/bash
current_version=$( docker exec Valheim cat /serverdata/serverfiles/Steam/logs/content_log.txt | grep BuildID | tail -1 | sed "s/^.\+BuildID \([0-9]\+\).*/\1/"| xargs printf '%d' )

new_version=$( curl -s -N -X GET 'https://api.steamcmd.net/v1/info/896660' | jq '.data."896660".depots.branches.public.buildid'| xargs printf '%d' )

if (( $current_version<$new_version ))
then
    docker restart Valheim
else
    echo "Nothing to do here boss"
fi

 

I set it up to run hourly in the user scripts plugin. 

 

If anyone knows a better way to write this please do, I am a bash newbie. 

Link to comment
On 2/9/2021 at 12:21 PM, luckyy said:

Just thought I'd share my experience setting up a Valheim server with this docker app from @ich777(thank you!)

 

You don't need to worry about Steam authentication for Valheim, the default anonymous user can download and host a server (yay!), so no fuss with Steam users or Steam Guard to worry about.

  1. Deploy the docker as provided, leaving username & password blank.
  2. The Server Name field is important, this is how your name will appear in the public server list in Valheim.  (as of this writing there are 7 "Valheim Docker" server names, good luck finding yours!    So choose something unique that you and your friends can find.
  3. World Name is the name of your world, this can be anything, if you wish to import a single-player or self-hosted save file in your docker, this name must be set to the same name/spelling as your save game world.
  4. Save the docker/let it install.
  5. You'll want to make sure your firewall or router has UDP ports 2456-2458 forwarded to your Unraid server's IP so the game can work as intended.

In 10-15 minutes typically you should see your server name in the public server list in Valheim, you're done!

 

 

* if you wish to import a previous save file, you need to make sure the Docker is Stopped first.   Then browse your local computer's profile, typically in "%appdata%\..\LocalLow\IronGate\Valheim\worlds" you will find your save games.

 

You'll want to take a copy of your world files, database, everything named the same as your world name over to your docker data files, by default with this docker settings should be:

\\<your unraid server IP or name>\appdata\valheim\.config\unity3d\IronGate\Valheim\worlds

 

Place your save game files in there, and overwrite any existing newly generated world of the same name with your save game.

 

Start the Docker, wait for it to appear in Valheim, join & play!

 

I hope this was helpful for someone, took a bit to figure out the exact steps to follow :)

 


I've followed these instructions and confirm the docker image is running. I have been troubleshooting some networking on this and find that I am unable to telnet to the docker container like I can with the rest of my containers. Port scan against my firewall with forwarding enabled for said ports shows closed.

For whatever reason it seems the docker image has some firewall that is blocking connections and I'm not quite sure what's causing it.

Link to comment
1 hour ago, Aznflipfoo said:

I have been troubleshooting some networking on this and find that I am unable to telnet to the docker container like I can with the rest of my containers.

To which container are you usually connecting through Telnet?

The Valheim container has no Telnet port you can connect to...

 

1 hour ago, Aznflipfoo said:

Port scan against my firewall with forwarding enabled for said ports shows closed.

This is just normal since Valheim uses a non standard UDP connection protocol or better speaking a proprietary protocol that Port scanners can not detect since it get's no answer from the Valheim server.

 

1 hour ago, Aznflipfoo said:

For whatever reason it seems the docker image has some firewall that is blocking connections and I'm not quite sure what's causing it.

What is the main problem?

Are you not able to connect to the container?

Can you please provide a little bit more information on this, what have you changed in the container template (a screenshot from the template would be helpful).

Also how do you try to connect? Steam Server Browser, in game, LOCALIP:PORT+1, PUBLICIP:PORT+2?

Have you fowarded the ports in your firewall from 2456-2458 UDP?

 

2 hours ago, Legionofone said:

I set it up to run hourly in the user scripts plugin. 

I eventually can integrate this into my container, in a little modified form... I will keep you updated.

  • Like 1
Link to comment

@Legionofone I implemented now a automatic update check of Valheim so it will check every 60 minutes if there are updates available.

 

VALHEIM AUTOMATIC UPDATE:

grafik.thumb.png.e840ebdfa968eb2872cd8654d76f39d3.png

 

By default the automatic update is set to 'true' even if you don't have the value not in your Unraid template it will check every 60 minutes if there is an update availalbe.

Please update the container to get this feature.

 

To get this Variable you have two ways, the first way would to grab a fresh copy off of the CA App and enter the exact same Values as in your existing template or you create the Variable in your existing template:

  1. Go into the template
  2. Click on 'Add another Path, Port, Variable, Label or Device' on the bottom
  3. Choose 'Variable' at the drop-down
  4. As Key enter 'UPDATE_CHECK'
  5. As Value enter 'false' to disable and 'true' (default) to enable the automatic update (without quotes)
  6. At Name you can enter whatever you want for example 'Automatically Update Game' or leave it empty
  7. Click on 'Add'
  8. Click on 'Apply'
  • Like 3
  • Thanks 2
Link to comment
38 minutes ago, ich777 said:

@Legionofone I implemented now a automatic update check of Valheim so it will check every 60 minutes if there are updates available.

 

VALHEIM AUTOMATIC UPDATE:

grafik.thumb.png.e840ebdfa968eb2872cd8654d76f39d3.png

 

By default the automatic update is set to 'true' even if you don't have the value not in your Unraid template.

Please update the container to get this feature.

 

Hey mate, updated the container but still can't see it as an option to disable.

Link to comment
5 minutes ago, skwisgaarz said:

Hey mate, updated the container but still can't see it as an option to disable.

You have to re-pull the template from the CA App (but I think it doesn't updated yet).

 

What you can do instead if you don't want to repull it from the CA App:

  1. Go into the template
  2. Click on 'Add another Path, Port, Variable, Label or Device' on the bottom
  3. Choose 'Variable' at the drop-down
  4. As Key enter 'UPDATE_CHECK'
  5. As Value enter 'false' to disable and 'true' (default) to enable the automatic update (without quotes)
  6. At Name you can enter whatever you want for example 'Automatically Update Game' or leave it empty
  7. Click on 'Add'
  8. Click on 'Apply'

 

Hope this helps. ;)

 

EDIT: If you don't want to disable it you don't have to create this entry because it's enabled by default.

Link to comment
26 minutes ago, ich777 said:

You have to re-pull the template from the CA App (but I think it doesn't updated yet).

 

What you can do instead if you don't want to repull it from the CA App:

  1. Go into the template
  2. Click on 'Add another Path, Port, Variable, Label or Device' on the bottom
  3. Choose 'Variable' at the drop-down
  4. As Key enter 'UPDATE_CHECK'
  5. As Value enter 'false' to disable and 'true' (default) to enable the automatic update (without quotes)
  6. At Name you can enter whatever you want for example 'Automatically Update Game' or leave it empty
  7. Click on 'Add'
  8. Click on 'Apply'

 

Hope this helps. ;)

 

EDIT: If you don't want to disable it you don't have to create this entry because it's enabled by default.


Thanks mate, done. Out of curiosity, when set to true would it update the game even while the docker is running, potentially kicking people off the server?

Link to comment
1 minute ago, skwisgaarz said:

Thanks mate, done. Out of curiosity, when set to true would it update the game even while the docker is running, potentially kicking people off the server?

Exactly that is what the warning says in the screenshot above.

 

But I would leave it at true since then you have always the latest version and the server should save successfully (should because we are talking about Valheim, alpha, bugs,... do I have to say more... :D ).

Link to comment
2 minutes ago, ich777 said:

Exactly that is what the warning says in the screenshot above.

 

But I would leave it at true since then you have always the latest version and the server should save successfully (should because we are talking about Valheim, alpha, bugs,... do I have to say more... :D ).


Ha yea I think i'm gonna leave it on false not to risk it, who knows what could happen. When I see an update on my PC client i'll just restart the server to force the update.

  • Like 1
Link to comment
5 hours ago, ich777 said:

@Legionofone I implemented now a automatic update check of Valheim so it will check every 60 minutes if there are updates available.

 

VALHEIM AUTOMATIC UPDATE:

grafik.thumb.png.e840ebdfa968eb2872cd8654d76f39d3.png

 

By default the automatic update is set to 'true' even if you don't have the value not in your Unraid template it will check every 60 minutes if there is an update availalbe.

Please update the container to get this feature.

It would be great if we could have a field to modify a cronjob value to run this script. Dont know if it's too hard to implement.

 

So we could tell the container yo check if there is an update, but hey, dont push my folks out. Wait to restart yourself till 5am.

 

E.g. in my particular case have mates from Argentina and would like to adapt the restarts to when they're not playing.

Edited by blinkito
Link to comment
7 minutes ago, blinkito said:

It would be great if we could have a field to modify a cronjob value to run this script. Dont know if it's too hard to implement.

I won't implement any further things to this container regarding to the update, if you don't want to use it then don't, you can't easily integrate Cron into a container.

 

That what I do is currently for the folks here around and these are only workarounds, don't forget that things are only workarounds and should be solved by the developer of the game.

 

7 minutes ago, blinkito said:

So we could tell the container yo check if there is an update, but hey, dont push my folks out. Wait to restart yourself till 5am.

Then set a daily restart of the container at 5am so the container will restart and check for a update anyways.

Do a Cron job with the User Scripts plugin.

 

7 minutes ago, blinkito said:

E.g. in my particular case have mates from Argentina and would like to adapt the restarts to when they're not playing.

Yes, but one way would to tell them if they get kicked a update is happening and they know what to do and wait for about 5minutes.

Link to comment
20 minutes ago, ich777 said:

I won't implement any further things to this container regarding to the update, if you don't want to use it then don't, you can't easily integrate Cron into a container.

 

That what I do is currently for the folks here around and these are only workarounds, don't forget that things are only workarounds and should be solved by the developer of the game.

 

Then set a daily restart of the container at 5am so the container will restart and check for a update anyways.

Do a Cron job with the User Scripts plugin.

 

Yes, but one way would to tell them if they get kicked a update is happening and they know what to do and wait for about 5minutes.

Yes, totally agree with you. It did sound better on my mind than wrote here.

 

I think in my case the best way to achieve this is to run the script with CA-User scripts.

 

I apologize 😞

Edited by blinkito
  • Like 1
Link to comment
6 hours ago, ich777 said:

VALHEIM AUTOMATIC UPDATE:

grafik.thumb.png.e840ebdfa968eb2872cd8654d76f39d3.png

 

By default the automatic update is set to 'true' even if you don't have the value not in your Unraid template it will check every 60 minutes if there is an update availalbe.

Please update the container to get this feature.

 

 

So I saw the update to the docker this morning and applied it.  Shouldn't I be able to see that when I edit the Docker container?  Even clicking on Advanced view I don't see the Automatically Update Game key anywhere on the container.

 

On another note, I'd just like to say a huge THANK YOU for making / maintaining this docker AND answering all the questions and being 1000% active in this thread. 

 

If it wasn't for you, I wouldn't have had this up and running on my UnRaid system.  My Step-Dad and I are having a blast on my Server's World.  I haven't been back to my "single player" World since finding your Docker.

  • Like 1
Link to comment
1 minute ago, ich777 said:

No.

Please read this post:

 

 

 

 

I read that post earlier.  In fact, I read every post here. 

 

Since I figured an update was waiting on the container, and then you referenced the update here - one would assume that the update that was pulled down included the update you were talking about.  So than there was an update to the container that isn't the update that included the "automatically check for updates"

 

(that's a lot of updates in that paragraph)

Link to comment
3 minutes ago, CoZ said:

I read that post earlier.  In fact, I read every post here. 

That's good but most people won't come here until they have a problem and won't read the post...

So I enabled it by default so even if you don't have the variable in the template it's enabled and I also think most people won't notice that something has changed... :P

Link to comment
Just now, ich777 said:

That's good but most people won't come here until they have a problem and won't read the post...

So I enabled it by default so even if you don't have the variable in the template it's enabled and I also think most people won't notice that something has changed... :P

I noticed you had typed out instructions on how to add it manually if you didn't feel like waiting for the new Docker to show up in C.A.  So after the update pulled down I went hunting for the Key you outlined in that manually update figuring it would be present once I tried to edit the container.  I'm only pointing this out since I noticed some people running around with torches and pickaxes getting ready to storm the castle gates in revolt over you adding that feature.  If it was able to be user disabled upon editing the container it might keep everyone happy.  The automatic update check doesn't bother me since it's only two of us playing - if it kicks us out, to update, what is the worst that would happen? 

Link to comment
3 minutes ago, CoZ said:

if it kicks us out, to update, what is the worst that would happen?

The worst that could happen is that you get the world destroy bug, but I think this should be fixed, I restarted my container that many times and experienced never something like a progress loss or something similar.

 

But the worst thing that could happen is that you have to restore a backup from the Backup folder, but I don't think this would happen, I even tried it out today with a "fake" update when playing and the server saved the world just fine, updated and started again without any progress loss...

 

Should I disable it by default?

I can edit the post so that it says that it isn't enabled by default and also include the steps if someone want's to activate it...

Link to comment
3 minutes ago, ich777 said:

Should I disable it by default?

 

I would leave it enabled by default and give the user the option to disable it by editing the container to turn off that feature if they want.  This way everyone is on the same exact container version.  Going forward there might be more bugs and then you'll have to troubleshoot which version of the container the person is on because Person "X" didn't want to update due to the automatic update being forced on them with no way to disable / enable it.

 

Just my .2c

Edited by CoZ
more info added
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.