Giter VIP home page Giter VIP logo

serverlist's Introduction

Minetest server list

Setting up the webpage

You will have to install node.js, doT.js and their dependencies to compile the server list webpage template.

First install node.js, e.g.:

# apt-get install nodejs
# # OR:
# pacman -S nodejs

Then install doT.js and its dependencies:

$ npm install dot commander mkdirp

And finally compile the template:

$ cd static
$ ../node_modules/dot/bin/dot-packer -s .

You can now serve the webpage by copying the files in static/ to your web root, or by starting the server list.

Embedding the server list in a page

<head>
	...
	<script>
		var master = {
			root: 'http://servers.minetest.net/',
			limit: 10,
			clients_min: 1,
			no_flags: 1,
			no_ping: 1,
			no_uptime: 1
		};
	</script>
	...
</head>
<body>
	...
	<div id="server_list"></div>
	...
</body>
<script src="list.js"></script>

Setting up the server

  1. Install Python 3 and pip:
pacman -S python python-pip
# OR:
apt-get install python3 python3-pip
  1. Install required Python packages:
# You might have to use pip3 if your system defaults to Python 2
pip install -r requirements.txt
  1. If using in production, install uwsgi and it's python plugin:
pacman -S uwsgi uwsgi-plugin-python
# OR:
apt-get install uwsgi uwsgi-plugin-python
# OR:
pip install uwsgi
  1. Configure the server by adding options to config.py. See config-example.py for defaults.

  2. Start the server:

$ ./server.py
$ # Or for production:
$ uwsgi -s /tmp/minetest-master.sock --plugin python -w server:app --enable-threads
$ # Then configure according to http://flask.pocoo.org/docs/deploying/uwsgi/
  1. (optional) Configure the proxy server, if any. You should make the server load static files directly from the static directory. Also, /list should be served from list.json. Example for nginx:
root /path/to/server/static;
rewrite ^/list$ /list.json;
try_files $uri @uwsgi;
location @uwsgi {
	uwsgi_pass ...;
}

Setting up the server (Apache version)

If you wish to use Apache to host the server list, do steps 1-2, 4, above. Additionally install/enable mod_wsgi and an Apache site config like the following:

	# This config assumes you have the server list at DocumentRoot.
	# Visitors to the server list in this config would visit http://local.server/ and
	# apache would serve up the output from server.py. Static resources would be served
	# from http://local.server/static.

	# Where are the minetest-server files located?
	DocumentRoot /var/games/minetest/serverlist

	# Serve up server.py at the root of the URL.
	WSGIScriptAlias / /var/games/minetest/serverlist/server.py

	# The name of the function that we call when we invoke server.py
	WSGICallableObject app

	# These options are necessary to enable Daemon mode. Without this, you'll have strange behavior
	# with servers dropping off your list! You can tweak threads as needed. See mod_wsgi documentation.
	WSGIProcessGroup minetest-serverlist
	WSGIDaemonProcess minetest-serverlist threads=2


	<Directory /var/games/minetest/serverlist>
		Require all granted
	</Directory>

</VirtualHost>

License

The Minetest server list code is licensed under the GNU Lesser General Public License version 2.1 or later (LGPLv2.1+). A LICENSE.txt file should have been supplied with your copy of this software containing a copy of the license.

serverlist's People

Contributors

sfan5 avatar shadowninja avatar noob3167 avatar est31 avatar luk3yx avatar sofar avatar nerzhul avatar

Watchers

James Cloos avatar

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.