---
metadata:
  - name: generator
    content: Diplodoc Platform v5.63.0
alternate:
  - en/cookbook/basic-setup
  - ru/cookbook/basic-setup
  - href: ru/cookbook/basic-setup.md
    type: text/markdown
    title: Markdown version
csp:
  - script-src:
      - https://mc.yandex.ru
    img-src:
      - https://mc.yandex.ru
    connect-src:
      - https://mc.yandex.ru
      - wss://mc.yandex.ru
    child-src:
      - 'blob:'
      - https://mc.yandex.ru
    frame-src:
      - 'blob:'
      - https://mc.yandex.ru
    frame-ancestors:
      - 'blob:'
      - https://mc.yandex.ru
canonical: ru/cookbook/basic-setup.html
title: Базовая установка DataLens On-premises
description: Из статьи вы узнаете, как установить и запустить DataLens On-premises.
vcsPath: ru/cookbook/basic-setup.md
---

# Базовая установка для быстрого старта и тестового окружения

## Базовая установка на виртуальную машину {#basic-installation}

{% note info %}

Ниже — пример развертывания базовой конфигурации.

{% endnote %}

1. Перейдите по [ссылке для скачивания](https://datalens.ru/download).

1. Выберите актуальную версию дистрибутива.

1. Ознакомьтесь с лицензионным соглашением и нажмите **Продолжить**.

    
    ![image](../_assets/datalens/cookbook/versions.png)


1. Скопируйте предоставленную ссылку.

1. На целевой ВМ или сервере выполните команду, подставив ссылку:

    ```shell
    curl -L https://clck.ru/<...> -o datalens-enterprise.tar
    ```

1. Создайте директорию и распакуйте в нее архив:

    ```shell
    mkdir -p ./datalens-enterprise
    tar -xvf datalens-enterprise.tar --directory ./datalens-enterprise
    ```

1. Перейдите в созданную директорию. Дальнейшая работа будет вестись из нее.

    ```shell
    cd ./datalens-enterprise
    ```

## Запуск дистрибутива {#distrib-init}

1. Убедитесь, что вы находитесь в папке с дистрибутивом — `./datalens-enterprise`.

1. Выполните команду установки с помощью домена `datalens-course.local`.

    Основной инструмент для управления установкой — скрипт `./init.sh`. Для базовой установки на «чистую» ВМ нужно передать ему ключи:
    * `--k3s-install` — указывает скрипту установить локальный легковесный Kubernetes-дистрибутив K3s.
    * `--ingress-domain <domain>` — задает доменное имя, по которому будет доступен DataLens. Например, `datalens-course.local`. Также можно использовать автоматическую настройку DNS с помощью `nip`: для этого укажите IP-адрес вашей машины и добавьте `.nip.io`, например `192.168.10.2.nip.io`.
    * `--ingress-tls` и `--ingress-tls-gen` — включают HTTPS и автоматически генерируют самоподписанный SSL-сертификат для указанного домена.

    ```shell
    # Замените <domain> на ваш домен, для теста подойдет datalens-course.local или IP-адрес виртуальной машины + .nip.io
    # Команду нужно выполнять из папки с дистрибутивом ./datalens-enterprise
    ./init.sh \
    --k3s-install \
    --ingress-domain datalens-course.local \
    --ingress-tls \
    --ingress-tls-gen
    ```

    Этот процесс займет несколько минут. Скрипт установит K3s, загрузит в него Docker-образы и развернет все компоненты DataLens.

1. Дождитесь завершения установки. В конце вы увидите сообщение об успешном развертывании релиза.

1. При использовании домена `.local` добавьте строку `<IP-адрес-ВМ> datalens-course.local` в файл `/etc/hosts` на локальном компьютере — это нужно, чтобы браузер мог найти сервер.

1. Затем зайдите в интерфейс по адресу `https://datalens-course.local`. Примите риск, так как сертификат самоподписанный, и войдите в систему с логином `admin` и полученным паролем (команда для его получения приведена ниже).

Чтобы изменить параметры установки (например, добавить возможность скачивания файлов `--files`), не нужно заново скачивать дистрибутив — просто повторно запустите скрипт `./init.sh` с параметрами. Параметр `--k3s-install` повторно указывать необязательно, так как кластер K3s уже создан.

## Обновление дистрибутива {#distrib-update}

Для обновления достаточно распаковать новую версию поверх старой и снова выполнить инициализацию. Строку инициализации можно оставить без изменений, но добавить параметр `--k3s-image-load`. Параметр `--k3s-install` при повторной инициализации указывать необязательно, так как кластер K3s уже создан.

## Получение доступа администратора {#admin-password}

При первой установке система автоматически генерирует сложный пароль для пользователя `admin`. Его можно получить с помощью команды:

```shell
./init.sh --get-admin-password
```

Если пароль будет утерян, его можно получить этой же командой.

## Управление ключами и секретами {#secret-manage}

DataLens использует эти типы ключей:

* RSA-ключи для сервиса аутентификации.
  Приватный ключ используется для подписи пользовательских токенов, публичный — для их проверки. Ключи создаются автоматически при первой установке. При необходимости их можно перегенерировать с помощью флага `--auth-rsa-gen`.

* `CONTROL_API_CRYPTO_KEY`
  Ключ служит для шифрования чувствительных данных (паролей или токенов) в полях подключений. Генерируется и сохраняется автоматически. Если этот ключ будет утерян, DataLens не сможет расшифровать реквизиты существующих подключений. В этом случае нужно сбросить ключ шифрования и заново ввести все пароли.

  ```shell
  # Сброс ключа шифрования CONTROL_API_CRYPTO_KEY
  ./init.sh --pg /init/us-restore.sh --reset-crypto-key
  ```

Управлять этими ключами вручную при базовой установке не нужно, но важно знать их назначение.

## Дополнительные функции {#features-enable}

Некоторые функции в DataLens включаются отдельно, чтобы базовая установка потребляла минимум ресурсов.

Чтобы включить дополнительные функции (Editor или файловые подключения), следуйте указаниям в файле `README.md` и добавьте в строку инициализации флаги `--editor` и `--files`. Результат:

```shell
./init.sh --ingress-domain <domain> --ingress-tls --ingress-tls-gen --editor --files
```

## Зеркалирование Docker-образов {#docker-registry}

Если ВМ без доступа к интернету, но у вас есть внутренний Docker Registry (например, Harbor, Nexus, Yandex Container Registry), предварительно загрузите туда образы из дистрибутива с помощью команды:

```shell
# docker-config.json — файл с реквизитами доступа к registry
# registry.my-company.tech — адрес registry
./init.sh \
--docker-image-load \
--docker-image-push \
--docker-registry registry.my-company.tech \
--docker-config ./help/docker-config.example.json
```

При установке на целевой системе укажите этот `registry`, чтобы Kubernetes скачивал образы из него, а не из локального хранилища.

## Структура дистрибутива {#distrib-structure}

{% note warning %}

Скрипт `./init.sh` — это единая точка входа для развертывания дистрибутива и выполнения вспомогательных скриптов.

{% endnote %}

Внутри скрипта используются стандартные команды утилит `kubectl` и `helm` (менеджер пакетов для Kubernetes). Для вывода списка подов можно выполнить команду: `sudo k3s kubectl get pods -n datalens-enterprise` или `./init.sh --kubectl get pods`. Все доступные параметры конфигурации развертывания описаны в файле `helm/values.yaml`.

{% note tip %}

Если что-то идет не так, проверьте поды с помощью`/init.sh --k9s`.

{% endnote %}

## Состав дистрибутива {#distrib-consist}

* `CHANGELOG.md` — список изменений всех версий релизов.

* `EULA.md` — лицензионное соглашение конечного пользователя. Описывает условия использования программного обеспечения.

* `README.md` — основная документация по установке и настройке.

* `datalens-enterprise-images.txt` — список Docker-образов и их версий, которые используются в дистрибутиве.

* `datalens-enterprise-images.tar.gz` — архив Docker-образов.

* `init.sh` — главный скрипт для развертывания и администрирования дистрибутива.

* `meta.json` — метаданные о текущем релизе, включая версии ключевых компонентов и контрольные суммы релиза.

* `bin/` — содержит исполняемые файлы утилит:

    * `kubectl` — инструменты для взаимодействия с кластером Kubernetes.
    * `helm` — пакетный менеджер для управления Helm-чартами.
    * `helm-diff` — вспомогательная утилита для управления Helm-релизами, помогает отображать список изменений при обновлении.
    * `stern` — утилита для просмотра логов в Kubernetes-кластере.
    * `k9s` — утилита для администрирования Kubernetes-кластера с визуальным интерфейсом внутри терминала.
    * `prgz` — утилита для отображения прогресса распаковки архивов внутри дистрибутива. Поддерживает SSH-сессию в рабочем состоянии в процессе распаковки.
    * `yq` — инструмент для обработки и парсинга файлов JSON и YAML.

* `helm/` — содержит Helm-чарты и шаблоны для развертывания:

    * `Chart.yaml` — основная информация о Helm-чарте.
    * `values.yaml` — файл конфигурации со значениями по умолчанию.
    * `templates/` — шаблоны Kubernetes-манифестов (`deployment`, `service`, `volume` и т. д.).

* `help/` - содержит вспомогательные инструкции и примеры конфигураций:

    * `docs/id-sync.md/pdf/html` — инструкция по настройке скрипта для синхронизации групп пользователей с внешними провайдерами.
    * `docs/ldap.md/pdf/html` — инструкция по настройке интеграции с LDAP.
    * `docs/oidc.md/pdf/html` — инструкция по настройке интеграции с OpenID, который совместим с внешним провайдером аутентификации на примере Keycloak.
    * `auth-provider-config.example.json` — пример конфигурации для провайдеров аутентификации.
    * `docker-config.example.json` — пример конфигурации для доступа к приватному реестру Docker-образов.
    * `idp-sync.js` — пример синхронизации групп пользователей из внешней IdP-системы (Identity Provider).
    * `values.example.yaml` — пример заполненного файла конфигурации с правильным экранированием значений. Значения указаны для примера и не могут быть использованы в таком виде для развертывания.

* `k3s/` - содержит ресурсы для установки K3s-кластера полностью в офлайн-режиме:

    * `install.sh` — скрипт установки и настройки K3s-кластера.
    * `k3s` — утилита управления K3s-кластером.
    * `k3s-images.tar.zst` — архив с системными образами для K3s-кластера.

## Итоги {#results}

Вы развернули экземпляр DataLens On-premises и вошли в него. Научились использовать скрипт `./init.sh` для быстрой установки и управления паролем администратора.
