Table of Contents
Technical Description
Goal
Having a Docker Container with a running MapTool session, which can be used as a MapTool Server for a MapTool gaming session.
Concept
Divide & Conquer is a main concept for reusable and easy to maintain software.
We have to create a Docker image for MapTool. The MapTool package includes the needed java engine and libraries, so we should not separate them.
That image needs an external volume for the campaign specific data, so that the master can place and backup them there without the need to access the GUI of MapTool. This will rescue also this data over the life time of the container where the image is running in.
By default, this is all together in the MapTool folder, so we have to do some configurations in the configure file of MapTool.
To access the GUI of MapTool we prefer an html access. That give us the opportunity to use a proxy server image as an access security (SSL) and dispatcher (not part of this project, see Reverse Proxy in this wiki or NGINX SSL Reverse Proxy für Docker Container). Xpra can do this. There are just a view Xpra images in the DockerHub. They are not usable, because there last update is long, there is little to no documentation for them and/or only a view usages (ok, the last argument ill hit this images also). We do not want to depend on them (maintenance unclear), so we will create a second image for Xpra by our self.
Since this should be only used as a Server for MapTool gaming sessions, the GUI is only needed to start/stop the server in MapTool. So we will start with alpine, as the base image. Alpine is a very small Linux distribution. It supports not everything from scratch, e.g. there is no sound support, but it should be enough for MapTool, which is used just as a Server. Using a full Debian or Ubuntu image to get a better support of all GUI features is still an option, if needed.
The docker composer file will then hold all configuration parts, so that both containers are bind together.
Used Software
- MapTool
- Xpra
- Docker
- Server
- Composer
- Base Image: alpine
Architecture
ToDo: Picture with the software components and there relationships. ToDo: Used Folders and there Content
Step by Step Build Instruction
In the following step by step build instruction, I presuppose, that the reader is familiar with the used software as far as it is needed for this instructions. Please use the documentation (tutorials, How-To or Videos) for them, if a comment is unclear for you.
Preparation
You need
- Docker Server to create, install and run self created containers (we will use one on Debian)
- Simple Editor to edit text files (e.g. vi)
- Internet access to download software
Creation
ToDo
Xpra Image
ToDo
MapTool Image
ToDo
Composer File
ToDo
Finalize
For private Use
Follow the steps in the user guide and use your own image instead of the image from the DockerHub.
Publication in the DockerHub
ToDo: Steps to public the container in the DockerHub.
Sources
RpTools
- RpTools - Open Source organization for pen & paper role playing tools, including MapTool.
Xpra
- XPRA - multi-platform screen and application forwarding system “screen for X11”
Docker
Docker, Xpra & GuiApp
- Running MapTool Headless - A guide to run MapTool under Xpra