ARK: Survival Ascended

ARK: Survival Ascended

View Stats:
Manu Oct 31, 2023 @ 5:10am
3
3
Dedicated Server on Linux via Docker
Hey everyone,

I just built a docker image that allows you to run an ARK: Survival Ascended dedicated server on a Linux VPS in the Cloud.

In case you are a Linux administrator and want to run your own server without going through setting up Wine or Proton, feel free to pull my docker image and have a look at the README of my GitHub repository:

https://github.com/mschnitzer/ark-survival-ascended-linux-container-image

If you need help, feel free to create an issue on GitHub or ask here.
< >
Showing 16-30 of 211 comments
normative Nov 1, 2023 @ 5:03pm 
Thank you, I'd looked into containers as an option but the internet kept telling me you can't run Windows containers on Linux.
Manu Nov 1, 2023 @ 5:05pm 
Originally posted by Feynt:
Originally posted by BumpInTheNight:
Next noob question, during the viewing of the logs when trying to launch my docker server I saw this line:
Loading Steam API...dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
OK


Ignoraeble or something is missing?
This means you haven't made the appropriate directories in the spot you're running the docker-compose.yml from. All the entries under the "volumes" section need to be created (the stuff on the left side is the "host" side, the directories that need to be made)

This can really be ignored, that's a typical error reported for dedicated servers based on Steam running on Linux. This library is not needed to run the server.

I encounter this error in a private UE5 project running a dedicated server through Steam, but the server works just fine.
Manu Nov 1, 2023 @ 5:06pm 
Originally posted by normative:
Thank you, I'd looked into containers as an option but the internet kept telling me you can't run Windows containers on Linux.

It is a Linux container running Proton to execute the Windows binary files of ASA. It works and it is also stable. Running my server since 2 days without any crash (so since I launched it).
BumpInTheNight Nov 1, 2023 @ 5:32pm 
Originally posted by Manuel:
Originally posted by BumpInTheNight:
Next noob question, during the viewing of the logs when trying to launch my docker server I saw this line:
Loading Steam API...dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
OK


Ignoraeble or something is missing?

You can ignore that error.


Originally posted by BumpInTheNight:
Oh and the next one: I edited the docker-compose.yml to want to use ports 7778 and 27015, but when I launch the docker and then run "netstat -tunlp" its showing that my host is listening on 7777 and 27020.

There's gotta be another place that's define those ports that's over-riding what the docker compose file is declaring yah?

Once you edited the docker compose file, you need to run `docker-compose up -d` again to let docker-compose recreating your container. If you just restart it using `docker restart $container` the changes in the compose file won't be taken into consideration as docker-compose is a separate tool.

I appreciate it! Okay using the -d on the compose now I can see netstat showing its listening on the desired ports so that's great, and I know my router is forwarding those two ports to the server's IP but I can't see my server in the client's server for unofficial dedicated servers /w password but that's something I guess I gotta figure out.

Do you know of any way to poke the server's own logs so I could maybe see what it actually launched with arguments wise? I'm wondering if it picked up the start-parameters file content correctly so I can be sure the server's name is what I think it is.
Feynt Nov 1, 2023 @ 5:45pm 
Originally posted by Manuel:
Originally posted by Feynt:
This means you haven't made the appropriate directories in the spot you're running the docker-compose.yml from. All the entries under the "volumes" section need to be created (the stuff on the left side is the "host" side, the directories that need to be made)

This can really be ignored, that's a typical error reported for dedicated servers based on Steam running on Linux. This library is not needed to run the server.

I encounter this error in a private UE5 project running a dedicated server through Steam, but the server works just fine.
Ah, interesting. Usually when I see a "no such file or directory" error it means a folder isn't accessible.
BumpInTheNight Nov 1, 2023 @ 6:08pm 
Progress! But not success

I found the server logs and can see its launching as "Server: "ARK (6 digit number)" and I can search and find it with my client but when I attempt to join and provide a password (the one I want or some random garbage) it gives me a pretty long reply of along the lines of Join Failed with a bunch of Net driver type info that includes my proper WAN IP and such.

Not sure how to proceed here, but I think the important part is probably figuring out why it won't take the start-parameters file info like the SessionName="MyWantedServerName" and that I can't search for that and find it
Manu Nov 2, 2023 @ 8:44am 
Originally posted by Feynt:
Ah, interesting. Usually when I see a "no such file or directory" error it means a folder isn't accessible.

I think this .so is required for the Steam client. I have read something about it in Valve's docs, might be run on that though.




Originally posted by BumpInTheNight:
Progress! But not success

I found the server logs and can see its launching as "Server: "ARK (6 digit number)" and I can search and find it with my client but when I attempt to join and provide a password (the one I want or some random garbage) it gives me a pretty long reply of along the lines of Join Failed with a bunch of Net driver type info that includes my proper WAN IP and such.

Not sure how to proceed here, but I think the important part is probably figuring out why it won't take the start-parameters file info like the SessionName="MyWantedServerName" and that I can't search for that and find it

What's your setup? You're hosting the server in your local network on a Linux machine and attempt to connect to it through your Windows client? Machines in the same subnet?

Also try to connect directly by open the console and enter the IP address of your Linux server by typing "open x.x.x.x" in the console. Console can be opened by pressing ` (backticks) if you're on an American layout. Friends of mine using a German layout were experiencing issues when they attempted to open the console. Might be a layout thing.

Regarding the session name: Could you paste how it looks like? Also try as an alternative to put the session name in the GameUserSettings.ini by adding a section called "[SessionSettings]" and adding a key called "SessionName".

Could look like this:

[SessionSettings]
SessionName=My cool server
Last edited by Manu; Nov 2, 2023 @ 8:45am
Feynt Nov 2, 2023 @ 12:20pm 
Worth pointing out, even in the GameUserSettings.ini section, SessionName does not like apostrophes. "Feynt's Island" has only caused problems for me. I'll take a guess and say anything but spaces and hyphens ( - ) are inappropriate server name characters, if you're having name issues.
normative Nov 2, 2023 @ 2:02pm 
Originally posted by Feynt:
Worth pointing out, even in the GameUserSettings.ini section, SessionName does not like apostrophes. "Feynt's Island" has only caused problems for me. I'll take a guess and say anything but spaces and hyphens ( - ) are inappropriate server name characters, if you're having name issues.

Try "Feynt\'s Island" and see if that helps. Some chars are interpreted by the shell whether you like it or not and you have to 'escape' them by putting a \ in front, so the shell interprets it as plain text. Normally a ' would explicitly tell the shell 'what comes next is a string, don't assess it for commands'.
Feynt Nov 2, 2023 @ 2:46pm 
Yeah, escaping the apostrophe didn't work, either in the command line or via the ini file.
normative Nov 2, 2023 @ 2:47pm 
Originally posted by Feynt:
Yeah, escaping the apostrophe didn't work, either in the command line or via the ini file.

Oh well, thanks for trying and letting me know.
BumpInTheNight Nov 2, 2023 @ 3:01pm 
Originally posted by Manuel:
What's your setup? You're hosting the server in your local network on a Linux machine and attempt to connect to it through your Windows client? Machines in the same subnet?

Also try to connect directly by open the console and enter the IP address of your Linux server by typing "open x.x.x.x" in the console. Console can be opened by pressing ` (backticks) if you're on an American layout. Friends of mine using a German layout were experiencing issues when they attempted to open the console. Might be a layout thing.

Regarding the session name: Could you paste how it looks like? Also try as an alternative to put the session name in the GameUserSettings.ini by adding a section called "[SessionSettings]" and adding a key called "SessionName".

Could look like this:

[SessionSettings]
SessionName=My cool server

Yep a Ubuntu linux VM with this container running within, I deduced its networking related I get the error that people are talking about in this thread when I connect to the server through the server search function:
https://steamcommunity.com/app/2399830/discussions/0/3881599433106449323/?ctp=4

One thing I thought of is I was using non-typical ports (7778 and 27015) so I opened up the typical 7777 & 27020 on the router to forward and changed the server's values and the docker compose, now it doesn't give me that odd looking timeout but it just times out after 30 seconds after waiting to join the server after putting in the password.

I ran a tcpdump on the host and I saw no comms at all coming to the ark server.

So I tried the console 'open:myserverInternalIP:7777' and I can connect (...without a password prompt?!) and I saw the network traffic between the server and my desktop in tcpdump along with the server's log to confirm that I was connecting to it.

So now I'm at a loss, but for different reasons.
Manu Nov 2, 2023 @ 3:18pm 
Originally posted by BumpInTheNight:
Originally posted by Manuel:
What's your setup? You're hosting the server in your local network on a Linux machine and attempt to connect to it through your Windows client? Machines in the same subnet?

Also try to connect directly by open the console and enter the IP address of your Linux server by typing "open x.x.x.x" in the console. Console can be opened by pressing ` (backticks) if you're on an American layout. Friends of mine using a German layout were experiencing issues when they attempted to open the console. Might be a layout thing.

Regarding the session name: Could you paste how it looks like? Also try as an alternative to put the session name in the GameUserSettings.ini by adding a section called "[SessionSettings]" and adding a key called "SessionName".

Could look like this:

[SessionSettings]
SessionName=My cool server

Yep a Ubuntu linux VM with this container running within, I deduced its networking related I get the error that people are talking about in this thread when I connect to the server through the server search function:
https://steamcommunity.com/app/2399830/discussions/0/3881599433106449323/?ctp=4

One thing I thought of is I was using non-typical ports (7778 and 27015) so I opened up the typical 7777 & 27020 on the router to forward and changed the server's values and the docker compose, now it doesn't give me that odd looking timeout but it just times out after 30 seconds after waiting to join the server after putting in the password.

I ran a tcpdump on the host and I saw no comms at all coming to the ark server.

So I tried the console 'open:myserverInternalIP:7777' and I can connect (...without a password prompt?!) and I saw the network traffic between the server and my desktop in tcpdump along with the server's log to confirm that I was connecting to it.

So now I'm at a loss, but for different reasons.

Does the server have multiple network interfaces? e.g. multiple IPv4 addresses?
BumpInTheNight Nov 2, 2023 @ 3:29pm 
Originally posted by Manuel:
Does the server have multiple network interfaces? e.g. multiple IPv4 addresses?

Just the one virtual one (its a VM) and then the internal virtual ones that docker makes itself. I figure if the router port forwarding wasn't working right the server wouldn't even show up in the list in the client and its the same settings I'd used to host many ark:SE servers over the years on linux VMs, adding docker to the mix is new to me this round, as is the ASA of course.

I was also thinking and tried using the console open command to try to reach the server through my router using its LAN address of 192.168.1.1 (no go just timed out cool I doubt the forwarding is listening on that interface any ways), but when I tried using my WAN IP I got that other timeout error with all the extra right away.

I'm wondering if the ASA method is trying to direct my desktop to come at the server from the external IP and my router is slapping down that silly traffic. You'd figure more people would be posting about stuff like that if it was the case.

Let me also just vent for a sec on how stupid it was for Wildcard to name the two games so similarly because its really hard to weed out server trouble shooting for ASE vs ASA, aaargh.
BumpInTheNight Nov 2, 2023 @ 3:49pm 
Update: I ruled out its the hairpin route, I fired up a VPN on my desktop and came at the server from somewhere in the states and same long time out without the server getting any packets coming to it.

I'll keep trouble shooting but I think I might abandon the container based method just to see if I touch earth with a *yuck* windows based host.

Edit: Another test I opened port forwarding on the router to the server's SSH port and could connect to it no problem via my WAN IP, so hair-pinning through the router works fine.
Last edited by BumpInTheNight; Nov 2, 2023 @ 4:02pm
< >
Showing 16-30 of 211 comments
Per page: 1530 50

Date Posted: Oct 31, 2023 @ 5:10am
Posts: 211