This makes some options non-optional -- allowing for a smaller config file. This also removes the X-Sendfile example, bucause the proxy server should handle static files directly and the option is not at all specific to this particular application (and general Flask options aren't documented).
2.4 KiB
Minetest server list
Setting up the webpage
You will have to install node.js, doT.js and their dependencies to compile the serverlist webpage template.
First install node.js, e.g.:
# apt-get install nodejs
# # OR:
# pacman -S nodejs
# # OR:
# emerge nodejs
Then install doT.js and its dependencies:
$ cd ~
$ npm install dot commander mkdirp
And finally compile the template:
$ cd static
$ ~/node_modules/dot/bin/dot-packer -s . -d .
You can now serve the webpage by copying the files in static/ to your web root, or by starting the master server.
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
-
Install Python 3 and pip:
pacman -S python python-pip
# OR:
apt-get install python3 python3-pip
-
Install Flask, and APScheduler:
# You might have to use pip3 if your system defaults to Python 2
pip install APScheduler flask
-
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
-
Configure the server by adding options to
config.py. Seeconfig-example.pyfor defaults. -
Start the server:
$ ./server.py $ # Or for production: $ uwsgi -s /tmp/serverlist.sock --plugin python -w server:app --enable-threads $ # Then configure according to http://flask.pocoo.org/docs/deploying/uwsgi/
-
(optional) Configure the proxy server, if any. You should make the server load static files directly from the static directory. Also,
/listshould be served fromlist.json. Example for nginx:root /path/to/server/static; rewrite ^/list$ /list.json; try_files $uri @uwsgi; location @uwsgi { uwsgi_pass ...; }
License
The Minetest master server 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.