Dugout is our new open source tool built around Docker. It automates the implementation of web application development environments based on containers within a team. The deployment of complex projects on all developer machines can now be done in 1 click!
THE DUGOUT INTERFACE
François, our CTO, initially developed Dugout for Mobapi’s internal requirements but then it recently evolved into an open source tool published on GitHub. The objective was to replace our deployment scripts with an easy tool to be used by the entire team.
Around an OSX and Linux GUI (it will soon be available for Windows), Dugout allows you to easily install and start all the containers of a web application.

Dugout homescreen with container control panel
After configuring the entire application, and then setting each project, you can now manage the Docker containers from the tool’s main window. The user may launch or stop the containers separately, update the images, and access the log details. All information on the images and containers are centralized within the application.
A start button can initialize all the containers simultaneously, thereby making it easy to launch multi-tier applications!

You can easily access container logs
Dugout is different from Kitematic in that it manages one overall external configuration file for the entire team, and therefore makes it easy to roll out pre-set environments. While Dugout may lose out to Kitematic on looks, it wins on efficiency :)
STARTING WITH DUGOUT
Prerequisite
- Linux: Docker must be installed on the machine
- OSX (and soon Windows): Install Docker ToolBox
Using Dugout
Starting Dugout is easy: just run the available bit on GitHub.
In the application’s main window, begin by loading a JSON configuration file format as defined in the example.
To go into detail, each container is an element of the JSON configuration table. For example with:
[pastacode lang=”javascript” message=”Example of configuration file for Dugout” highlight=”” provider=”manual” manual=”%7B%20%20%0A%20%20%20%22frontend%22%3A%7B%20%20%0A%20%20%20%20%20%20%22title%22%3A%22Frontend%22%2C%0A%20%20%20%20%20%20%22image%22%3A%22nginx%22%2C%0A%20%20%20%20%20%20%22ports%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%2280%2Ftcp%22%3A%228080%22%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%22volumes%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%22%2Fusr%2Fshare%2Fnginx%2Fhtml%2Fwebsite1%3A%20ro%22%3A%22%24%7B%20frontendLocalRepository%20%7D%2Fwww%22%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%22variables%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%22frontendLocalRepository%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%22label%22%3A%22Project%20directory%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%22directory%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22mandatory%22%3Atrue%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%7D%2C%0A%20%20%20%22backend%22%3A%7B%20%20%0A%20%20%20%20%20%20%22title%22%3A%22Backend%20%22%2C%0A%20%20%20%20%20%20%22image%22%3A%22iain%2Fnodemon%22%2C%0A%20%20%20%20%20%20%22ports%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%2280%2Ftcp%22%3A%228081%22%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%22volumes%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%22%2Fusr%2Fshare%2Fnode%2Fbackend%3A%20ro%22%3A%22%24%7BbackendLocalRepository%7D%20%22%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%22cmd%22%3A%22cd%20%2Fusr%2Fshare%2Fnode%2Fbackend%20%26%26%20nodemon%20dist%22%2C%0A%20%20%20%20%20%20%22variables%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%22backendLocalRepository%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%22label%22%3A%22Project%20directory%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%22directory%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22mandatory%22%3Atrue%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%7D%0A%7D”/]
Simply reproduce this configuration block for each of the web application’s container under Docker and share it among the developers.
Once the file has been loaded into Dugout, the containers appear in the left sidebar of the tool and may be started individually or all together.
Please write to us at dugout@mobapi.com with any questions you may have on Dugout.
WE USE DOCKER AT MOBAPI!
Docker is an open source software which simplifies the deployment of application containers and we use it for several reasons on the Mobapi project:
- Consistency in development and production environments
- Partitioning Mobapi into micro-services to facilitate scalability, deployment, and maintenance
- And simply because we love Docker!
The Docker infrastructure is powerful, but the initialization of a development environment with several containers is complex and takes time. Especially when we have to duplicate this environment on several machines. It is this complexity which motivated us to create Dugout.
Dugout fits perfectly with the Mobapi spirit: suggest a simple and powerful tool which makes it easier to manage complex tasks without having to code them.
TO FINISH
Indeed, the name “Dugout” is inspired by a means of transport normally used here in French Guiana: the pirogue. Agile on the Amazon waters, and able to hold a lot of containers for our team building exercises in the forest!
- Download Dugout on GitHub : https://github.com/mobapi/dugout/releases/latest