﻿# Установить ELMA Cortex с использованием Docker Swarm

> [HTML Version](cortex-docker-swarm.html)

Эта статья описывает установку с использованием Docker Swarm с доступом в интернет. О возможности установить **ELMA Cortex** офлайн читайте в [статьях об установке в закрытом контуре](cortex-harbor.md).

Этот вариант установки подходит для продуктивного окружения, т. к. позволяет масштабировать микросервисы при росте нагрузки.

Перед установкой:

1. Проверьте, что сервер, на котором выполняется установка, инициализирован как менеджер кластера Docker Swarm. Для этого при создании кластера выполняется команда `docker swarm init`.

2. Убедитесь, что вы [загрузили установочные файлы](cortex-download-installer.md) и [настроили переменные окружения](cortex-environment-variables.md).

Обратите внимание:

- для работы MongoDB в режиме репликации требуется ключ для внутренней аутентификации узлов базы данных. Он [создаётся автоматически в процессе установки](#mongodb-key); 

- если вы используете самоподписанные сертификаты, после установки [экспортируйте корневой сертификат](#caddy), чтобы добавить его в список доверенных.

## Установка ELMA Cortex

Для установки **ELMA Cortex** с использованием Docker Swarm:

1. Запустите скрипт установки:

````
chmod +x install.sh  
./install.sh

````
Если вы используете несколько копий **ELMA Cortex**, и нужно указать [название проекта](cortex-environment-variables.md#project-name), используйте параметр:

````
./install.sh --project-name my-cortex

2. ````
После выполнения скрипта `install.sh` некоторым сервисам может потребоваться несколько минут для полного запуска. Чтобы проверить готовность сервисов, выполните команду:

````
docker service logs -f elma-cortex\_gamma-apps

3. ````
Дождитесь в логах появления сообщения “Application startup complete”.

### Создание ключа для MongoDB

При установке **ELMA Cortex** в скрипте `install.sh` автоматически генерируется файл ключа аутентификации, который используется для репликации MongoDB, с нужными правами доступа. Он передаётся в Docker Swarm через секрет `mongodb-keyfile`. 

Если нужно создать новый ключ вручную, выполните команды:

````
openssl rand -base64 756 > mongo.keyfile  
sudo chmod 400 mongo.keyfile  
  
docker secret create mongo\_keyfile mongo.keyfile

### ````
Экспорт корневого сертификата Caddy

Если  в качестве [режима управления TLS‑сертификатами](cortex-tls-settings.md) вы выбрали **Internal**, экспортируйте корневой сертификат Caddy, чтобы добавить его в список доверенных:

````
docker exec \$(docker ps -q -f name=elma-cortex\_caddy) cat /data/caddy/pki/authorities/local/root.crt > caddy\_root.crt

````
Если выполнение команды не удаётся, используйте другой способ:

````
docker ps -f name=elma-cortex\_caddy  # returns <CONTAINER\_ID>  
docker cp <CONTAINER\_ID>:/data/caddy/pki/authorities/local/root.crt ./caddy\_root.crt

````
Установка **ELMA Cortex** завершена. Теперь вы можете перейти к [настройке интеграции с ELMA365](cortex-integration-solution.md).

При возникновении неполадок вы можете [провести диагностику](cortex-troubleshooting.md).

## Обновление ELMA Cortex

При выпуске новой версии **ELMA Cortex** сохраните текущую конфигурацию и выполните обновление. Подробнее читайте в статье [«Обновить ELMA Cortex при использовании Docker Swarm»](update-cortex-docker-swarm.md).

## Удаление ELMA Cortex

Шаги удаления **ELMA Cortex** описаны в статье [«Удалить ELMA Cortex при использовании Docker Swarm»](delete-cortex-docker-swarm.md).