> For the complete documentation index, see [llms.txt](https://visaver.gitbook.io/visaver-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://visaver.gitbook.io/visaver-api/zapusk-servisa-na-ploshadke-klienta.md).

# Запуск сервиса на площадке клиента

## Первоначальные требования

1. Сервер для установки
   1. Доступ по SSH
   2. Установлены docker и docker-compose-plugin
2. В Yandex Cloud создан сервисный аккаунт для клиента
   1. Выданы права на скачивание docker images
   2. Сгенерирован json ключ

## Развертывание

1. Выполнить логин в docker registry `cat key.json | docker login --username json_key --password-stdin cr.yandex`, где `key.json` - ключ сервисного аккаунта из пункта 2.2 в первоначальный требованиях
2. Поместить файл `docker-compose.customers.yml` в папку `/opt/visaver/vi_client`
   * При необходимости поправить тег контейнера. Возможные значения:
     * имя ветки - будет использована самая последняя сборка для данной ветки
     * hash коммита
3. В папке `/opt/visaver/vi_client` создать файл `.env`, в котором указать переменные:

   **Обязательные переменные:**

   * `API_KEY` - API ключ для взаимодействия с внешним сервисом обработки (vi\_server)
   * `API_URL` - URL внешнего сервиса обработки (<https://api.visaver.com>)
   * `ADMIN_USERNAME` - Логин для доступа к админ панели
   * `ADMIN_PASSWORD` - Пароль для доступа к админ панели
   * `SECRET_KEY` - Секретный ключ для шифрования сессий (случайная строка длиной 32+ символа)
   * `GITHUB_SHA` - Тег Docker образа для worker'ов (например: main или хеш коммита)

   #### Пример .env файла:

   ```bash
   # Обязательные переменные
   API_KEY=your-api-key-from-visaver
   API_URL=https://api.visaver.com
   ADMIN_USERNAME=admin
   ADMIN_PASSWORD=YourSecurePassword123
   SECRET_KEY=your-very-long-random-secret-key-string-32-chars-min
   FRAMER_HOST=http://your-domain:${PUBLIC_PORT}
   PUBLIC_PORT=8080
   ```

   **Примечания:**

   * База данных и RabbitMQ используют встроенные учетные данные и не требуют настройки
   * Сервис будет доступен на порту 80 (HTTP)
   * База данных PostgreSQL доступна локально на порту 5432
   * RabbitMQ Management доступен локально на порту 15672
4. В папке `/opt/visaver/vi_client` выполнить команду `docker compose -f docker-compose.customers.yml up --wait --no-build`

## Обновление

1. Выполнить логин в docker registry `cat key.json | docker login --username json_key --password-stdin cr.yandex`, где `key.json` - ключ сервисного аккаунта из пункта 2.2 в первоначальный требованиях
2. При необходимости поправить тег контейнера. Возможные значения:
   * имя ветки - будет использована самая последняя сборка для данной ветки
   * hash коммита
3. В папке `/opt/visaver/vi_client` выполнить команду `docker compose -f docker-compose.customers.yml pull && docker compose -f docker-compose.customers.yml up --wait --no-build`
