Skip to content
Docker Control Center is an small, permission based web application to control docker-compose services and docker containers
Branch: master
Clone or download
Latest commit d25933e Jul 12, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
control_center added the ability to define url and logo for services in an extra con… Jul 12, 2019
.gitignore initial commit Apr 25, 2019
Dockerfile removed dependency on setuptools_scm & git Apr 26, 2019 fixed static files for apps and libs Apr 26, 2019 initial commit Apr 25, 2019 updated versions for dependencies Apr 25, 2019
setup.cfg initial commit Apr 25, 2019 updated Django version Jul 4, 2019 initial commit Apr 25, 2019

Docker Control Center

Docker Control Center is a lightweight Django web application allowing the user to control docker-compose projects as well as regular standalone docker containers.

It has built-in permissions to control who can view and execute different commands like start/stop/remove on projects or services.

Quick Start

Pull the image:

docker pull nanofab/control_center

Create a configuration folder where static files, settings, db and logs will be created.
For example /opt/control_center_config, or C:\control_center_config and use the path in the commands below.

If you have a docker-compose file, simply run:

docker run --detach --publish 8000:8000 --volume /var/run/docker.sock:/var/run/docker.sock --volume <path to your docker-compose.yml parent folder>:/control-center/compose/:ro --volume <path to your control center configuration folder>/:/control-center/config/ nanofab/control_center

If you don't have a docker-compose file, run:

docker run --detach --publish 8000:8000 --volume /var/run/docker.sock:/var/run/docker.sock --volume <path to your control center configuration folder>/:/control-center/config/ nanofab/control_center

Then run (to create the first admin user):

docker run --interactive --tty --volume <path to control center configuration folder>/:/control-center/config/ nanofab/control_center django-admin createsuperuser

access the application at http://localhost:8000/ and log in using the previously created credentials


Docker compose control center can be customized by adding parameters to the file inside your control-center configuration directory.

Windows Host

If your host is a windows machine, add:


Allowed Host

If you are using anything else than localhost to access the application, add:

ALLOWED_HOSTS = ["<ip>", "<hostname>", ...]

Private Registry

If you are using a private docker registry, add:

    "available": True,
    "username": "user",
    "password": "pass",
    "url": "",

Compose Project

If you are using a custom project name (different from the default parent directory name), add:

COMPOSE_PROJECT = "<your-project-name>"

Compatibility Mode

If you want to use docker-compose in compatibility mode, add:


From docker-compose documentation:

--compatibility     If set, Compose will attempt to convert deploy
                    keys in v3 files to their non-Swarm equivalent

Auto Refresh

Pages can be set to auto refresh (if you are showing container statuses on an always-on display).
Simply add the number of seconds between refresh:


Site Title

Some titles can be customized by adding:

SITE_TITLE = "My Title"
LOGIN_TITLE = "My Login Page Title"

Custom Service URL & Logos

When using a docker-compose file, you can customize each service's logo and URL by providing a docker-compose.ini config file next to your docker-compose.yml.
Here is an example of what it would look like (paths are relative to the config file location):

logo = media/nginx.png

logo = media/control-center.png
url =

Database connection

If you want to change the default SQLite Database, refer to the documentation on django's website.


Username & password

The default authentication is done using username/password but its use is discouraged in production environments


You can authenticate via LDAP by setting the following:

AUTHENTICATION_BACKENDS = ["control_center.libs.authentication.backends.LDAPAuthenticationBackend"]

    "url": "your.ldap.url",
    "domain": "YOUR_DOMAIN", 
    "certificate": "<path to optional certificate>"

HTTP header

This is not recommended for production environment unless behind a proxy like Nginx which would set the specific header

# The key part here is "control_center.libs.authentication.middleware.HTTPHeaderAuthenticationMiddleware"

AUTHENTICATION_BACKENDS = ["control_center.libs.authentication.backends.RemoteUserAuthenticationBackend"]

# optional, defaults to Authorization


Another option is to use Nginx with kerberos module to authenticate and then set the following:

# The key part here is "control_center.libs.authentication.middleware.HTTPHeaderAuthenticationMiddleware"

AUTHENTICATION_BACKENDS = ['control_center.libs.authentication.backends.NginxKerberosAuthorizationHeaderAuthenticationBackend']

Advanced Configuration

You can find all the application settings and their default values here: Default Settings

Any of those can be overridden in your file

You can’t perform that action at this time.