Skip to main content


Created 2023, for developers. --- Regular Users: read the mDIS User Documentationopen in new window

About the mDIS Build and Installation System

It is a long way from source code to running mDIS website. But how do we create mDIS websites at GFZ, and how to maintain codebases of the various mDIS instances?
With a build system that is located right here, where the mDIS source code is.

Goals and characteristics of the mDIS Build System:

The Build System is based on Gitlab CI/CD, Docker, and other DevOps tools.
Thus, the mDIS Source Code, the mDIS Build and Customization machinery, and backups of mDIS instances, are all in the same place: GFZ's Gitlab. All code at same place, same toolset, right here in this repo.
See sidebar of mDIS Repo, "CI/CD / Pipelines" entry (as not-logged-in User), ""Build/Pipelines entry as logged-in user.

Visual Overview Diagrams

mDIS Build Pipeline: Technical Overview Diagrams

Click on any image to enlarge. The read diagrams from top to bottom.

Runner Deployment SchemeGeneral Pipeline
Runner Deployment SchemeGeneral Pipeline
What's a Runner, you ask? Read this.2 Major pipeline phases:
~green:as mDIS was in 2019, plain PHP7
brown: PHP8 + newer software, customized mDIS

mDIS Build Workflows: Flowchart Diagrams (BPMN Standard)

Click on any image to enlarge. Then read diagrams from top left to bottom right.

Simple Processing of Merge RequestsComplex multi-stage Deployment
3-step5-step
git master branch. No automatic inclusion into "release" builds, no deployment to production servers. (3 Steps)git feature branches. Immediate or on-demand pre-deployment of the main mDIS codebase, on production servers (almost); including tests. (5 steps)

mDIS General Deployment scheme:

Deployment -releasing new mDIS instance to users- comes last. This step is not yet part of the build process, but it is closely related to it. It is not yet automated; these steps are still carried out manually (e.g, add another mDIS instance to the public internet).

In order to take mDIS instances into production, we need to deploy them to a server. That is equivalent to adding a new box in the middle row of this diagram:

Adding mDIS Production instancesopen in new window
Apacheopen in new window
mDIS on the public internet.
Reverse Proxy Setup

In Production, mDIS instances run behind an Apache Reverse Proxy Webserver; science data is stored in individual mySQL databases (on a shared mySQL server); and the mDIS codebase is deployed as Docker containers.

However there are 3 modes of mDIS installation: online (public internet), cloud based, and offline (standalone). "Cloud-based mode" and "Offline mode" are not described here. Read the official user documentationopen in new window for that.

What this Wiki is not:

More - Scratchpad, How to contribute to this wiki...

ToDo items - unresolved CI/CD issues, and other notes.