Перейти к содержанию

Технические требования и установка

Состав поставки

Этот репозиторий содержит клиентскую часть продукта «АИС Домовые чаты» — статическое одностраничное React-приложение. Серверное API и его хранилище данных поставляются и разворачиваются отдельно.

Требования к рабочему месту пользователя

  • современный браузер с поддержкой JavaScript;
  • доступ по HTTPS к веб-приложению и серверному API;
  • разрешение экрана, достаточное для работы с таблицами; для мобильных экранов предусмотрено карточное представление;
  • действующая учётная запись в «АИС Домовые чаты».

Специальная установка на компьютер пользователя не требуется.

Требования для сборки

  • Node.js 20.19.4 или совместимая версия Node.js 20;
  • npm;
  • Git — для получения исходного кода;
  • доступ к реестру npm-пакетов.

Локальный запуск

  1. Получите исходный код и перейдите в каталог проекта.
  2. Установите зависимости:

bash npm ci

  1. Запустите сервер разработки:

bash npm run dev

  1. Откройте адрес, показанный Vite в терминале.

При запуске на localhost клиент обращается к тестовому API https://test.gji.tizix.ru/api. Отдельная переменная окружения для адреса API в текущей реализации не предусмотрена.

Проверка и сборка

Проверка исходного кода:

npm run lint

Производственная сборка:

npm run build

Команда сначала проверяет TypeScript, затем создаёт статические файлы в каталоге dist/.

Локальная проверка собранной версии:

npm run preview

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

  1. Выполните производственную сборку.
  2. Разместите содержимое dist/ на HTTPS-веб-сервере.
  3. Настройте выдачу index.html для маршрутов одностраничного приложения.
  4. Настройте серверный API на том же домене по пути /api.
  5. Откройте приложение и проверьте авторизацию и доступность основных разделов.

Вне локальной разработки адрес API формируется автоматически из текущего протокола и имени хоста: <протокол>://<хост>/api.

Автоматическое развёртывание

В проекте настроен GitLab CI:

  • Merge Request, ветки dev и main проходят сборку;
  • ветка dev автоматически развёртывается в тестовую среду;
  • развёртывание main в производственную среду запускается вручную;
  • подключение к серверам выполняется через Fabric и защищённые переменные GitLab CI.

Для существующего процесса требуются группы переменных SSH_DEV_* и SSH_PRODUCTION_*: адрес сервера, пользователь, пароль и путь проекта. Значения должны храниться только в защищённых переменных GitLab.

Эксплуатационные зависимости

Для полноценной работы должны быть доступны:

  • серверное API «АИС Домовые чаты»;
  • интеграция с MAX;
  • DaData — для функций, использующих адресные сведения;
  • сервис анализа сообщений — для тегирования и формирования проблем;
  • регламентные операции серверной части.

Требования к серверу

Для производственной эксплуатации используется VDS/VPS с публичным IPv4 и актуальной серверной операционной системой Linux, например Ubuntu 24.xx. Рекомендуется наличие панели управления ISPmanager.

Минимальная конфигурация сервера:

  • оперативная память — от 4 ГБ;
  • процессор — от 2 до 4 виртуальных ядер;
  • дисковое пространство — от 50 ГБ;
  • доступ по HTTPS к боевому домену;
  • отдельный непривилегированный системный пользователь для размещения приложения.

Требования являются базовыми. Ресурсы сервера увеличиваются системным администратором с учётом объёма базы данных, количества пользователей, сообщений и фоновых операций.

Серверная часть и база данных

Серверная часть продукта реализована на PHP 8.3 и Yii2. Она включает HTTP API, консольные команды, миграции базы данных и общий код предметной области. Для авторизации используются JWT access- и refresh-сессии.

В качестве системы управления базами данных используется MySQL 8.4. Для подключения PHP требуется расширение pdo_mysql; также требуется расширение mbstring.

Для размещения применяются:

  • Nginx и веб-сервер или PHP-FPM с обработкой PHP через FastCGI;
  • Composer для установки серверных зависимостей;
  • Git для получения исходного кода;
  • cron для запуска регламентных операций;
  • Node.js 20.19.4 или совместимая версия Node.js 20 для сборки клиентской части.

Публичным каталогом веб-сервера является public_html/. Исходный код, серверные зависимости и локальная конфигурация размещаются вне публичного каталога. Параметры подключения к базе данных, ключи авторизации и другие секреты хранятся в серверных файлах .env и core/config/params-local.php и не должны попадать в систему контроля версий.

Резервное копирование

Способ резервного копирования выбирает системный администратор исходя из имеющейся цифровой архитектуры, возможностей дата-центра и требований владельца системы.

Резервное копирование должно охватывать:

  • базу данных MySQL;
  • серверные конфигурационные файлы и переменные окружения;
  • необходимые для работы системы файлы и настройки.

Периодичность, срок хранения и место размещения резервных копий определяются системным администратором. Допускаются резервные копии на уровне дата-центра или ISPmanager с выносом копий на отдельное хранилище.

Восстановление

При возникновении сбоя восстановление выполняется администратором системы:

  1. Восстанавливается работоспособность серверного окружения.
  2. Разворачиваются компоненты приложения.
  3. Восстанавливается база данных MySQL из резервной копии.
  4. Восстанавливаются необходимые файлы и настройки.
  5. Проверяются доступность системы и корректность работы основных функций.