Данный раздел представляет собой пошаговое руководство по установке решения Navixy On-premise.
Это руководство описывает процесс установки платформы на Windows. Рекомендуется использование ОС Windows Server 2016 или более новой.
Если вы хотите установить платформу на любую другую версию Windows, вы можете также придерживаться этого руководства, поскольку основные принципы остаются такими же.
В целом, платформа работает одинаково на Linux и Windows, поскольку в ней используется одно и то же программное обеспечение. Основное различие заключается в том, как работают службы в Windows. Кроме того, в конфигурациях Nginx для Windows нет блоков предварительного просмотра, поскольку Nginx это не поддерживает.
Для выполнения установки необходима учетная запись с правами администратора. Неважно, будет ли это локальная или доменная учетная запись, поскольку платформа никак не связана с доменной инфраструктурой. Вам просто нужны административные привилегии для ее установки.
Установка требуемого ПО
Загрузите и установите необходимое программное обеспечение. Основным ПО являются:
- MySQL 8.0 - требуется только сервер, остальные компоненты необязательны;
- Java SE Development Kit необходимой версии (на настоящий момент 17);
- Nginx - любая актуальная версия;
- Любой архиватор, способный работать с архивами tar.gz (например, 7zip).
Java и MySQL должны быть добавлены в переменную среды PATH.
Загрузка и распаковка дистрибутива платформы
Вам необходимо получить установочный пакет платформы Navixy. Обычно он предоставляется в виде архива .tar.gz.
Распакуйте архив. В нем много вложенных папок, поэтому будьте осторожны, чтобы не превысить ограничение Windows в 255 символов в пути к файлу. Поместите папку "navixy-package" из архива в какой-нибудь каталог, например: C:\Users\Administrator\Downloads\navixy-package
Далее в руководстве это будет основная папка дистрибутива. Вы можете встретить пути наподобие "...navixy-package\db", что означает, что операции должны выполняться из этой папки.
Настройка MySQL
Измените (или добавьте при отсутствии) следующие параметры в раздел [mysqld].
На уровне базы данных Navixy всегда работает с данными в часовом поясе UTC, поэтому необходимо установить этот часовой пояс по умолчанию для MySQL:
default-time-zone = '+00:00'
Установите SQL-mode следующим образом:
sql-mode="NO_ENGINE_SUBSTITUTION"
Для наиболее эффективного использования MySQL необходимо настроить его в соответствии с параметрами вашего сервера. Если ваш сервер будет использоваться только для платформы Navixy, установите следующий параметр на 70% от общего объема оперативной памяти. Например, если у вас 32 Гб оперативной памяти, установите следующее значение:
innodb_buffer_pool_size=22G
Перезапустите службу MySQL в меню "Службы" (services.msc) в Windows, чтобы применить изменения.
Подготовка баз данных
Теперь необходимо подготовить базы данных.
Войдите в MySQL из командной строки, от имени пользователя root, и выполните следующие действия. Замените $PASSWORD на новый пароль (любой на ваш выбор) для пользователя "Navixy", запомните его, он понадобится для дальнейших настроек.:
CREATE USER navixy@'%' IDENTIFIED BY '$PASSWORD' WITH MAX_QUERIES_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREATE DATABASE google CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE tracking CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT USAGE ON *.* to navixy@'%';
GRANT ALL PRIVILEGES ON google.* TO navixy@'%';
GRANT ALL PRIVILEGES ON tracking.* TO navixy@'%';
Выйдите из MySQL обратно в cmd.
Измените директорию на ...navixy-package\db. Например:
C:\Users\Administrator\Downloads\navixy-package\db
Выполните следующую команду (само собой, замените $ROOTPASSWORD на пароль пользователя root в MySQL), чтобы заполнить базу данных google стандартными значениями:
mysql -uroot -p$ROOTPASSWORD google < google.sql
Удалите файлы updates.sql (используется только при обновлениях, сейчас не нужен) и google.sql (уже использован ранее):
del updates.sql
del google.sql
Убедитесь, что файлы удалены, и импортируйте остальные данные из папки DB в базу данных:
type *.sql | mysql -uroot -p$ROOTPASSWORD google
Выполните следующую команду для включения веб-брендинга:
INSERT INTO google.features_to_dealers (dealer_id, feature_code) values (1,1);
Добавьте следующую строку в базу данных, чтобы вы могли сохранять файлы из мобильного приложения на ваш сервер. Измените api.domain.com на ваш домен для API. Не забудьте изменить https на http, если вы не используете SSL.
INSERT INTO google.file_storages (id, engine, config) values (1, 'local_fs', '{"base_path":"./files/","base_upload_url":"https://api.domain.com/file/upload","base_download_url":"https://api.domain.com/file/dl","secret":"ervg4ver","upload_credentials_ttl":"10m","is_dynamic_preview_enabled": true,"dynamic_preview_pattern":"(.+)/file/dl/(.+)","dynamic_preview_replace":"$1/file/preview/$2","security_module":{"type":"hashid","salt":"vd8sgh8w3t4w","ttl":"7d","min_length":8}}');
Наконец, примените лицензионный ключ (fingerprint), который должен быть предоставлен вам техподдержкой Navixy. Это будет просто строка символов.
Вставьте лицензионный ключ в базу данных (измените $FINGERPRINT на полученное значение):
UPDATE google.variables SET value='$FINGERPRINT' WHERE var='fingerprint';
Добавление папок для дальнейшей настройки
Создайте и заполните следующие папки:
C:\java
Скопируйте сюда папки api-server, sms-server и tcp-server из пакета navixy-package.
C:\nginx
Распакуйте сюда установочный пакет Nginx, как показано на скриншоте.
В папке C:\nginx создайте папку под названием www. В ней будут находиться файлы фронтенда.
Скопируйте в неё папки panel-v2 и pro-ui из пакета navixy-package.
В папке C:\nginx\conf создайте папку под названием sites-enabled. В ней будет располагаться конфигурация веб-сайтов платформы.
Добавьте следующую строку в файл C:\nginx\conf\nginx.conf, в любое место в блок http:
include sites-enabled/*.conf;
Конфигурация платформы: фронтенд
Папка "Pro-UI"
Откройте для редактирования файл Config.example.js в папке C:\nginx\www\pro-ui.
Измените следующую строку. Вместо api.domain.com укажите ваш домен для API.
apiRoot: '//api.domain.com',
Если у вас нет специального домена для API, и вы используете один домен для всех сервисов,укажите "/api" в конце значения:
apiRoot: '//domain.com/api',
Откройте файл app_config.example.sa.js в папке C:\nginx\www\pro-ui\static.
Укажите в следующей строке ваш домен для API (обратите внимание на http/https):
apiUrl: 'https://api.domain.com/api/',
Сохраните файл под именем app_config.js
Папка "Panel-v2"
Откройте файл PConfig.example.sa.js в папке C:\nginx\www\panel-v2 and edit the followng.
Вновь укажите вместо api.domain.com ваш домен для API. Внимание: не удаляйте '/panel', просто измените доменное имя. Обратите внимание на http/https.
apiRoot: 'http://api.domain.com/panel',
Измените saas.navixy.com на ваш домен для пользовательского интерфейса (без указания http/https):
paasCompanyUrl: 'saas.navixy.com',
Измените api.domain.com на ваш домен для API:
terminalHost: 'ws://api.domain.com:8383/',
Настройка веб-сервера Nginx
Откройте папку C:\nginx\conf\sites-enabled.
Скопируйте в эту папку файл map.conf из папки ...navixy-package\templates.
Создайте файл с именем navixy.conf и заполните его необходимой конфигурацией Nginx с этой страницы:
Выберите конфигурацию в зависимости от использования HTTP/HTTPS и количества доменов.
Обратите внимание, что если вы используете SSL, сертификат должен быть действительным
Он должен соответствовать закрытому ключу, иначе Nginx не сможет запуститься.
Кроме того, сертификат должен содержать всю цепочку сертификации, то есть в одном файле должен быть основной сертификат, промежуточный сертификат (или несколько) и корневой сертификат, как показано в примере ниже.
-----BEGIN CERTIFICATE-----
*содержимое сертификата для вашего сайта*
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
*содержимое промежуточного сертификата*
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
*содержимое корневого сертификата*
-----END CERTIFICATE-----
После завершения настройки запустите файл nginx.exe.
Чтобы автоматически запускать Nginx при старте системы, создайте для этого скрипт.
Создайте пакетный файл start-nginx.bat со следующим содержимым:
@echo off
cd c:\nginx
start nginx.exe
Поместите этот пакетный файл в планировщик задач Windows и настройте его выполнение при запуске сервера.
Конфигурация платформы: бэкенд
Перейдите в папку C:\java.
Ранее вы скопировали сюда три папки:
- api-server
- sms-server
- tcp-server
Внутри каждой из них есть подпапка conf, в которой есть файл под названием db.properties.
В этом файле указываются настройки подключения платформы к базе данных.
Вам необходимо изменить учетные данные для подключения к базе данных для каждой из трёх служб.
Для этого отредактируйте следующие строки ($PASSWORD - это пароль для пользователя navixy, который вы создали ранее)
db.username=navixy
db.password=$PASSWORD
Если ваша база данных размещена на другом сервере, вам также необходимо изменить строку db.connectionString этих файлах. Укажите фактический адрес сервера базы данных вместо localhost. Больше ничего в этой строке менять не следует.
API-server
Перейдите в папку C:\java\api-server\conf и откройте файл config.properties.
Укажите полный адрес вашего домена для API (с указанием http:// или https:// в начале) в следующей строке:
api.externalBaseUrl=
Укажите настройки электронной почты, которые будут использоваться для обратной связи и запросов помощи от пользователей:
feedback.toEmail=test@localhost
feedback.defaultFromEmail=do-not-reply@localhsot
feedback.substituteFromEmail=false
feedback.toEmail - адрес получателя писем.
feedback.defaultFromEmail - отправитель писем по умолчанию (например, noreply@domain.com)
feedback.substituteFromEmail - переключает отправку письма от имени отправителя по умолчанию (false) или с личного адреса пользователя (true).
Добавьте следующую строку в конец конфигурации, чтобы настроить хранение файлов:
fileStorage.fileStorageId=1
TCP-server
Перейдите в папку C:\java\tcp-server\conf и откройте файл config.properties.
Укажите IP и доменное имя, которые используются для пользовательского интерфейса. Эти настройки будут использоваться при отправке команд автоматической активации трекеров.
externalIP=127.0.0.1
externalHostname=myhost.ru
Добавьте следующую строку в конец конфигурации, чтобы настроить файловое хранилище:
api.command.baseUrl=http://127.0.0.1:8084/internal/command/
SMS-server
Эта служба отвечает за отправку и получение сообщений. Она использует настройки по умолчанию и не требует дополнительной настройки.
Добавление служб Windows
Во-первых, убедитесь, что путь к папке установки Java добавлен в переменную среды Windows JAVA_HOME.
Если нет, вам нужно добавить это значение вручную или из командной строки.
Если вы используете JDK 17.0.3, вы можете использовать этот пример для cmd:
setx -m JAVA_HOME "C:\Program Files\Java\jdk-17.0.3"
Затем откройте navixy-package и найдите папку wrapper.
Скопируйте всю эту папку в C:\java.
Найдите файл с именем modules-cmd.conf в папке wrapper. Скопируйте этот файл и поместите его в папку java service, рядом с jar-файлами:
- C:\java\api-server
- C:\java\sms-server
- C:\java\tcp-server
После этого необходимо запустить командную строку с привилегиями администратора (cmd - Run as administrator).
Измените каталог cmd на:
cd C:\java\wrapper\bat
Запустите setenv.bat из этого каталога в командной строке.
Затем, не закрывая командную строку, выполните следующие команды, одну за другой:
wrapper.bat -i ../conf/wrapper.api-server.conf
wrapper.bat -i ../conf/wrapper.sms-server.conf
wrapper.bat -i ../conf/wrapper.tcp-server.conf
Данные службы должны установиться как обычные службы Windows.
Проверьте меню "Службы" и найдите следующее:
- Navixy api-server
- Navixy sms-server
- Navixy tcp-server
Запустите сервисы.
После того, как все установлено и запущено, проверьте доступность домена вашей админ-панели. Она должна направлять вас на страницу входа в админ-панель.
Учетные данные используются по умолчанию, поэтому подумайте о смене пароля сразу после входа в систему
- username: admin
- password: admin
Если что-то пошло не так, ознакомьтесь со справочной информацией на странице "Диагностика".
Пользовательский интерфейс на данном этапе недоступен, поскольку его домен должен быть сначала указан в панели администратора, вкладка "Параметры сервиса".