Eco is a Global Survival Game available on Steam and from this website: www.strangeloopgames.com/eco/
The server software is written in C# and works with limitations on Linux via Mono. The client software does work on Linux, but is not currently listed as supported on Steam (you can install via Steam on Linux however).
I assume that you have a docker host server available (if not there are Chef recipes and Chef bootstrapping scripts on my GitHub account). Server configuration options and port forwarding are not covered.
Since I originally wrote this, the Eco server now crashes with the lastest version of mono (5.16), but now only works with mono version 5.14. The game port (default 3000) was changed from TCP to UDP.
Warning: This is still a work in progress, and I'll probably move this into a repo and link to it from here. Skip to the next section if you do not have VirtualBox and Vagrant installed, otherwise:
curl -O https://raw.githubusercontent.com/stevepraski/edc-box/master/eco-docker/Vagrantfile
vagrant up
Unless I've already fixed it by now, you will have to "vagrant ssh" into the box and re-start the eco-server container, as it currently exits after first starting (possibly because it detects that I dropped in an easy mode configuration file):
vagrant ssh
docker start eco-server
docker logs ecoserver
The code and storage for the server is outside of vagrant in the local "eco" folder that was created.
- First create a volume container. We will leverage/abuse this volume container as the only persistent part of the Eco server.
docker volume create eco-data
- Bring up a disposible utility docker container and attach it to the volume. You can use any debian based container for this.
docker pull mono:5.14
docker run -v eco-data:/opt/eco --rm -it mono:5.14 bash
- Inside the docker container, fetch and unzip the server software
cd /opt/eco
apt-get update && apt-get install -y unzip curl vim
curl -O https://s3-us-west-2.amazonaws.com/eco-releases/EcoServer_v0.7.8.6-beta.zip
unzip EcoServer_v0.7.8.6-beta.zip
### if needed, edit configuration files now ###
# vi Configs/Network.eco
exit
- Bring up a new container to actually run the Eco server. Note the "-t" option; for some reason a pseudo terminal is necessary)
docker run -v eco-data:/opt/eco -t -p 3000:3000/udp -p 3001:3001 --name ecoserver --restart always -d mono:5.14 sh -c "cd /opt/eco && mono EcoServer.exe -nogui"
- Look at the logs, waiting for world generation to complete. Exit the log follower, and fix your terminal
docker logs -f ecoserver
^d
reset
To change configuration options, stop the server, and attach a disposible container to the eco-data volume, just like we did for installation (to avoid re-installing your favourite editor or vim, I would suggest building a docker image for this purpose), edit the files in "/opt/eco/Configs/", exit the container and start the server. For debugging, you can have both containers attached to the same volume container, but you will need to restart the server before changes take effect.
docker stop ecoserver
docker run -v eco-data:/opt/eco --rm -it ubuntu bash
docker start ecoserver
Does not seem to work with 0.7.8.6. Would be nice if you could investigate!