lloesche / valheim-server-docker

Valheim dedicated gameserver with automatic update, World backup, BepInEx and ValheimPlus mod support
https://hub.docker.com/r/lloesche/valheim-server
Apache License 2.0
1.95k stars 272 forks source link

Option to disable update on start #426

Open lostmsu opened 2 years ago

lostmsu commented 2 years ago

It takes forever to download (like ~1MB/minute, so ~30 minutes).

I don't need it to update immediately upon restart in most cases because if the restart is manual I generally want to resume playing immediately.

It would help immensely if it only updated ever 15 minutes (like it does now) and only when idle.

Or perhaps just make it update only if it has been idle for at least 5 minutes (so at least 5 minutes from start).

lostmsu commented 2 years ago

P.S. my Internet connection is upwards of 500Mbits/s. I don't know why it takes valheim-updater half an hour to download the update. Maybe it is a limitation on the Steam's side.

lloesche commented 2 years ago

Are there that many Valheim updates? Generally it just checks if there's an update and then downloads it. Which makes sense because your Steam client will do the same.

If there is no update available the update check should complete within seconds. If it doesn't the setup is broken in one way or another.

Have you volume mounted the /opt/valheim directory to some directory on the host? If not it would (re)download the entire 1GB Valheim server on every restart. Though even that should only take like a minute or less on a 500Mbps connection.

lostmsu commented 2 years ago

Have you volume mounted the /opt/valheim directory to some directory on the host?

I do not understand this. I am using the default configuration with systemd, which has these docker parameters:

-v /etc/valheim:/config:Z \
-v /opt/valheim:/opt/valheim:Z \
lloesche commented 2 years ago

I am using the default configuration with systemd, which has these docker parameters:

-v /etc/valheim:/config:Z \
-v /opt/valheim:/opt/valheim:Z \

That's perfect, you should be good, data should be persisted across restarts. Starting the container and doing the update check should be a matter of seconds if there is no update to be downloaded. And even if there was an update that replaces the entire server, it's only 1GB total, so on your 500 Mbps connection should take few minutes max. even on a bad day. Steam is generally pretty good bandwidth wise. How is it on your desktop PC? Slow as well? The Docker uses the same Steam servers as the Steam desktop app. If it's fast on the Desktop but slow in the Docker I'd try debugging the Docker networking setup. I'd probably start by downloading and running steamcmd on the host system and see if the issue exists there as well, and then use one of the steamcmd Docker containers (there are a bunch on Docker Hub) and see how download performance is inside another container. That's about the only idea I have for narrowing down where the issue might be. You could also try to build workarounds and disable updates on startup / run them less often, but I'd rather figure out the root cause of the issue. In the environment you described the update check should take no time at all, if it doesn't I'd want to figure out why.

ericljiang commented 2 years ago

I would love the option to disable the update script on start up. It only takes about 8 seconds for me when there is no update to download but I am trying to cut down the launch time as much as possible so 8 seconds out of ~30 is significant. For the record in my logs it looks like it does not download anything if there is no new update but it does verify the installation.