#Mornedhels Proton Docker Image Testing
1 messages Β· Page 1 of 1 (latest)
Hey, I'd be willing to help / login as well, as I'm interested in a Proton based image as well. I just can't go far in the game as I haven't played it yet / don't want to be spoiled π
I'll add the server in the Steam server browser now.
jeah same 
I'm just sitting at spawn
Joining now.
My experience with the wine based server images didn't require much to experience massive latency issues for all players.
I'm ingame now π
Latency seems stable. I'm seeing if i can get any of my static group to join.
with one its 230% or something
without proton it was arount 300%
not sure what a increased number of users did to that
running wine i say about 300% idle and went over 500% with 5 on the server then latency would spike for unknown reasons over 4k and upwards of 50k
Sounds good so far!
that would help, ty
Apart from latency I'm still suffering from a different problem with my personal setup, as I'm running https://github.com/jsknnr/enshrouded-server on a kubernetes cluster (like many other game servers). I find the game in the steam and ingame server browser, but when I join it fails and logs the the dreaded "error 4" that lots of people have mentioned.
Both UDP ports are properly configured throughout and I've tried and debugged for two evenings now. I've even talked it through with jsknnr but we are clueless what's happening in the game's binary.
Do you have any advice? I'm thinking of switching to a simple Docker based server for this and would then base it on a image using Proton.
we are around 280% now
Latency is stable on my end at about 34 from Germany (though I'm just idling at spawn).
with k8s you would have a service proxy or something for the UDP traffic flows? i doubt it would have any impact on the setup but thats the only significant difference i can think of unless you went hog wild on 18 boutique features to overcomplicate your k8s environment.
puh, does the enshrouded log file display some more information?
you could also try using a nodeport and see if that works
now grain of salt with me... i am no k8s expert but i did stay at a holiday inn express for what thats worth.
Thanks for reacting guys as this thread is really about the Proton Image π
My setup is very simple: As my cloud load balancer doesn't support UDP, I use services of type NodePort for all my game servers (Factorio, CoD2, Valheim etc. all work). So it's a setup I'm familiar with. Today I tried the following options to simplify the networking even further, but no dice:
- using externalTrafficPolicy: Local on the Service to preserve the client source IP (https://kubernetes.io/docs/tutorials/services/source-ip/)
- using hostPort directly on the Pod and disabling the Service (not recommended but I was wondering if the NodePort / network setup is to blame)
- setting SERVER_IP env variable in the Deployment to the Pods IP instead of the default 0.0.0.0, because people were talking about problems with multiple network interfaces.
The logs always look the same, here's an example:
[OnlineProviderSteam] finished transition from 'Uninitialized' to 'InGame' (current='InGame')!
[Session] 'HostOnline' (up)!
[Session] finished transition from 'Lobby' to 'Host_Online' (current='Host_Online')!
[server] Load deserialization took 3.40 s
[online] Session accepted with peer ( id ID ).
[online] Added Peer #0.
[ecss] Stats: Upd:3,588 (16.7ms) Time:60,006ms Total:21,979ms Max:95ms Avg:6.1ms +:0 -:0 Ent:579 Pred:0
[online] Session failed for peer #0 with error 4.
[online] Removed Peer #0.
what is this test server running on? docker on a vm in your lab running on proxmox or is it hosted in a cloud service? any details on resource allocations to the system?
sorry @regal tartan for the above
you mean the k8s cluster or my server?
i have atleast 1 of my static who will pop on shortly,.
Yeah, sorry about that. I was getting desperate because I can't find the reason in the otherwise perfectly working setup. Let's focus on the test here π
my build is a 16vcpu vm on proxmox with a 1st gen threadripper. 8c16t all allocated off the same numa node along with 24GB of memory. based on your specs i shouldn't have any issues with resource constraint and that was my observation based on performance graphs of the vm and the container.
max peak cpu utilization wasn't more than around 500% with wine.
well its two layers of virtualization - but the proton image should help to reduce the load
one of my static joined so we have 4 players on and latency hasn't changed in any significant way.
i'm impressed with the build @regal tartan . if you are willing to share either the image via dockerhub or the dockerfile/github repo i'd be more than happy to stand it up and start baking it for you. report any issues/concerns and we can revisit on this thread if necessary.
I cleanup the scripts a little and create a new tag for that - proton-dev or something
link it here when you are ready please and thank you.
I'll give it a test run as well π Thanks for your hard work!
Just contacting a friend to possibly join as well.
no problem, will do that
@slender aspen how big was your group?
we have 5.
myself included
k, I would like to see what your cpu stats will be. with 4 its about the same with only 1 connected
I could also start the same server with the old setup and see the numbers
i suspect there was some sort of socket handling issues but i'm no developer either. we had one clown that couldn't figure out how to copy/paste the password properly and every time he tried to join the latency began to climb. minor observation and may only be expected behavior that is amplified by other issues but it was an observation we had.
will do. i'll provide what information i can. my static won't be available all at one time until friday though but we saw issues starting with about 3 players and i can rally that many of them.
nice, so buckle up - the server is shutting down 
There it goes π₯
and it's up again
was wondering what was going on... i was waving my wand around like a pickaxe and failing to mine anything at all π
is this the wine build rather than the previous which was the proton build?
latency seems stable.
i wonder if wine had issues with my nic...
the vnic assigned to the vm... virtio vs e1000. not sure how that would be but spitballing.
could be the double virtualization to increase the impact. Do you use the host cpu settings or does proxmox provide the generic cpu?
host cpu was selected.
k
and double virtualization may have some impact but should not be that significant.
well, than only one way to find out. I prepare the image and ping you here
and it spikes to 400%
thats my thought. give it a go and see how it works.
with 4 users connected
so it increases by around 30%-40% cpu utilization per connection vs around 10%
so for bigger groups defenetly a big improvement
i'm going to punch out and wait eagerly for you ping me. i'll ping back on here once i have the container operating and initial observations.
That's great news π
So thanks for the help 
thank you for yours.
dev image is available dev-proton @slender aspen
Excellent. I'll check it out and report findings. Thank you.
well, I also found the first issue: you have to force an update to work properly
for now: docker compose exec enshrouded supervisorctl start enshrouded-force-update
I've set up a separate and fresh Docker only setup on a Ubuntu 22.04 in Hetzner Cloud and was able to start the server with your new image. Though my old problem still remains, despiting following the advice from here: https://github.com/jsknnr/enshrouded-server/issues/16#issuecomment-1909431315. This is getting really weird. I reused / reimaged the same vm, so maybe somethings wrong with it .. but seems unlikely.
enshrouded | 2024-01-27 16:26:50.149 supervisord: enshrouded-server [online] Session accepted with peer ( id 76561198019022967 ).
enshrouded | 2024-01-27 16:26:50.149 supervisord: enshrouded-server [online] Added Peer #0.
enshrouded | 2024-01-27 16:26:52.961 supervisord: enshrouded-server STEAMPS3 - AsyncTCPSocket created
enshrouded | 2024-01-27 16:26:52.962 supervisord: message repeated 2 times: [ enshrouded-server STEAMPS3 - AsyncTCPSocket created]
enshrouded | 2024-01-27 16:27:05.118 supervisord: enshrouded-server [online] Session failed for peer #0 with error 4.
enshrouded | 2024-01-27 16:27:05.120 supervisord: enshrouded-server STEAMPS3 - AsncTCPSocket destroyed
enshrouded | 2024-01-27 16:27:05.122 supervisord: message repeated 2 times: [ enshrouded-server STEAMPS3 - AsncTCPSocket destroyed]
enshrouded | 2024-01-27 16:27:05.122 supervisord: enshrouded-server [online] Removed Peer #0.
It seems enshrouded uses a whole variety of different ports? Out of sheer desperation I disabled the Firewall for the server and I can login immediately. Here are the ports used. What am I missing?
root@docker-1:~/enshrouded# netstat -tulpn | grep enshrouded
tcp 0 0 IP:46103 0.0.0.0:* LISTEN 3485/enshrouded_ser
udp 0 0 IP:40112 0.0.0.0:* 3485/enshrouded_ser
udp 0 0 IP:15637 0.0.0.0:* 3485/enshrouded_ser
udp 0 0 IP:57279 0.0.0.0:* 3485/enshrouded_ser
udp 0 0 IP:41454 0.0.0.0:* 3485/enshrouded_ser
udp 0 0 IP:34479 0.0.0.0:* 3485/enshrouded_ser
udp 768 0 IP:35017 0.0.0.0:* 3485/enshrouded_ser
udp 0 0 IP:51556 0.0.0.0:* 3485/enshrouded_ser
udp 0 0 IP:51713 0.0.0.0:* 3485/enshrouded_ser
Or am I the only one also using outgoing firewall rules in addition to incoming? π
In your compose file you have a few environment variables. i should be able to adjust the UID/GID and i can find the other password files. i like the CRON but will that update the server binary in the middle of a session?
server appears to be operational. connecting to it now. no issues with creating the container through compose.
eh well, I don't have outgoing rules enabled π
1 clinet connected is running about 250%
the update cron uses the STEAM_API environments to figure that out. If someone is still connected, it skips the update and reties with the next cron
latency is stable with 1 client
if not provided, it forces an update
apparently i have another errand to run... i'll be back in a bit and have the server opened up for testing since my static doesn't seem to be available atm.
well not sure what enshrouded does with those ports. Maybe random communication ports for the clients. But incoming packages need to be the defined ones
if a password is provided it writes it the json file. if a password is not provided in subsequent starts it does not remove it
Or perhaps it would if I didn't comment out the environment assignment in the compose yaml
no, thats by design. I wanted to keep the possibility to set the json by hand.
But I should add that in the readme 
with 2 clients the most it got to was 300%
latency was solid.
memory consumption is very down as well... thats nice.
Now that I've figured out the outgoing firewall rules, I updated the jsknnr's Helm Chart to use your dev-proton image. Best of both worlds! π
On my 4 vCPU (shared) 16GB VM the CPU load went from 380% (wine) to 280% (proton) with two players idling at spawn. So great success for me with weak hardware. Thanks so much!