Comments (7)
Can you let me know what game you are trying to run and any docker configuration that you are using so I can reproduce? Thanks!
from steam.
I'm trying to run an astroneer server and this is my docker-compose.yml file:
version: '3'
services:
steam:
image: rpufky/steam:stable
ports:
- 8777:8777
- 27015:27015/udp
environment:
- PUID=1002
- PGID=1002
- UPDATE_OS=1
- UPDATE_STEAM=1
- UPDATE_SERVER=1
- PLATFORM=windows
- STEAM_APP_ID=728470
- TZ=Europe/Stockholmz
volumes:
- /space/herman/docker/astroserver/data:/data
- /etc/localtime:/etc/localtime:ro
And my custom_server looks like this:
su steam -c "xvfb-run --auto-servernum \
wine64 ${SERVER_DIR}/AstroServer.exe"
from steam.
Did some investigation into this.
Looks like a few things:
- wine
5.1
is needed to run. - Astroneer is very sensitive about setting up correctly, and doesn't handle NAT/NAT reflection well.
I'm going to build an experimental
tag, which will include wine-staging. This will bring wine up to whatever the latest staging is (currently 5.10); and should address the crashing issue.
from steam.
Quick update:
- I've pushed a new
experimental
release, which will use the latest non-dev winehq build. - The dedicated server for astroneer appears to be a tirefire. I tested both the docker container and an explicit windows dedicated server on dedicated hardware and reach the same state.
- This appears to be do to wonkiness in how the server handles NAT/NAT Reflection and local IP's -- in both instances I can connect to the server but fail to join. Please let me know if you get past this point and what you did.
Setup
- Since it's unreal engine based, I modified the launcher for Conan Exiles.
/data/custom_server
#!/bin/bash
#
# Runs as root. Drop privileges.
#
# Capture kill/term signals and send SIGINT to gracefully shutdown server.
PROCESS_WAIT_TIME=25
WATCHDOG_TIME=300
function shutdown() {
echo 'Shutting down server ...'
if [ "$(pgrep -n Astro)" != '' ]; then
echo "Sending SIGINT to Astro server (max ${PROCESS_WAIT_TIME} secs) ..."
kill -SIGINT `pgrep -n Astro`
sleep ${PROCESS_WAIT_TIME}
fi
if [ "$(pgrep wine)" != '' ]; then
echo "Sending SIGINT to wine processes (max ${PROCESS_WAIT_TIME} sec) ..."
kill -SIGINT `pgrep wine`
sleep ${PROCESS_WAIT_TIME}
fi
exit 0
}
trap shutdown SIGINT SIGKILL SIGTERM
function start_server() {
su steam -c "xvfb-run --auto-servernum wine64 ${SERVER_DIR}/AstroServer.exe"
}
function watch_server() {
if ps aux | grep [A]stroServer > /dev/null; then
echo 'Server is running ...'
else
echo 'Starting server ...'
start_server &
fi
}
while true; do
watch_server
# background and using wait enables trap capture.
sleep ${WATCHDOG_TIME} &
wait
done
- I updated the compose file to use the correct ports and experimental.
docker-compose.yml
version: "3"
services:
astroneer:
image: rpufky/steam:experimental
restart: unless-stopped
stop_grace_period: 1m
ports:
- 8777:8777/udp
- 27015:27015
- 27015:27015/udp
environment:
- PUID=1002
- PGID=1002
- UPDATE_OS=1
- UPDATE_STEAM=1
- UPDATE_SERVER=1
- PLATFORM=windows
- STEAM_APP_ID=728470
- TZ=America/Los_Angeles
volumes:
- /d/etc/data/games/astroneer:/data
- /etc/localtime:/etc/localtime:ro
- The dedicated server (on all platforms) will automatically exit with no message if
Port
and some combination ofAstroServerSettings.ini
is not set.
Launch the server and let it run until until these files are generated. Then shutdown the server.
Astro/Saved/Config/WindowsServer/Engine.ini
[URL]
Port=8777
Astro/Saved/Config/WindowsServer/AstroServerSettings.ini
[/Script/Astro.AstroServerSettings]
bLoadAutoSave=True
MaxServerFramerate=30.000000
MaxServerIdleFramerate=3.000000
bWaitForPlayersBeforeShutdown=False
PublicIP={MUST BE SET TO YOUR PUBLIC IP}
ServerName={SERVER NAME}
ServerGuid=D70A9EE8449E9079837E43AFB8262FF6
OwnerName={YOUR STEAM USERNAME NAME}
OwnerGuid=0
PlayerActivityTimeout=0
ServerPassword={SERVER PASSWORD}
bDisableServerTravel=False
DenyUnlistedPlayers=False
VerbosePlayerProperties=False
AutoSaveGameInterval=900
BackupSaveGamesInterval=7200
ActiveSaveFileDescriptiveName=SAVE_1
ServerAdvertisedName={PRESET HASH}
- Relaunch the server.
Edit: clarified some text.
from steam.
The server is running but I cannot connect to it. Should I forward all the 3 ports?
from steam.
Yes, you need to expose 8777/udp, 27015 tcp/udp. 8777 is assuming you are following the setup guide for astroneers.
This is essentially where I got with the dedicated server on windows as well as this container.
from steam.
FYI: There are some folks who are working through some final dependency issues for this server to work on Linux. See this post dedicated server on linux. Looks like there is a discord channel there with the group of folks debugging it.
If they get it working, please re-open this bug and link what needs to be changed for it to work. I'll update the docker image with what's needed then.
from steam.
Related Issues (4)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from steam.