System Installation with Docker

The recommended way to quickly install Unidata MDM is by using Docker.

The system can be installed manually, if desired. This method of installation requires special skills and is intended to describe the basic steps. In projects, the IT infrastructure, integration parameters, and etc. will differ.

Note

This page contains an example of installing via Docker. To install, you need to have a repository with the Unidata distribution in the form of Docker images

Preparing for Installation

Server preparation:

  • Update the existing list of Ubuntu packages. Command: sudo apt update

  • Install Docker from oficial repository. See docs https://docs.docker.com/

  • Install Docker Compose (version 1.29 or upper).

  • Configure permissions for Docker Compose. Command: sudo chmod +x /usr/local/bin/docker-compose

  • Install Git.

Link to repository:

  • According to the Unidata supply contract, you need to get access to the repository with the distribution of your product.

  • Unidata CE repository: You can use Unidata CE Git project with the Docker images as an example and create your own project based on it. The repo contains .env file that includes tags on system components and a set of component images.

Tip

Use Unidata CE repository only if you are installing the Community Edition

Installing with Docker

To install Unidata MDM:

  1. Make sure you have a link to the repository with the product distribution. About getting the link, see above.

  2. Clone the repository from Gitlab or Docker. The command:

    git clone [your-link-unidata-platform-deploy.git]
    
  3. Go to the directory with code using the command:

    cd unidata-platform-deploy
    
  4. Run Unidata system:

    docker-compose up -d
    

By default, you can see UI on localhost:8081.

Default login/password: admin/ admin. After the first logging in, you will need to change the password.

Custom Installation with Docker Compose

Note

The version of docker-compose should be 1.29 or upper

If necessary, use docker-compose.yml to create your own image. The .env file contains the list of available variables.

  1. Create docker-compose.yml file.

  2. Create hunspell folder with dictionaries.

  3. You can recreate docker container with new settings by the command:

    docker-compose up -d --build --force-recreate
    

Example of the docker-compose.yml file

version: '2.4'

services:

unidata-postgres:
    image: postgres:12
    environment:
    POSTGRES_USER: postgres
    POSTGRES_PASSWORD: postgres
    ports:
    - "5432:5432"
    networks:
    - unidata
    healthcheck:
    test: ["CMD-SHELL", "pg_isready -U postgres"]
    interval: 10s
    timeout: 1s
    retries: 20


unidata-elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.8.0
    environment:
    - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    - "discovery.type=single-node"
    volumes:
    - ./hunspell:/usr/share/elasticsearch/config/hunspell/
    ulimits:
    memlock:
        soft: -1
        hard: -1
    ports:
    - 9200:9200
    - 9300:9300
    networks:
    - unidata
    healthcheck:
    test: >
        bash -c "curl http://localhost:9200 | grep '\"cluster_name\"'"
    interval: 10s
    timeout: 2s
    retries: 20

unidata:
    image: repo.tddev.ru/unidata-ce/backend:latest
    ports:
    - 9080:8080
    - 5005:5005
    networks:
    - unidata
    environment:
    POSTGRES_ADDRESS: unidata-postgres:5432
    POSTGRES_USERNAME: postgres
    POSTGRES_PASSWORD: postgres
    ELASTICSEARCH_CLUSTER_ADDRESS: unidata-elasticsearch:9300
    ELASTICSEARCH_CLUSTER_NAME: docker-cluster
    depends_on:
    unidata-postgres:
        condition: service_healthy
    unidata-elasticsearch:
        condition: service_healthy

ui:
    image: repo.tddev.ru/unidata-ce/frontend:latest
    ports:
    - 8081:80
    networks:
    - unidata
    links:
    - unidata

networks:
unidata:
    driver: bridge