Индивидуальный предприниматель Жуков Дмитрий Михайлович
Платформа управления данными, ИИ агентами и отчетами (ПУДАО)
ИНСТРУКЦИЯ ПО УСТАНОВКЕ ЭКЗЕМПЛЯРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ПРЕДОСТАВЛЕННОГО ДЛЯ ПРОВЕДЕНИЯ ЭКСПЕРТНОЙ ПРОВЕРКИ
Свидетельство о государственной регистрации программы для ЭВМ
№ 2026686541 от 01 сентября 2026 г.
Версия программного обеспечения 4.0.1
Редакция документа от 23.09.2026
Содержание
Общие сведения
Способы получения работающего экземпляра
Требования к техническим и программным средствам
Способ 1. Доступ к развёрнутому экземпляру (основной для экспертной проверки)
Способ 2. Самостоятельное развёртывание в контейнерах
Способ 3. Установка на выделенный сервер
Настройка вспомогательных сервисов
Проверка успешности установки
Типовые ошибки и способы их устранения
Обновление версии
Удаление программного обеспечения
Контакты службы поддержки
1. Общие сведения
Наименование программного обеспечения: Платформа управления данными, ИИ агентами и отчетами (ПУДАО) (далее — Система).
Версия: 4.0.1.
Правообладатель: ИП Жуков Дмитрий Михайлович, ИНН 165608806059, ОГРНИП 319169000050063.
Назначение документа. Документ содержит последовательность действий, выполнение которых обеспечивает получение работающего экземпляра Системы, пригодного для проведения экспертной проверки, а также проверку правильности установки, устранение типовых ошибок и порядок удаления.
Тип программного обеспечения. Система представляет собой серверное веб-приложение с многопользовательским доступом через веб-браузер. Установка программного обеспечения на рабочие места пользователей не требуется.
Экземпляр для экспертной проверки предоставляется в виде развёрнутого стенда по адресу https://pudao.1212.pro/ с учётными записями на каждую роль (раздел 4). Дополнительно, по запросу проверяющего, предоставляется дистрибутив для самостоятельного развёртывания (разделы 5 и 6).
2. Способы получения работающего экземпляра
№ | Способ | Когда применяется | Время |
1 | Доступ к развёрнутому экземпляру по сети | Основной способ для экспертной проверки. Не требует установки и настройки. | до 5 минут |
2 | Развёртывание в контейнерах на одном узле | Проверка воспроизводимости установки, локальное изучение, стенд заказчика. | 15–30 минут |
3 | Установка на выделенный сервер без контейнеризации | Промышленная эксплуатация в инфраструктуре заказчика. | 1,5–3 часа |
3. Требования к техническим и программным средствам
3.1. Рабочее место пользователя (для способа 1)
Параметр | Значение |
Процессор, оперативная память | Любой современный персональный компьютер; не менее 4 ГБ ОЗУ |
Веб-браузер | Яндекс Браузер, «Атом», Google Chrome, Microsoft Edge, Mozilla Firefox актуальных версий. Обязательно включены JavaScript и cookie-файлы |
Разрешение экрана | не менее 1366 × 768; рекомендуется 1920 × 1080 |
Сеть | Доступ в сеть Интернет по протоколу HTTPS, скорость не менее 2 Мбит/с (загрузка и выгрузка файлов документов) |
Дополнительное ПО | Не требуется. Для просмотра выгрузок — любой табличный процессор, поддерживающий формат XLSX, и просмотрщик PDF |
3.2. Сервер (для способов 2 и 3)
Параметр | Минимально | Рекомендуется | |
Процессор | 2 vCPU | 4 vCPU и более | |
Оперативная память | 4 ГБ | 8 ГБ и более | |
Дисковое пространство | 40 ГБ | 150 ГБ и более (зависит от объёма прикладываемых к заявкам документов; при вынесении файлов в объектное хранилище требования к диску снижаются) | |
Параметр | Значение | ||
Операционная система | GNU/Linux x86-64 с ядром 5.x и выше. Экземпляр для экспертной проверки работает под управлением Ubuntu 26.04 LTS. Порядок испытаний под Astra Linux Special Edition 1.7 приведён в документе «Программа и методика испытаний» | ||
Системное ПО | PHP 8.1 и новее (в поставке — PHP 8.5, режим FPM) с расширениями pdo, pdo_pgsql, gd, zip; веб-сервер nginx; СУБД PostgreSQL 18 (рабочая база) и PostgreSQL 15 (база журнала событий); для способа 2 — Docker Engine и Docker Compose v2 | ||
Сетевые порты | Наружу — 80/443 (HTTP/HTTPS). Порты СУБД и вспомогательных сервисов наружу не публикуются | ||
4. Способ 1. Доступ к развёрнутому экземпляру
Экземпляр Системы, предоставленный для проведения экспертной проверки, развёрнут на технических средствах, размещённых на территории Российской Федерации, и доступен по адресу: https://pudao.1212.pro/
Данные на стенде — демонстрационные; персональные данные реальных лиц отсутствуют.
4.1. Учётные записи для проверки
Каждой роли соответствует отдельная учётная запись. Полный набор ролей необходим для проверки всех функций: разграничение доступа — одна из основных функций Системы, и в одной учётной записи она не наблюдаема.
Пароли к учётным записям предоставляются проверяющему по запросу в службу поддержки (раздел 12) и в открытом виде в документации не публикуются.
Роль | Логин | Что доступно для проверки |
Администратор системы | admin@pudao.demo | Полный доступ: пользователи, роли, справочники, конструктор этапов, журнал событий |
Оператор | manager@pudao.demo | Ведение процедуры, работа с поступившими заявками |
Оператор (технический специалист) | tech@pudao.demo | Проверка поступивших заявок на соответствие требованиям, возврат на доработку по отдельным пунктам |
Заявитель | subject@pudao.demo | Создание и заполнение заявки по этапам, прикрепление документов, отправка на рассмотрение, доработка возвращённой заявки |
Эксперт | expert@pudao.demo | Оценка заявок по критериям этапов, выставление баллов и комментариев |
Рабочая группа | mrg@pudao.demo | Итоговая оценка, просмотр сводных результатов |
Руководитель | director@pudao.demo | Утверждение результатов процедуры |
Наблюдатель | viewer@pudao.demo | Просмотр без права изменения данных |
4.2. Порядок первого входа
1. Открыть в веб-браузере адрес https://pudao.1212.pro/
2. Убедиться, что открылась страница входа с полями «Логин» и «Пароль» и наименованием Системы в заголовке.
3. Ввести логин выбранной роли из таблицы 4.1 и полученный пароль, нажать кнопку входа.
4. Убедиться, что открылся рабочий экран роли и в правом верхнем углу отображается имя учётной записи.
5. Дальнейшие действия — по документу «Документация, содержащая информацию, необходимую для эксплуатации»: ekspluataciya.html
Смена роли. Учётные записи разных ролей не связаны между собой. Для перехода к другой роли необходимо завершить сеанс (пункт «Выход» в меню пользователя) и войти под другой учётной записью. Одновременная работа под разными ролями возможна в разных браузерах либо в режиме приватного окна.
5. Способ 2. Самостоятельное развёртывание в контейнерах
Весь контур Системы — веб-приложение, рабочая СУБД, шлюз к объектному хранилищу, приёмник журнала событий со своей базой, сервис снимков формы заявки, аналитика журнала и задачи по расписанию — описан в файле docker-compose.yml в корне дистрибутива и поднимается на одном узле одной командой.
5.1. Подготовка
Дистрибутив предоставляется по запросу в службу поддержки info@1212.pro. Распаковать его в рабочий каталог и перейти в него. Убедиться, что установлены Docker Engine и Docker Compose:
docker --version
docker compose version
Для первой сборки узлу нужен доступ к реестру образов контейнеров и к репозиторию пакетов PHP (либо к их локальным зеркалам): зависимости приложения собираются при сборке образа.
5.2. Файлы с реквизитами
Три файла с реквизитами не входят в дистрибутив по соображениям безопасности; рядом с каждым лежит образец. Создать их копированием и заполнить:
cp .env.example .env
cp config/db.php.example config/db.php
cp config/services-local.example.php config/services-local.php
Файл | Что задаётся |
.env | Реквизиты рабочей базы (переменные POSTGRES_*) и базы журнала событий (JOURNAL_DB_*), порты публикации на узле, адрес приложения во внутренней сети контура |
config/db.php | Строка подключения приложения к базе. Пароль обязан совпадать со значением POSTGRES_PASSWORD в .env |
config/services-local.php | Реквизиты объектного хранилища, приёмника журнала событий и сервиса снимков формы заявки; адрес приложения для консольных команд; параметры почтового сервера. Значения, не заданные здесь, берутся из config/params.php |
Частая ошибка. Пароль в .env применяется только при первичной инициализации каталога данных СУБД. Если том с базой уже создан, изменение пароля в .env ни на что не повлияет, и приложение не подключится к базе. При смене пароля на уже созданном томе пароль меняется средствами самой СУБД либо том пересоздаётся.
5.3. Подъём контура
docker compose up -d --build
Команда собирает образы и поднимает весь контур в фоне. Первая сборка занимает 5–15 минут. Результат:
Сервис | Адрес | Назначение |
app | http://localhost:8080 | Веб-приложение Системы (nginx и PHP-FPM в одном контейнере) |
db | порт 5433 на узле | СУБД PostgreSQL 18, рабочая база |
s3 | http://s3:8080 внутри контура; 127.0.0.1:5301 на узле | Шлюз к объектному хранилищу: ссылки на загрузку, выгрузка, сборка архивов |
audit_logs | http://audit_logs:8080 внутри контура; 127.0.0.1:9013 на узле | Приёмник журнала событий |
audit_logs_db | только внутри контура | СУБД PostgreSQL 15, база журнала событий |
audit_logs_schedule | — | Задача по расписанию: суточные выгрузки разделов журнала |
snaphot | http://snaphot:8000 внутри контура; 127.0.0.1:9012 на узле | Сервис снимков сохранений формы заявки |
dump_db_snaphot | — | Задача по расписанию: выгрузка снимков |
analytics | 127.0.0.1:9014 на узле | Аналитика журнала событий |
Порты задаются переменными APP_PORT, DB_PORT, S3_PORT, JOURNAL_PORT, SNAPSHOTS_PORT, ANALYTICS_PORT в .env. Порт базы публикуется на всех адресах узла: на узле, доступном из внешней сети, его закрывают межсетевым экраном.
5.4. Инициализация базы данных
Схема базы разворачивается миграциями (82 миграции в каталоге migrations/):
docker compose exec app php yii migrate --interactive=0
Команда идемпотентна: повторный запуск применит только новые миграции.
5.5. Учётная запись администратора
Учётная запись администратора admin@admin.com создаётся при выполнении миграций (п. 5.4) со случайным паролем, который нигде не сохраняется. Рабочий пароль задаётся командой (пароль вводится с клавиатуры дважды):
docker compose exec app php yii admin/set-password
Команда php yii admin/check проверяет, что у учётной записи не остался прежний пароль.
Остальные пользователи заводятся администратором через интерфейс Системы. Для демонстрационного наполнения (учётные записи на каждую роль, процедура с этапами и заявками) предназначена команда:
docker compose exec app php yii demo/seed
Пароли созданных учётных записей выводятся в консоль один раз. Команда php yii demo/reset-passwords выпускает их заново.
5.6. Проверка связки с объектным хранилищем
docker compose exec app php yii s3/check
docker compose exec app php yii s3/smoke
Первая команда проверяет доступность шлюза и корректность реквизитов, вторая — прогоняет все маршруты шлюза, включая сборку архива и публичную выгрузку, и удаляет за собой созданные объекты. Команда s3/smoke защищена от запуска на рабочем хранилище.
6. Способ 3. Установка на выделенный сервер
Порядок для промышленной эксплуатации без контейнеризации. Приводится последовательность для дистрибутивов на базе Debian/Ubuntu; для российских операционных систем отличаются только имена пакетов и команда пакетного менеджера.
1. Системное ПО. Установить nginx, PHP-FPM 8.1 или новее с расширениями из п. 3.2, Composer и клиент PostgreSQL. Проверить состав расширений: php -m.
2. СУБД. Установить PostgreSQL 18, создать базу данных и пользователя с правами на неё. Кодировка базы — UTF8.
3. Размещение файлов. Распаковать дистрибутив в каталог веб-приложения, например /var/www/app. Корнем веб-сервера назначается подкаталог web/ — остальные каталоги наружу не публикуются.
4. Зависимости. Установить библиотеки в корне приложения командой composer install --no-dev. Требуется доступ к репозиторию пакетов либо к его локальному зеркалу.
5. Реквизиты. Создать config/db.php и config/services-local.php из образцов (см. п. 5.2).
6. Права доступа. Веб-процесс должен иметь право записи в каталог runtime/ и рабочие подкаталоги web/:
mkdir -p runtime/logs runtime/cache
cd web
mkdir -p tmp tmp2 zip zip_logs downloads uploads order_backups settings-backup
chown -R www-data:www-data tmp tmp2 zip zip_logs downloads uploads order_backups settings-backup
cd ..
chown -R www-data:www-data runtime
Отсутствие этих каталогов — причина ошибки при загрузке файла к заявке: файл сначала сохраняется во временный каталог и только затем передаётся шлюзу хранилища.
7. Миграции. php yii migrate --interactive=0
8. Веб-сервер. Настроить виртуальный узел: корень — web/, обработка .php через PHP-FPM, все несуществующие пути перенаправляются на index.php. Образцы конфигурации nginx и PHP входят в дистрибутив (nginx.conf, php.ini). Ограничения на размер загружаемого файла в веб-сервере и в php.ini должны быть согласованы между собой и соответствовать максимальному размеру прикладываемого документа.
9. Защищённое соединение. Настроить TLS-сертификат. Работа Системы по незащищённому протоколу в промышленной эксплуатации не допускается: через неё передаются учётные данные и документы.
10. Первый вход. Учётная запись администратора admin@admin.com создана миграциями со случайным паролем. Задать рабочий пароль командой php yii admin/set-password и войти.
7. Настройка вспомогательных сервисов
Помимо основного приложения в состав Системы входят четыре вспомогательных сервиса. Их исходные тексты поставляются в каталоге services/ того же дистрибутива. При способе 2 все они поднимаются из корневого docker-compose.yml вместе с приложением; дополнительные параметры сервиса задаются файлом .env в его каталоге (образец — .env.example).
Сервис | Порт | Назначение | Обязателен |
Шлюз к объектному хранилищу (s3) | 5301 | Выдача ссылок на прямую загрузку, приём файлов, сборка ZIP-архивов заявок | Да, если файлы хранятся в объектном хранилище |
Приёмник журнала событий (audit_logs) | 9013 | Приём и хранение событий журнала, метод /audit-logs | Да |
Сервис снимков (snaphot) | 9012 | Хранение снимков заявки при каждом сохранении формы | Нет, функция снимков отключается |
Аналитика журнала (analytics) | 9014 | Аналитическая панель поверх журнала событий | Нет |
Три параметра, при расхождении которых сервисы молча перестают работать.
1. Список разрешённых адресов (ALLOWED_IPS) у приёмника журнала и у сервиса снимков сверяется с адресом приложения точным совпадением, без масок. При способе 2 адрес приложения закреплён переменной APP_IP и попадает в список автоматически. При смене адреса приложения журнал перестаёт наполняться; отказ виден только в логе приложения.
2. Секрет входа в аналитику: значение analyticsAuthSecret в config/services-local.php обязано совпадать с AUTH_SECRET в .env сервиса аналитики. Пустое значение с любой стороны — пункт меню не отображается.
3. Каталог data/ сервиса снимков должен размещаться на постоянном томе: в нём хранятся сами снимки, и при пересоздании контейнера без тома история теряется.
8. Проверка успешности установки
Установка считается выполненной, если воспроизводятся все пункты чек-листа.
№ | Действие | Ожидаемый результат |
1 | Открыть адрес Системы в браузере | Отображается страница входа с наименованием Системы; ошибок сервера нет |
2 | Войти под учётной записью администратора | Открывается рабочий экран, в меню доступны разделы управления пользователями и настройками |
3 | Открыть раздел «Пользователи» | Отображается список учётных записей с фильтрами и постраничной навигацией |
4 | Войти под учётной записью заявителя, создать заявку и сохранить её | Заявка сохранена в статусе «Черновик» и видна в списке заявок |
5 | Прикрепить к заявке файл документа | Файл загружен, отображается в составе пункта заявки и доступен к скачиванию |
6 | Выполнить php yii s3/check | Команда завершается успешно, сообщает о доступности хранилища |
7 | Войти под учётной записью технического специалиста | Поступившая заявка видна в списке на проверку; доступны действия «принять» и «вернуть на доработку» |
8 | Открыть журнал событий под администратором | Записи о выполненных выше действиях присутствуют, указаны пользователь, время и версия приложения |
9. Типовые ошибки и способы их устранения
Признак | Причина | Устранение |
Страница отвечает ошибкой 500, в логе приложения пусто | Каталог runtime/ недоступен веб-процессу на запись — приложению некуда писать даже сообщение об ошибке | Создать runtime/logs и runtime/cache, назначить владельцем пользователя веб-процесса (п. 6, шаг 6) |
Контейнер app останавливается с сообщением «vendor/autoload.php нет» | Том vendor, оставшийся от прежней сборки, перекрывает библиотеки из образа | Выполнить docker compose down, удалить том <проект>_vendor и поднять контур заново |
Ошибка подключения к базе данных | Пароль в config/db.php не совпадает с паролем СУБД; либо адрес узла базы указан неверно | Сверить пароль с .env. Учесть, что на уже созданном томе переменные POSTGRES_* не применяются (п. 5.2) |
Загрузка файла к заявке завершается ошибкой | Отсутствует рабочий каталог web/tmp2, либо превышен предел размера загружаемого файла в веб-сервере или PHP | Создать каталоги по п. 6, шаг 6; согласовать client_max_body_size, upload_max_filesize и post_max_size |
Журнал событий не наполняется | Адрес приложения отсутствует в ALLOWED_IPS приёмника журнала; отказ молчаливый | Внести адрес приложения точным значением, перезапустить приёмник, проверить лог приложения по категории journal |
Пункт меню «Аналитика» не отображается | Не задан секрет analyticsAuthSecret либо адрес сервиса аналитики | Заполнить оба параметра в config/services-local.php, сверить с .env сервиса |
Изменения в интерфейсе не видны после обновления | Кэш приложения и опубликованные ресурсы не сброшены | php yii cache/flush-all, очистить web/assets, перезапустить PHP-FPM |
Не приходят уведомления по электронной почте | Уведомления отключены параметром notificationsEnabled либо неверны реквизиты почтового сервера | Проверить параметр и реквизиты SMTP в config/services-local.php. На тестовых контурах отправка отключается намеренно |
10. Обновление версии
1. Создать резервную копию базы данных и каталога с пользовательскими файлами.
2. Установить новую версию файлов приложения (при способе 2 — пересобрать контур командой docker compose up -d --build).
3. Применить миграции: php yii migrate --interactive=0.
4. Сбросить кэш: php yii cache/flush-all.
5. Проверить работоспособность по чек-листу раздела 8.
Порядок отката к предыдущей версии, регламент резервного копирования и периодичность обновлений описаны в документе «Описание процессов, обеспечивающих поддержание жизненного цикла»: zhiznennyy-cikl.html
11. Удаление программного обеспечения
Для контейнерной установки:
docker compose down -v
Ключ -v удаляет тома вместе с базами данных. Для установки на выделенный сервер: остановить веб-сервер и PHP-FPM, удалить каталог приложения, удалить базу данных и учётную запись СУБД, снять конфигурацию виртуального узла веб-сервера.
Операция необратима. Перед удалением убедиться, что резервные копии базы данных и пользовательских файлов созданы и проверены на восстановление.
12. Контакты службы поддержки
Порядок обращения в службу поддержки. При обращении сообщить: логин (без пароля), роль, дату и время события, номер заявки, выполняющееся действие, текст сообщения об ошибке. Эти сведения позволяют найти событие в журнале и установить причину.
Канал | Реквизиты |
Электронная почта | info@1212.pro |
Режим работы | рабочие дни, 9.00–18.00 (МСК) |