Developer Guide

Etsicatalog is a web application based on python3 and Django framework.


  • Python3 & pip

  • MariaDB

Etsicatalog can run standalone. However, if you want to try the whole functionality, you should have other components like SDC, DMaap(Non-mandatory), MSB(Non-mandatory) running.

You should set the component information in the environment variables as followed:



  • The default value of MSB_ENABLED is false. Since Guilin Release, MSB is a Non-mandatory component. If you have no MSB installed or intention to use it, you can just omit MSB_ADDR and MSB_ENABLED.

  • The default value of DMAAP_ENABLED is false. If you want to use SDC subscription and notification function, you should set it true and set DMAAP_ADDR properly.

Build & Run

Clone repository:

$ git clone
$ cd etsicatalog

Create database:

$ cd /resources/dbscripts/mysql

Run modeling-etsicatalog-createdb.sql to create database.

Run commands followed to init database:

$ python makemigrations
$ python makemigrations database
$ python migrate
$ python migrate database

Review and edit

MySQL default configuration is as follows:

DB_IP = ""
DB_PORT = 3306
DB_NAME = "etsicatalog"
DB_USER = "etsicatalog"
DB_PASSWD = "etsicatalog"

Start server:

$ python runserver 8806


Run Healthcheck:

GET /api/catalog/v1/health_check

You should get:

    "status": "active"

View API document:

Run from Docker image

You can run Modeling/etsicatalog directly from the docker image by following commands:

$ docker run -d -p 3306:3306 --name etsicatalog-db -v /var/lib/mysql -e MYSQL_USER="etsicatalog" -e MYSQL_PASSWORD="etsicatalog" -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE="etsicatalog"

$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' etsicatalog-db
Get the IP of etsicatalog-db

$ docker run -d --name modeling-etsicatalog -v /var/lib/mysql -e DB_IP=<ip address> -e SDC_ADDR=<ip address>


You can also build the docker image instead of using the existed image from

$ cd docker
$ docker build -t ${IMAGE_NAME} .