Технические требования и установка¶
Состав поставки¶
Этот репозиторий содержит клиентскую часть продукта «АИС Домовые чаты» — статическое одностраничное React-приложение. Серверное API и его хранилище данных поставляются и разворачиваются отдельно.
Требования к рабочему месту пользователя¶
- современный браузер с поддержкой JavaScript;
- доступ по HTTPS к веб-приложению и серверному API;
- разрешение экрана, достаточное для работы с таблицами; для мобильных экранов предусмотрено карточное представление;
- действующая учётная запись в «АИС Домовые чаты».
Специальная установка на компьютер пользователя не требуется.
Требования для сборки¶
- Node.js 20.19.4 или совместимая версия Node.js 20;
- npm;
- Git — для получения исходного кода;
- доступ к реестру npm-пакетов.
Локальный запуск¶
- Получите исходный код и перейдите в каталог проекта.
- Установите зависимости:
bash
npm ci
- Запустите сервер разработки:
bash
npm run dev
- Откройте адрес, показанный Vite в терминале.
При запуске на localhost клиент обращается к тестовому API https://test.gji.tizix.ru/api. Отдельная переменная окружения для адреса API в текущей реализации не предусмотрена.
Проверка и сборка¶
Проверка исходного кода:
npm run lint
Производственная сборка:
npm run build
Команда сначала проверяет TypeScript, затем создаёт статические файлы в каталоге dist/.
Локальная проверка собранной версии:
npm run preview
Развёртывание¶
- Выполните производственную сборку.
- Разместите содержимое
dist/на HTTPS-веб-сервере. - Настройте выдачу
index.htmlдля маршрутов одностраничного приложения. - Настройте серверный API на том же домене по пути
/api. - Откройте приложение и проверьте авторизацию и доступность основных разделов.
Вне локальной разработки адрес 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 с выносом копий на отдельное хранилище.
Восстановление¶
При возникновении сбоя восстановление выполняется администратором системы:
- Восстанавливается работоспособность серверного окружения.
- Разворачиваются компоненты приложения.
- Восстанавливается база данных MySQL из резервной копии.
- Восстанавливаются необходимые файлы и настройки.
- Проверяются доступность системы и корректность работы основных функций.