1212
ПУДАО · Документация
← Вся документация

Документация на программное обеспечение

Информация, необходимая для установки

Индивидуальный предприниматель Жуков Дмитрий Михайлович

Платформа управления данными, ИИ агентами и отчетами (ПУДАО)

ИНСТРУКЦИЯ ПО УСТАНОВКЕ ЭКЗЕМПЛЯРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ПРЕДОСТАВЛЕННОГО ДЛЯ ПРОВЕДЕНИЯ ЭКСПЕРТНОЙ ПРОВЕРКИ

Свидетельство о государственной регистрации программы для ЭВМ

 № 2026686541 от 01 сентября 2026 г.

Версия программного обеспечения 4.0.1
Редакция документа от 23.09.2026

Содержание

  1. Общие сведения

  2. Способы получения работающего экземпляра

  3. Требования к техническим и программным средствам

  4. Способ 1. Доступ к развёрнутому экземпляру (основной для экспертной проверки)

  5. Способ 2. Самостоятельное развёртывание в контейнерах

  6. Способ 3. Установка на выделенный сервер

  7. Настройка вспомогательных сервисов

  8. Проверка успешности установки

  9. Типовые ошибки и способы их устранения

  10. Обновление версии

  11. Удаление программного обеспечения

  12. Контакты службы поддержки

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 (МСК)