Giter Club home page Giter Club logo

Comments (7)

r-pufky avatar r-pufky commented on July 28, 2024

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.

NAHFE avatar NAHFE commented on July 28, 2024

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.

r-pufky avatar r-pufky commented on July 28, 2024

Did some investigation into this.

Looks like a few things:

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.

r-pufky avatar r-pufky commented on July 28, 2024

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

  1. 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
  1. 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
  1. The dedicated server (on all platforms) will automatically exit with no message if Port and some combination of AstroServerSettings.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}
  1. Relaunch the server.

Edit: clarified some text.

from steam.

NAHFE avatar NAHFE commented on July 28, 2024

The server is running but I cannot connect to it. Should I forward all the 3 ports?

from steam.

r-pufky avatar r-pufky commented on July 28, 2024

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.

r-pufky avatar r-pufky commented on July 28, 2024

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 photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.