Headless Linux Server?


  • Dev Tier

    I have gotten the server to work on Linux using Mono without wine. linux-eco-server.png .

    Of course, there's some issues, but it seems to be working.



  • hi everyone

    here you can find a fully functional headless Docker server I've made: start.sh Dockerfile

    it's still missing VOLUME to keep the generated world outside of the docker to keep it after a reboot but it's a start feel free to improve it :)



  • I tried to create an updated headless server with mono in Docker for Alpha 4. The headless part isn't a problem so far, but I get a MissingMethodException:

    [ERROR] FATAL UNHANDLED EXCEPTION: System.MissingMethodException: Method 'LegendCollection.Add' not found.

    Dockerfile
    output.txt

    To reproduce, execute the following commands on a docker-enabled linux machine, starting in the path where the Dockerfile is located:
    docker build -t eco .
    docker run eco


  • SLG Admin

    have you installed mono-complete? @Metrotyranno is thus far the expert with running with linux - anything to add?



  • @Metachronism Thank you for the suggestion. I have tried mono-complete as well. Same error.



  • @Metachronism He's using the GUI which is the likely cause, Servers I run are guiless. (with the -nogui flag)

    Worth a shot to rule out the gui, boot the server with the -nogui flag.



  • @Metrotyranno Thank you! That was indeed the part I missed!

    Is this documented anywhere? I couldn't find server configuration documentation, nor is there a -h /h /? -? --help switch for EcoServer.exe to show command line usage.

    Anyway, here's an updated Dockerfile for those who want to try it themselves:

    Dockerfile

    To run the server, fire up a console in the same directory as this Dockerfile:

    docker build -t ecoserver:0.4.1 .
    docker run -d -p 2999:2999 -p 3000:3000 -p 3001:3001 -v /data/ecoserver:/eco/Storage --name ecoserver ecoserver:0.4.1

    This starts a new ecoserver, with the world data stored at /data/ecoserver.

    Now the next step is to provide some config variables (like server name, world size, game rules, public server flag) to a script that modifies the configuration files. I'm already happy the server runs, so the generated server name 'ed037560592e' is fine for now :)

    In the end, I wanted to try exposing the server configuration interface with a VNC server (similar to this, where they run a Firefox container to which you can connect with VNC). But I guess the error that I encountered earlier means mono and .Net GUI libraries are incompatible so I wonder if that will ever be possible.


  • SLG Admin

    dont think there is currently a documentation .. but would like help from those who have linux and mac and some good knowledge to help me create documentation and tutorial for those things and put it up on the wiki. (preferable with images)



  • @Kakoen said:

    But I guess the error that I encountered earlier means mono and .Net GUI libraries are incompatible so I wonder if that will ever be possible.

    It is possible, but mono is incomplete. The right functions and workarounds need to be used.


  • SLG Admin

    The frontend for the server right now is intended to eventually be completely replaced with a web-based interface into the server, so I wouldn't spend a huge amount of time trying to figure that part out.