arkmanager / ark-server-tools

Set of server tools used to manage ARK: Survival Evolved servers on Linux
MIT License
678 stars 143 forks source link

Support checking for mod updates without a steam workshop dir #1234

Open hyperbolic2346 opened 1 year ago

hyperbolic2346 commented 1 year ago

I am trying to use arkmanager in a docker container that is sharing volumes with other servers in a cluster. The goal is to have a single instance in charge of updating the server and mods, but other servers are starting and failing to find mods because they haven't completed downloading on the server doing the updating. I was hoping to use arkmanager checkmodupdate to see if any updates were required, but this runs into the issue that the docker container running the command doesn't have the directory /home/steam/Steam/steamapps/workshop or equivalent.

I did some preliminary digging and it looks like this is only used for messages to get the mod name. Could something be exposed to see if the server is ready to go without access to the workshop directory? Is there a command I could use available already?

For reference, the original problem is being tracked here

klightspeed commented 1 year ago

The only check that could be done without the steam workshop directory would be when the mod was last updated. It won't be able to check whether the extracted mod is up-to-date.

If all mods are already up to date (comparing the time_updated returned by http://api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetails/v1?itemcount=1&publishedfileids[0]={modid} with either the timestamp in the {modid}/__modversion__.info file or the modification of the {modid}.mod file), then checkmodupdate shouldn't access the steam workshop directory.

Perhaps I could add an option to skip the steam workshop directory checks in checkmodupdate, and only report whether the timestamps of the installed mods match the timestamps on the steam workshop.

klightspeed commented 1 year ago

4f718d20d010563587877c11a0a1a8037a533867 adds a --skip-workshop-dir option to arkmanager checkmodupdate, which skips the workshop directory check and only compares the installed mod timestamp to the published mod timestamp.

DrPsychick commented 1 year ago

Great, thank you for the opening this issue @hyperbolic2346. I just tested it and it looks like it works!

DrPsychick commented 1 year ago

I have updated my base image to build a latest-master tag with the master branch from arkmanager and successfully tested this. https://github.com/SickHub/arkserver. Just waiting for the next arkmanager release now ;)

klightspeed commented 1 year ago

v1.6.62 includes this.