/astech

Web frontend for dedicated MegaMek server.

Primary LanguagePython

README

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.

HOW TO RUN

  1. Install Java JDK 17 as /usr/bin/java. It can be a symlink to /etc/alternatives.

  2. 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.

  3. 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

  4. 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

HOW TO RUN WITH SOME SECURITY

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.


HOW IT LOOKS

It is a little different now, but not much.

login page index page files page options page