﻿# Настроить переменные окружения ELMA Cortex

> [HTML Version](cortex-environment-variables.html)

Перед установкой **ELMA Cortex** задайте значения в файле переменных окружения: 

1. Перейдите к [загруженным установочным файлам ELMA Cortex](cortex-download-installer.md).

2. Откройте папку, соответствующую вашему способу установки — `docker-compose` или `docker-swarm`. 

3. Выберите файл `.env`.

4. Задайте:

- [название проекта](#project-name) — указывается, если вы используете несколько копий **ELMA Cortex**;

- [адрес сервера](#service-address) — имя хоста и порт;

- [настройки TLS](#tls-settings) — режим управления сертификатами и параметры их использования;

- [способ авторизации администратора в ELMA Cortex](#authentication) — с помощью ELMA365 или ELMA Bot;

- [использование встроенных или внешних сервисов](#external-services);

- [настройки производительности](#performance).

Параметры, которые вы задаёте, используются при установке **ELMA Cortex**. Если вы изменяете их значения позже, [примените их с помощью скрипта](#apply-new-values).

## Название проекта

Если вам нужно запускать несколько изолированных копий **ELMA Cortex** на одном хосте, для них нужно задать уникальные названия проектов. Они применяются: 

- при использовании Docker Compose — в качестве значения для параметра `COMPOSE\_PROJECT\_NAME` и префикса для контейнеров;

- при использовании Docker Swarm — в качестве префикса для имён сервисов.

По умолчанию установлено значение `elma-cortex`. Пользовательское название проекта можно задать двумя способами:

1. В файле переменных окружения `.env`.

Способ удобен, если для каждой копии **ELMA Cortex** создана отдельная папка с установочными файлами, и скрипты вызываются из неё. При его использовании:

- для указания названия измените значение переменной `PROJECT\_NAME`;

- после этого скрипты установки, диагностики и удаления нужно запускать без указания названия проекта. Оно подставится из файла `.env`.

2. При запуске скрипта.

Способ позволяет вручную указывать нужный проект при каждом вызове скриптов установки, диагностики и удаления. При его использовании:

- для указания названия при первом запуске скрипта установки используйте параметр `--project-name`. Подробнее читайте в статьях об установке **ELMA Cortex**;

- при каждом последующем вызове скриптов для обновления, диагностики или удаления **ELMA Cortex** нужно указывать название проекта в параметре `--project-name`.

## Адрес сервера ELMA Cortex

Заполните переменные:

- `ELMA\_CORTEX\_HOSTNAME` — имя хоста вашего сервера;

- `ELMA\_CORTEX\_PORT` — HTTPS-порт. По умолчанию используется порт 443.

## Настройки TLS

В зависимости от используемого удостоверяющего центра установите режим управления TLS-сертификатами и задайте параметры их использования. 

Подробнее читайте в [статье о настройке TLS-сертификатов для ELMA Cortex](cortex-tls-settings.md).

## Авторизация

По умолчанию при открытии **ELMA Cortex** пользователь автоматически входит как администратор. Для повышения безопасности настройте вход с помощью ELMA365 или ELMA Bot.

Подробнее читайте в [статье о настройке авторизации в ELMA Cortex](cortex-auth-settings.md).

## Использование внешних сервисов

Вместе с **ELMA Cortex** поставляются сервисы, используемые для его работы, такие как MongoDB, Redis, RabbitMQ и т. д.

Вы можете отключить установку встроенных сервисов, если они уже настроены в вашей инфраструктуре. Для этого в файле `.env` установите для переменной с названием сервиса значение `false`:

````
CADDY\_ENABLED=false  
REDIS\_ENABLED=false  
MONGO\_ENABLED=false  
RABBIT\_ENABLED=false  
MINIO\_ENABLED=false  
QDRANT\_ENABLED=false  
PHOENIX\_ENABLED=false

````
После этого настройте подключение **ELMA Cortex** к внешним сервисам. Для этого раскомментируйте переменные, относящиеся к ним. Значения, необходимые для подключения, зависят от сервиса.

## Настройки производительности

Для повышения пропускной способности можно настроить масштабирование **ELMA Cortex** при росте нагрузки.

````
начало внимание

````
Масштабирование ресурсов при росте нагрузки доступно только в определённых [редакциях ELMA Cortex](cortex-editions.md).

````
конец внимание

````
Чтобы управлять масштабированием, настройте в файле `.env` параметры:

- количество worker HTTP-сервера. Обычно равно числу ядер процессора. По умолчанию `4`:

````
UVICORN\_WORKERS=8

- ````
количество worker для выполнения фоновых задач. По умолчанию **4**:

````
CELERY\_WORKER\_CONCURRENCY=8

- ````
включение автоматического масштабирования пулов worker — расширенная настройка, которая позволяет определять параметр `CELERY\_WORKER\_CONCURRENCY` отдельно для определённых пулов worker:

````
CELERY\_START\_WORKER\_MAIN=--autoscale=2,4 -Q celery.gamma.tasks.ingestion,celery.gamma.tasks.search.run,celery.gamma.tasks.agent.run  
CELERY\_START\_WORKER\_FAST=--autoscale=4,8 -Q celery.gamma.tasks.search.run,celery.gamma.tasks.agent.run

## ````
Применение значений для переменных окружения

Заданные настройки автоматически применятся при установке **ELMA Cortex**.

Если вы обновляете параметры в файле `.env` после установки, для их применения используйте команду:

````
./install.sh
````