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

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

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`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://visaver.gitbook.io/visaver-api/zapusk-servisa-na-ploshadke-klienta.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
