Eldewrito server web browser

 DomiStyle/docker-eldewrito.

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop.

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop.

If nothing happens, download GitHub Desktop and try again.

Launching Xcode.

If nothing happens, download Xcode and try again.

Launching Visual Studio Code.

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit.

Git stats.

Files.

Failed to load latest commit information.

README.md.

ElDewrito dedicated server dockerized.

This is a Dockerfile for running the ElDewrito server under Linux. The container uses Wine to run the Windows application and xvfb to create a virtual desktop.

The container is running 100% headless - no GUI is required for installation, execution or configuration.

The game files are required in order to start this container. They are not bundled within the container and you will have to provide them.

See the docker-compose here (recommended) or manually start the container with the following command:

The capability SYS_PTRACE is required due to how ElDewrito works. The server won't start without it.

A default configuration file and veto/voting rules will be created automatically if no configuration exists in the game directory. If you do not want to use this configuration you can override this behavior by creating your own dewrito_prefs.cfg before starting the container.

The following tags are available:

Name Description latest Direct build from master branch. Generally not recommended. X.Y-testZ Tagged builds taken from master branch. Used for testing. X.Y Stable tags. Everything was tested and is working. (not available yet)

Tutorial (for Ubuntu hosts)

Prepare a Ubuntu host Install Docker for Ubuntu by following this guide Make sure Docker is working by running docker -v Install docker-compose with sudo apt-get install docker-compose Grab the latest compose file from the git repository here Put the docker-compose.yml in a folder called eldewrito Switch into the folder and open the file with nano docker-compose.yml Adjust /path/to/game , /path/to/config , /path/to/logs accordingly Adjust the image you want to use if necessary, e.g. change domistyle/eldewrito to domistyle/eldewrito:0.6-test5 Put your Eldewrito game files into the folder you specified for /game Remove the dewrito_prefs.cfg from your game folder to let the container generate a known working one for you Run docker-compose up -d.

You're done. Your container will now be running and you can check if it is working by visting http://server_ip:11775 in your browser.

You can use docker ps to view running containers.

To update the container either change the image tag inside of your docker-compose.yml and run docker-compose up -d or use docker-compose pull followed by docker-compose up -d if you are using the latest tag.

You can use docker-compose logs to view the logs inside of the container.


ElDewrito/ElDewrito-MasterServer.

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop.

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop.

If nothing happens, download GitHub Desktop and try again.

Launching Xcode.

If nothing happens, download Xcode and try again.

Launching Visual Studio Code.

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit.

Git stats.

Files.

Failed to load latest commit information.

README.md.

A sample master server implementation for ElDewrito.

This implements all the features expected in an ElDewrito master server, in a stable, scalable, production-ready way.

I mainly only call it a sample as others can use this to see how endpoints should function (in case they want to make their own their own master server implementation), and because this implementation hasn't really been tested out properly yet.

However it should work fine with next to no changes needed, the master server I'll be operating will be running on the same code as this git, and the git will be kept up to date with any changes I make.

If you want to contribute to it feel free to make a pull request, however letting us know what you're working on first would be best, so that we can discuss it and try figuring out the best way to do it with you.

Installation (with Docker and nginx)

Install Docker and Docker-compose Change to the main directory of this repo (with the docker-compose.yml file) Run "docker-compose up" Go have a coffee while it sets up the containers, once it's done you should be able to access the master server at port 80.

This sets up and installs Redis, nginx and node.js automatically, each one running inside their own Docker container.

By default it also sets up three separate instances of the main node.js application, with the nginx server set up to load balance between them. These instances are all linked to the main Redis database and share the same server list with each other.

Installation (with Docker and Hiawatha)

Install Docker and docker-compose Change to the main directory of this repo (with the docker-compose-hiawatha.yml file) Run "docker-compose -f docker-compose-hiawatha.yml up" Go have a Mountain Dew while it sets up the containers, once it's done you should be able to access the master server at port 80.

This sets up and install Redis, nginx, and node.js automatically, each one running inside a Docker container. Unlike the nginx version, Hiawatha has better performance and security, but without the load balancing.

Installation (without Docker)

While Docker is the recommended way to set up the master server there are various ways you can set it up without using separate Docker containers.

Install Redis, node.js and NPM, these are required by the master server. Once they've been installed change to the node directory and run "npm install" Sit back and wait for the dependencies to install Run "node index.js" to start the master, it should now be accessible at port 8080.

I recommend you setup a nginx forward proxy on port 80 to forward to the node.js application on port 8080, but if you don't want to you can just edit the index.js to run the node.js app on port 80 instead. (make sure to set isRunningBehindProxy to false if you do this!)

You can edit various options in the config files inside each folder, node/index.js also has some options near the top of the file.

You should set these config options before running "docker-compose up" for the first time, as changing things inside a Docker container can be troublesome.

Note that ElDewrito is set up to re-announce to each master it knows about every 2.5 minutes, setting the serverContactTimeLimit to less than that will cause problems!

Thanks to Anand Mani Sankar for his Docker workflow example, helped a lot with packaging this as a Docker container! (his example is available at http://anandmanisankar.com/posts/docker-container-nginx-node-redis-example/ )

Also thanks to GIJames, uplusion23, qmarchi and the rest of the Alligo team for brainstorming the master server idea with us and helping us out with the server browser.


No comments:

Post a Comment