System Installation & Running with Docker

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

See Docker documentation: https://docs.docker.com/.

Installing with Docker

  1. Clone the repository from Gitlab or Docker. Links: https://gitlab.com/unidata-community-group/unidata-platform-deploy or https://hub.docker.com/u/unidatacommunity. The command:

    git clone https://gitlab.com/unidata-community-group/unidata-platform-deploy.git
    
  2. Go to the directory with code using the command:

    cd unidata-platform-deploy
    
  3. 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.

Pulling Image

  1. Run the docker pull command for Unidata Docker. Select needed version:

    docker pull repo.tddev.ru/unidata-ce/backend:latest
    
  2. To run Unidata in a container, set the following environment variables:

  • POSTGRES_ADDRESS: postgres database address;

  • POSTGRES_USERNAME: postgres username;

  • POSTGRES_PASSWORD: postgres password;

  • ELASTICSEARCH_CLUSTER_ADDRESS: elasticsearch address;

  • ELASTICSEARCH_CLUSTER_NAME: elasticsearch cluster name.

Launching Unidata with Docker Compose

Note

The version of docker-compose should be at least 1.29.0

If necessary, use docker-compose.yaml 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:

    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