Сокращение | Расшифровка сокращения |
Система, Система электронного документооборота EnDocs | EnDocs – система электронного документооборота. Программное обеспечение, предназначенное для решения задач по автоматизации процессов хранения документов и автоматизации процессов работы с документами в электронно-цифровом виде: • Электронный архив • Согласование и оплата счетов • Согласование договоров • Цифровая бухгалтерия • Канцелярия и делопроизводство • Кадровый ЭДО |
Правообладатель | Общество с ограниченной ответственностью «ЭНСОЛ» |
Пользователь | Физическое лицо или сотрудник организации, получившие доступ к программному обеспечению с целью его использования |
EnDocs – система электронного документооборота. Программное обеспечение, предназначенное для решения задач по автоматизации процессов хранения документов и автоматизации процессов работы с документами в электронно-цифровом виде.
Основные компоненты комплекса:
Сервер Web – сервис, который обеспечивает отображение веб версии EnDocs. Настройки системы и интеграций, регистрация пользователей и настройка прав доступа производятся с помощью данного сервиса.
Сервер Назначенных Заданий – сервис, который обеспечивает выполнение регламентных заданий. Каждое регламентное задание имеет свое расписание выполнения.
Сервер Базы Данных – хранит информацию о настройках системы, событиях, документах и пользователях.
Сервер API – сервис, который предоставляет интерфейсы интеграции с EnDocs посредством RestAPI.
Сервер Мобильного API – сервис, который обеспечивает работу мобильного приложения EnDocs.
Файловое хранилище – файловое хранилище S3 для хранения и обработки документов.
Серверные компоненты EnDocs работают в среде Docker на следующих операционных системах:
В качестве хранилища данных используется:
Минимальные системные требования, на которых программный комплекс должен позволять выполнять распределенную обработку представлены ниже:
Web-Сервер:
Сервер БД:
Сервер Назначенных Заданий:
Сервер API:
Сервер Мобильного API:
Для использования онлайн-сервиса воспользуйтесь онлайн-справкой, расположенной по адресу https://endocs.ru/spravka/
Информация для подключения доступна в разделе «Подключение к системе»
В данном разделе описаны подготовка к запуску и запуск приложений с помощью docker-compose файла. Сервисы EnDocs запускаются с помощью docker-compose, автоматически выписываются сертификаты с помощью certbot и центра сертификации LetsEncrypt для указанных доменов. Дополнительно необходимо иметь настроенный сервер БД mySQL.
Так же возможен вариант использования отдельного веб-сервера и собственных SSL-сертификатов. Подробности в разделе Запуск приложений.
Шаг 1. Создание пользователя и папок
Необходимо создать пользователя (далее, для примера, имя пользователя: app), от имени которого будет выполняться запуск. Добавить пользователя в группу docker.
В домашней папке пользователя /home/app разместить предоставленные папки endocs и images.
В папке endocs находится все необходимое для запуска приложений.
В папке images скрипт импорта docker-образов приложений unpack.sh, туда же необходимо скопировать предоставленный архив с образами (например: images-521c9131-2022-11-23_02-11-50.tar.gz).
Шаг 2. Импорт образов
Перейти в папку images
cd /home/app/images
Запустить скрипт импорта
./unpack.sh images-521c9131-2022-11-23_02-11-50.tar.gz
Если импорт успешен скрипт отобразит список импортированных образов, в противном случае выдаст ошибку. В данном примере должно быть импортировано 4 образа:
endocs/api:521c9131
endocs/bs:521c9131
endocs/web:521c9131
endocs/apimobile:521c9131
Каждому образу будет проставлен «плавающий» тэг latest (рекомендуется не использовать для запуска тэг latest, а указывать конкретную версию, т.е. хэш коммита, так будет понимание какая именно версия приложений запущена. В данном примере это 521c9131).
Для дальнейшей настройки запоминаем список образов с тэгами.
Для просмотра всех docker-образов используем команду docker images.
Шаг 3.
Настройка переменных окружения и прочих настроек.
Переходим в папку endocs
cd /home/app/endocs
Редактируем файл .env:
Пример файла .env:
# — docker settings — COMPOSE_PROJECT_NAME=endocs-docker
# — app settings — IMG_TAG=521c9131
API_IMG_NAME=endocs/api APIMOBILE_IMG_NAME=endocs/apimobile BS_IMG_NAME=endocs/bs WEB_IMG_NAME=endocs/web
SETTINGS_FILE=appsettings-demo.json |
Редактируем appsettings.json (в данном примере appsettings-demo.json)
Вносим необходимые правки, например connection string для подключения к mySql БД, адрес приложения:
“ConnectionStringMySql”: “server=XXXX;port=3306;database=XXXX;Uid=XXXX;Pwd=XXXX”
“HttpClient_Address”: “https://ecm.mydomain.com”
И прочие настройки приложений.
Редактируем config.env (пропустить, если используется собственный web-сервер и SSL-сертификаты)
Это файл с переменными окружения для certbot и nginx
Настраиваем значения переменных DOMAINS и CERTBOT_EMAILS.
Важно! Значение должно быть в кавычках! В переменной DOMAINS определяется список доменов разделенных пробелом; в переменной CERTBOT_EMAILS валидные e-mail адреса администратора доменов для каждого из них разделенные пробелом. Далее для примера будем использовать mydomain.com (вы должны использовать собственное имя домена!!!).
ВАЖНО! Значение переменной CERTBOT_TEST_CERT при первом запуске всегда устанавливаем = 1
Пример файла config.env:
DOMAINS=”api.mydomain.com mobile.mydomain.com ecm.mydomain.com” CERTBOT_EMAILS=”admin@mydomain.com admin@mydomain.com admin@mydomain.com” CERTBOT_TEST_CERT=1 CERTBOT_RSA_KEY_SIZE=4096 |
Переименовываем файлы конфигураций nginx (пропустить, если используется собственный web-сервер и SSL-сертификаты)
В папке vhosts/ расположены конфигурации виртуальных хостов nginx. Имена файлов должны соответствовать именам доменов конкретных сервисов и иметь расширение .conf. Необходимо их переименовать в соответствии с вашими доменными именами! Содержимое менять не нужно.
Пример:
/endocs$ ls -1 vhosts/ api.mydomain.com.conf ecm.mydomain.com.conf mobile.mydomain.com.conf |
Первый (тестовый) запуск приложений.
Первый запуск производится с выписыванием тестовых сертификатов, что бы убедиться, что все настроено верно, сертификаты выписываются и приложения работают.
Шаг 1.
Убедиться, что значение переменной `CERTBOT_TEST_CERT=1` в файле config.env
Шаг 2.
Создание docker-волюмов
cd /home/app/endocs
docker volume create –name=nginx_conf
docker volume create —name=letsencrypt_certs
Запуск docker-compose и вывод логов
docker compose up -d –build && docker compose logs -f
Прочитав логи убедиться, что приложения стартовали, и сертификаты выписались (Сертификаты должны выписаться, но браузеры не доверяют тестовым сертификатам. Если все домены доступны по https, приложения работают, можно выписывать сертификаты в нормальном режиме)
* в логах для каждого домена должны появиться сообщения:
Switching Nginx to use Let’s Encrypt certificate
Reloading Nginx configuration
Если все в норме, переключаемся на «продовые» сервера letsencrypt и выписываем “честные” сертификаты (Запуск в «боевом» режиме.)
Шаг 1.
Остановить docker-compose
docker compose down
Шаг 1.
Изменить значение переменной `CERTBOT_TEST_CERT=0` в файле config.env
Шаг 2.
Пересоздать docker-волюм с SSL-сертификатами
docker volume rm letsencrypt_certs
docker volume create –name=letsencrypt_certs
Шаг 3.
Запустить docker-compose и убедиться, что все в порядке.
docker compose up -d && docker compose logs -f
Если у вас уже есть работающий web-сервер, подготовленные домены, можно использовать его.
Необходимо в файле docker-compose.yml закомментировать или удалить описание сервисов nginx, certbot, cron и описание docker-волюмов nginx_conf, letsencrypt_certs, certbot_acme_challenge. Добавить порты, которые будут открыты для подключения к сервисам.
Пример docker-compose.yml файла:
version: “2” services: api: image: ${API_IMG_NAME}:${IMG_TAG} volumes: – ./${SETTINGS_FILE}:/app/appsettings.json restart: always ports: – 8081:80
apimobile: image: ${APIMOBILE_IMG_NAME}:${IMG_TAG} volumes: – ./${SETTINGS_FILE}:/app/appsettings.json restart: always ports: – 8082:80
bs: image: ${BS_IMG_NAME}:${IMG_TAG} volumes: – ./${SETTINGS_FILE}:/app/appsettings.json restart: always
web: image: ${WEB_IMG_NAME}:${IMG_TAG} volumes: – ./${SETTINGS_FILE}:/app/appsettings.json restart: always ports: – 8080:80
|
На своей стороне настроить соответствующим образом web-сервер, для примера смотреть папки nginx и vhosts.
Необходимо настроить proxy-pass с хостов на сервисы (в соответствии с примером выше):
1. ecm.mydomain.com — сервис web порт 8080
Настроить фаерволлы в соответствии с вашей конфигурацией сети.
Запустить docker-compose:
cd /home/app/endocs
docker compose up -d
Проверить логи на наличие ошибок:
docker compose logs -f
Шаг 1.
Загружаем на сервер архив с новыми образами в папку /home/app/images
Распаковываем новые образы
cd /home/app/images
./unpack.sh <имя нового архива с образами>.tar.gz
Записываем имя нового тэга и правим значение переменной IMG_TAG в /home/app/endocs/.env файле
Шаг 2.
Перезапускаем docker-compose
docker compose up -d
Шаг 3.
Убеждаемся, что контейнеры запустились из новых образов (проверяем тэг)
docker compose images
Шаг 4.
Смотрим логи и проверяем работоспособность
docker compose logs -f
Все команды docker compose <command> выполняются только из папки, содержащей docker-compose.yml (в нашем примере /home/app/endocs/)
смотреть логи всех сервисов
docker compose logs -f
смотреть логи всех сервисов
docker compose logs -f <service_name>
просмотр сервисов и их образов
docker compose images
запуск сервисов в фоне
docker compose up -d
остановка сервисов
docker compose down
просмотр статуса запущенных контейнеров
docker ps
просмотр используемых ресурсов
docker stats
просмотр занимаемого docker места
docker system df
После завершения установки администратор должен завершить настройку компонентов EnDocs. Для этого минимально необходимо выполнить следующие действия.
Полный перечень действий по настройке приведен в документе «Руководство администратора EnDocs»