This is a webapp to control and manage headless MegaMek (www.megamek.org) server.
It's intended to run on a Linux machine with Java 17 and Python 3.6+. Tested up to Python 3.12.
-
Install Java JDK 17 as /usr/bin/java. It can be a symlink to /etc/alternatives.
-
Unpack megamek-0.[version].[release].tar.gz as astech/megamek-version directory. In this example it will be megamek-0.49.19.1 (https://github.com/MegaMek/megamek/releases/download/v0.49.19.1/megamek-0.49.19.1.tar.gz). Read astech-version/PLACEHOLDER_FOR_ASTECH (https://github.com/seem8/astech/blob/master/app/astech/megamek-version/PLACEHOLDER_FOR_MEGAMEK) for more deailed instruction.
-
Run command AST_LISTEN=0.0.0.0 AST_DEBUG=True AST_MM_VERSION=0.49.19.1 AST_MM_PORT=2346 AST_USER=username AST_PASS=password python3 astech.py
-
View "localhost:8080" in your browser. You can run it on a public IP and it will work, but without any https encryption, or anti-ddos protection.
ENV variables to use:
- AST_DEBUG=True|False ; run application in debug mode; optional ; default False
- AST_LISTEN=0.0.0.0|[any.local.ip.address] ; IP to listen for http traffic ; optional ; default 127.0.0.1
- AST_PORT=[number] ; port number for connecting to astech web page ; optional ; default 8080
- AST_MM_PORT=[number] ; port number for joining MegaMek games ; optional ; default 2346
- AST_MM_VERSION=[A.B.C.D...] ; MegaMek version ; mandatory ; no default
- AST_USER=username ; optional ; default kerensky
- AST_PASS=password ; optional ; default sldf
Modify step 4 to AST_MM_VERSION=0.49.19.1 AST_MM_PORT=2346 AST_USER=otherusername AST_PASS=SeCuRePaSsWoRd python3 astech.py
You need:
- public IP address,
- a proper domain,
- some sort of http proxy, like Nginx,
- SSL certificate, possibly from Let's Encrypt.
Sample Nginx vhost configuration is included as app/nginx/sample.conf.
It is a little different now, but not much.