First of all thanks to 7thCore and mmmaxwwwell for their great prework making a linux dedicated server for Space Engineers real!
I took parts of these projects to create this one:
https://github.com/7thCore/sesrv-script => installing prerequisites
https://github.com/mmmaxwwwell/space-engineers-dedicated-docker-linux => downgrading for dotnet48
I wanted to have a more cleaner docker container with less dependencies (integrate sesrv-script parts instead of wget the whole script) and a little more configuration through composer files.
First you have to use the Space Engineers Dedicated Server
Tool to setup your world.
(detailed instructions follow when requested)
After you have saved your world upload it (the instance directory) to your docker host machine /appdata/space-engineers/instances/
.
Create a docker-compose.yml
(see example below) and execute docker-compose up -d
Do not forget to rename TestInstance
with your instance name!
version: '3.8'
services:
se-server:
image: devidian/spaceengineers
# if you want to run multiple servers you will have to change container_name and published ports
container_name: se-ds-docker
restart: unless-stopped
volumes:
# left side: your docker-host machine
# right side: the paths in the image (!!do not change!!)
- /appdata/space-engineers/instances:/appdata/space-engineers/instances
- /appdata/space-engineers/SpaceEngineersDedicated:/appdata/space-engineers/SpaceEngineersDedicated
- /appdata/space-engineers/steamcmd:/root/.steam
ports:
- target: 8080
published: 18080
protocol: tcp
mode: host
- target: 27016
published: 27016
protocol: udp
mode: host
environment:
- WINEDEBUG=-all
# change TestInstance to your instance name
- INSTANCE_NAME=TestInstance
Download this repository and run docker-compose up -d
If you want to extend the image create a Dockerfile
and use FROM devidian/spaceengineers
Yes as they are saved in your world, the server will download them on the first start.
I personally could not manage to connect with te remote client, if anyone gets a connection please tell me (and maybe how you fixed it)