Installation & run with Docker

Recommended way for install Unidata is by using Docker. See Docker documentation: https://docs.docker.com/

Cloning Unidata CE

  • If you are installing Unidata CE, you need to go to the following repository https://gitlab.com/unidata-community-group/unidata-platform-deploy.

  • Select the release branch and clone repository with the command:

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

    cd unidata-platform-deploy
    
  • Run Unidata system:

    docker-compose up -d
    
  • By default, you can see the UI on localhost:8081

The default login/password is admin/ admin. After the first login, you must change your password.

Clone another edition of Unidata

  • First, you need to contact one of Unidata integration partners and send a request for a custom repository. This can be Enterprise or Custom edition with additional modules.

  • Go to the your repository.

  • Select the release branch and clone the repository with the command:

    git clone <repository_URL>
    
  • Run Unidata system:

    docker-compose up -d
    
  • By default, you can see the UI on localhost:8081

The default login/password is admin/ admin. After the first login, you must change your password.

Pulling image

Obtaining Unidata for Docker is as simple as issuing a docker pull command against the Unidata Docker registry:

docker pull repo.tddev.ru/unidata-ce/backend:latest

To run unidata in a docker container, you need to 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

Starting unidata with docker compose

  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