====== Инструкция по установке и настройке системы DiServer ====== **«Программа для ЭВМ «DiState: DiServer»»** – программный продукт особой сборки, представляющий собой совокупность данных и команд, в том числе исходного текста, базы данных, устанавливаемый на ресурсе Лицензиата и содержащий специальные настройки и сервисы, предназначенные для формирования и отправки информационных сообщений в Федеральную Налоговую Службу в соответствии с приказами: Приказ ФНС России от 09.11.2010 №ММВ-7-6/535@ Приказ ФНС России от 12.09.2012 №ММВ-7-6/619@ Приказ ФНС России от 12.09.2012 №ММВ-7-6/619@ Приказ ФНС России от 04.03.2014 №ММВ-7-6/76@ Приказ ФНС России от 19.10.2018 N ММВ-7-6/602@ Приказ Минфина России от 10.11.2015 N 174н Приказ ФНС России от 19.12.2018 N ММВ-7-15/820@. Приказ о Доверенном операторе ЭДО: Приказ ФНС России от 04.04.2016 N ММВ-7-6/176@. **Требования к системе** Требования к аппаратному обеспечению: * Сервер для размещения программы. Процессор: Quad Core 2.3 Ghz. Память: DDR3 8 Gb. Дисковое пространство: 500Gb свободного места на диске. Требования к ОС: ОС Ubuntu Linux 18.04 Lts 64-bit **Установка и настройка системного окружения** * Обновление репозитория: ''$ sudo apt-get update'' Установка пакетов, необходимых для добавления дополнительных репозиториев: $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common Добавление GPG ключа: ''$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add'' Добавление нового репозитория: $ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" Обновление репозитория: ''$ sudo apt-get update'' * Установка docker: ''$ sudo apt-get install docker-ce docker-ce-cli containerd.io'' * Установка docker-compose: ''sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose'' * Настройка прав пользователю запускать docker от своего имени: ''$ sudo usermod -aG docker $USER'' Где $USER – имя пользователя, под которым планируется администрирование системы. **Установка и настройка системы** Для установки системы скопируйте каталог application в директорию /opt/diserver Итоговая директория должна иметь путь: /opt/deserver/application Вся последующая настройка системы подразумевает что вы находитесь в вышеуказанной директории. С помощью копирования создайте конфигурационные файлы системы: ''$ cp .env.dist .env $ cp docker-compose.yml.dist docker-compose.yml'' Описание настроек .env файла: **# Название приложения** APP_ENTRY_POINT_NAME=diserver **# Окружение, в котором запускается приложения. Возможные варианты: dev, prod, test** APP_ENVIRONMENT=prod **# Уровень логирования по умолчанию** LOG_LEVEL=info **# Принудительно включить цвета в консоле** AMP_LOG_COLOR=1 **# Включить или отключить отладку для асинхронных операций** AMP_DEBUG=0 **# DSN подключения к AMQP-брокеру (Rabbitmq)** \\ TRANSPORT_CONNECTION_DSN=amqp://admin:rgergerger@diserver-rabbitmq \\ **# Название Exchange для AMQP** \\ \\ TRANSPORT_TOPIC=diserver \\ \\ **# Название очереди для AMQP** \\ \\ TRANSPORT_QUEUE=diserver.messages \\ \\ **# Название маршрута для AMQP** \\ \\ TRANSPORT_ROUTING_KEY=diserver \\ \\ **# Название маршрута для Scheduler** \\ \\ TRANSPORT_SCHEDULER_TOPIC=scheduler \\ \\ **# Название маршрута для API** \\ \\ TRANSPORT_API_ROUTING_KEY=api \\ \\ **# URL Dsigner API** \\ \\ DSIGNER_API_URL=http://diserver-dsigner:4143/handle \\ \\ **# SignerId в Dsigner API для оператора ЭДО СФ** \\ \\ DSIGNER_DEFAULT_SIGNER_ID=0 \\ \\ **# DSN подключения к базе данных** \\ \\ DATABASE_CONNECTION_DSN=pgsql://diserver:ewfwefewfwef@diserver-db/diserver?max_connections=90&idle_timeout=30 \\ \\ **# Название таблицы миграций** \\ \\ MIGRATIONS_TABLE_NAME=diserver_migrations \\ \\ **# Включить или отключить отправку метрик** \\ \\ METRICS_ENABLED=0 \\ \\ **# DSN сервера для отправки метрик** \\ \\ METRIC_DSN=udp://distate-influxdb:8089 \\ \\ **# Количество записей, которое будет отправляться за раз** \\ \\ METRIC_BATCH_SIZE=5 \\ \\ **#Часовая зона по умолчанию. Опционально, если не указано, то используется зона сервера - UTC** \\ \\ APP_DEFAULT_TIMEZONE= \\ \\ **# Заголовок, в котором будет передаваться лицензионный ключ** \\ \\ LICENSE_TOKEN_HEADERS_KEY=X-DISTATE-TOKEN \\ \\ **# Заголовок, в котором будет передаваться версия API клиента** \\ \\ API_VERSION_HEADERS_KEY=X-DISTATE-VERSION \\ \\ **# Версия приложения** \\ \\ APP_VERSION=6.4 \\ \\ **# Конфигурация Центробанка РФ для справочника БИК** \\ \\ **# Ссылка на свежий справочник БИК** \\ \\ CENTRAL_BANK_URL=http://www.cbr.ru/s/newbik \\ \\ **# Ссылка для получения справочника ОКВ** \\ \\ CURRENCY_DATABASE_URL=http://www.cbr.ru/vfs/mcirabis/BIK/okv.zip \\ \\ **# Ссылка для получения информации по инфспекциям ФНС** \\ \\ TAX_AUTHORITY_CODES_URL=https://service.nalog.ru/static/tree-data.json?tree=SOUN_PAYEE \\ \\ **# Конфигурация для документооборота с ФНС** \\ \\ **# Отправлять ли информационные сообщение. При установке в 0 сообщения отправляться не будут.** \\ \\ TAX_AUTHORITY_SEND_INFSOOB=1 \\ \\ **# Уникальный код спец. оператора через которого происходит отправка/получение документов** \\ \\ TAX_AUTHORITY_SPEC_OPERATOR_CODE= \\ TAX_AUTHORITY_ASKOM_SPEC_OPERATOR_CONFIG="code=&title= \\ TAX_AUTHORITY_DISTATE_SPEC_OPERATOR_CONFIG="code=&title= &signerId=1" \\ \\ **# Конфигурация транспортного уровня спец. оператора Distate** \\ \\ **# SMTP ** \\ \\ # 'host' => 'smtp.yandex.ru', \\ \\ # 'port' => 465, \\ \\ # 'username' => 'test_abon@distate.ru', \\ \\ # 'password' => '', \\ \\ # 'from' => 'test_abon@distate.ru', \\ \\ # 'to' => 'spec_oper@distate.ru', \\ \\ # 'secure' => 'ssl' \\ \\ # \\ \\ # POP3 \\ \\ # 'host' => 'pop.yandex.ru', \\ \\ # 'port' => 995, \\ \\ # 'username' => 'test_abon@distate.ru', \\ \\ # 'password' => '', \\ \\ # 'secure' => 'ssl' \\ \\ # \\ \\ TAX_AUTHORITY_DISTATE_SMTP_CONFIG="host=smtp.gpk.nalog.ru&port=50025&username= &password= &from=sos@gpk.nalog.ru&to=gpk@gpk.nalog.ru" \\ \\ TAX_AUTHORITY_DISTATE_POP_CONFIG="host=pop.gpk.nalog.ru&port=50110&username= &password= " \\ \\ **Описание настроек docker-compose.yml файла:** \\ \\ version: '3' \\ \\ **networks:** \\ \\ '' # Global DiState network \\ default: \\ external: \\ name: diserver-network'' \\ \\ **services:** \\ \\ '' # Dsigner service \\ dsigner: \\ build: \\ context: docker/dsigner \\ container_name: diserver-dsigner \\ restart: always \\ volumes: \\ - ./docker/dsigner/data/conf/:/usr/local/etc/diserver/ - ./docker/dsigner/data/cont/:/var/opt/cprocsp/keys/root/ - ./docker/dsigner/data/jar/:/usr/src/jar/ depends_on: - rabbitmq links: - rabbitmq:rabbitmq ports: - 4143:4143 command: ["/tools/wait-for-it.sh", "--timeout=10", "rabbitmq:5672", "--", "/tools/entrypoint.sh"]а'' \\ \\ **# RabbitMQ transport** \\ \\ \\ ''rabbitmq: build: context: docker/rabbitmq container_name: diserver-rabbitmq restart: always ports: - 5672:5672 - 15672:15672 environment: RABBITMQ_VM_MEMORY_HIGH_WATERMARK: 512MiB RABBITMQ_ERLANG_COOKIE: 43gg5ggggrg RABBITMQ_DEFAULT_USER: admin RABBITMQ_DEFAULT_PASS: brfbvservg54g44v45'' \\ \\ ** # PostgreSQL database** \\ \\ \\ ''db: build: context: docker/db container_name: diserver-db restart: always environment: PGDATA: /var/lib/pgsql/data/ POSTGRES_PASSWORD: 34f324f24f324ffgergDFD POSTGRES_USER: diserver volumes: - ./pgdata/:/var/lib/pgsql/data/ ports: - 5432:5432'' \\ \\ ** # Application** \\ \\ ''diserver: build: context: docker/app container_name: diserver-backend restart: always volumes: - ./:/var/www working_dir: /var/www depends_on: - db - dsigner - rabbitmq links: - db:db - dsigner:dsigner - rabbitmq:rabbitmq env_file: - .env command: ["/tools/wait-for-it.sh", "--timeout=10", "dsigner:4143", "--", "/tools/entrypoint.sh"]'' \\ \\ **Запуск системы:** \\ \\ ''$ docker-compose up'' \\ \\ **Рестарт системы:** \\ \\ ''$ docker-compose restart'' \\ \\ **Проверка работоспособности системы** \\ \\ **Вывод команды** \\ \\ $ docker ps \\ \\ Показывает следующие запущенные контейнеры: \\ \\ * diserver-dsigner \\ * diserver-rabbitmq \\ * diserver-backend \\ * diserver-api-frontend \\ * diserver-api-backend \\ * diserver-api-listener \\ * diserver-api-memcached \\ * diserver-db \\ \\ Просмотр логов программы командой \\ $ docker logs diserver-backend \\ \\ В логах не должно содержаться сообщений с тэгом error или critical