Меню

Ручная установка (Linux)

Данный раздел представляет собой пошаговое руководство по установке решения Navixy On-premise.

Это руководство в первую очередь касается операционной системы Ubuntu 20 - именно эта ОС рекомендована нами.

Если вы хотите установить систему на любую другую ОС, данное руководство может быть адаптировано, так как основные принципы остаются такими же.

Установка может быть выполнена полностью под пользователем root.

Установка требуемого ПО

Загрузите и установите необходимое программное обеспечение. Основным ПО являются:

  • MySQL 8.0 - требуется только сервер, остальные компоненты необязательны;
  • Java SE Development Kit 17;
  • Nginx - любая актуальная версия;
  • runit и runit-systemd.

Вы можете просто выполнить следующие команды:


sudo add-apt-repository ppa:linuxuprising/java
apt-get update
apt-get -y install openjdk-17-jdk curl nginx mysql-server runit runit-systemd mc

MySQL запросит пароль для пользователя root, вы можете оставить его пустым или задать любой пароль по своему усмотрению, но обязательно запомните его.

Также Java может попросить вас принять политику использования, ответьте "Yes".

Java и MySQL должны быть добавлены в переменную среды PATH.

Создание пользователя

Прежде всего, необходимо создать пользователя java для дальнейшей настройки сервисов платформы Navixy.

useradd -s /bin/bash -m java

Загрузка и распаковка дистрибутива платформы

Вам необходимо получить установочный пакет платформы Navixy. Обычно он предоставляется в виде архива .tar.gz.
Распакуйте архив.

tar -zxvf $PACKAGENAME

Он будет извлечен в директорию "navixy-package", содержащую все необходимые файлы для установки платформы.

Здесь и далее это будет основная директория с установочными файлами. В этом руководстве вы можете увидеть пути типа "...navixy-package/db", что означает, что операции должны выполняться с указанием этого пути.

Настройка MySQL

Для начала загрузите временные зоны MySQL (замените $PASSWORD на пароль пользователя root в MySQL, если вы задали его ранее):

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot -p$ROOT_PWD mysql

Откройте для редактирования файл mysqld.cnf. По умолчанию он расположен по пути: /etc/mysql/mysql.conf.d/mysqld.cnf

Измените (или добавьте при отсутствии) следующие параметры в раздел [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 для применения новых настроек.

Подготовка баз данных

Теперь необходимо подготовить базы данных.

Войдите в MySQL от имени пользователя root и выполните следующие действия. Замените $PASSWORD на новый пароль (любой на ваш выбор) для пользователя "Navixy", запомните его, он понадобится для дальнейших настроек.


CREATE USER navixy@'%' IDENTIFIED BY '$PWD' 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.

Перейдите в директорию ...navixy-package/db.

Выполните следующую команду (само собой, замените $ROOTPASSWORD на пароль пользователя root в MySQL), чтобы заполнить базу данных google стандартными значениями:

mysql -uroot -p$ROOTPASSWORD google < google.sql

Удалите файлы updates.sql (используется только при обновлениях, сейчас не нужен) и google.sql (уже использован ранее):


rm updates.sql
rm google.sql

Убедитесь, что файлы удалены, и импортируйте остальные данные из директории DB в базу данных:

cat *.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';

Fingerprint - это динамический лицензионный ключ. Он обновляется каждый раз, когда ваш сервер подключается к серверу лицензирования auth.navixy.com. Это происходит каждые 3-4 дня и при каждом запуске сервиса. Поэтому вам не нужно хранить его отдельно от платформы. Также по этой причине вы не можете использовать его на нескольких экземплярах платформы. Ключ можно использовать только на одном сервере.

Конфигурация платформы: фронтенд

Скопируйте эти директории:

  • .../navixy-package/pro-ui
  • .../navixy-package/panel-v2

По пути /var/www

Pro-UI

Откройте для редактирования файл Config.example.js по пути /var/www/pro-ui.
Измените следующую строку. Вместо api.domain.com укажите ваш домен для API.
apiRoot: '//api.domain.com',

Обратите внимание: в данном случае '//' является сокращением для HTTPS. Если ваш сайт не защищен SSL и использует HTTP, то вместо этого укажите 'http://'.

Сохраните файл под именем Config.js

Откройте файл app_config.example.sa.js по пути /var/www/pro-ui/static.
Укажите в следующей строке ваш домен для API (обратите внимание на http/https):
apiUrl: 'https://api.domain.com/api/',
Сохраните файл под именем app_config.js

Создайте символическую ссылку (симлинк) с /var/www/pro-ui/static/assets/images/dashboard на /var/www/pro-ui/

ln -s /var/www/pro-ui/static/assets/images/dashboard /var/www/pro-ui/

Panel-v2

Откройте для редактирования файл PConfig.example.sa.js по пути /var/www/panel-v2.
Вновь укажите вместо api.domain.com ваш домен для API. Внимание: не удаляйте '/panel', просто измените доменное имя. Обратите внимание на http/https.
apiRoot: 'http://api.domain.com/panel',

Если вы используете один домен (а не три) с подкаталогами для сервисов, в этом случае у вас должно получиться: http://domain.com/api/panel

Измените saas.navixy.com на ваш домен для пользовательского интерфейса (без указания http/https):
paasCompanyUrl: 'saas.navixy.com',

Измените api.domain.com на ваш домен для API:
terminalHost: 'ws://api.domain.com:8383/',

Для SSL-защищенной версии необходимо заменить 'ws' на 'wss' и удалить порт ':8383'.
Эта строка используется только для GPRS-терминала (Air console) в вашей панели администратора. Если вы не собираетесь открывать порт 8383 и использовать GPRS-терминал, вы можете пропустить эту настройку (хотя делать это не рекомендуется).
Сохраните файл под именем PConfig.js

Настройка веб-сервера Nginx

Перейдите в директорию ...navixy-package/templates.

1. Скопируйте файл image-preview-cache.conf в директорию/etc/nginx/conf.d

2. Скопируйте файлы map.conf и local-image-preview.conf в директорию /etc/nginx/sites-available.

3. Создайте файл с названием navixy.conf в директории /etc/nginx/sites-available. Заполните его необходимой конфигурацией Nginx с этой страницы:

Конфигурации Nginx

Выберите конфигурацию в зависимости от использования HTTP/HTTPS и количества доменов.

Если вы будете использовать SSL, вам не обязательно указывать полный путь к сертификатам в конфигурации Nginx. Вы можете создать директорию /etc/nginx/ssl и поместить туда сертификаты. В этом случае в конфигурации Nginx нужно указать короткие пути: ssl/name.crt и ssl/name.key

Обратите внимание, что если вы используете SSL, сертификат должен быть действительным

Он должен соответствовать закрытому ключу, иначе Nginx не сможет запуститься.

Кроме того, сертификат должен содержать всю цепочку сертификации, то есть в одном файле должен быть основной сертификат, промежуточный сертификат (или несколько) и корневой сертификат, как показано в примере ниже.

-----BEGIN CERTIFICATE-----
*содержимое сертификата для вашего сайта*
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
*содержимое промежуточного сертификата*
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
*содержимое корневого сертификата*
-----END CERTIFICATE-----

Убедитесь, что в файле /etc/nginx/nginx.conf  (раздел http) есть следующие строки. Если они отсутствуют, то добавьте их:


include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

Создайте символические ссылки на файлы из директории sites-available directory в директории sites-enabled:


ln -s /etc/nginx/sites-available/local-image-preview.conf /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/map.conf /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/navixy.conf /etc/nginx/sites-enabled

Удалите файл default.conf из /sites-available и /sites-enabled (это конфигурационный файл Nginx по умолчанию, он не нужен для работы платформы).

Перезапустите Nginx, выполнив следующую команду. Она протестирует конфигурацию и предупредит вас, если будут найдены какие-либо ошибки:


nginx -t && nginx -s reload

Конфигурация платформы: бэкенд

Скопируйте следующие директории из ...navixy-package в /home/java:

  • api-server
  • sms-server
  • tcp-server

Внутри каждой из них есть поддиректория conf, в которой есть файл под названием db.properties.
В этом файле указываются настройки подключения платформы к базе данных.
Вам необходимо изменить учетные данные для подключения к базе данных для каждого из трёх сервисов.
Для этого отредактируйте следующие строки ($PASSWORD - это пароль для пользователя navixy, который вы создали ранее)

db.username=navixy
db.password=$PASSWORD

Если ваша база данных размещена на другом сервере, вам также необходимо изменить строку db.connectionString этих файлах. Укажите фактический адрес сервера базы данных вместо localhost. Больше ничего в этой строке менять не следует.

API-server

Перейдите в директорию /home/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

Перейдите в директорию /home/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

Этот сервис отвечает за отправку и получение сообщений. Он использует настройки по умолчанию и не требует дополнительной настройки.

Права на директории

Предоставьте права на директории пользователю java.


cd /home/java
chown -R java:java api-server sms-server tcp-server

Добавление сервисов Linux

Скопируйте все файлы из .../navixy-package/runit в директорию /etc/sv

Создайте символические ссылки на /etc/sv в директории /etc/service.
(Симлинк для tcp-server должен называться navixyserver)


ln -s /etc/sv/api-server /etc/service/api-server
ln -s /etc/sv/sms-server /etc/service/sms-server
ln -s /etc/sv/tcp-server /etc/service/navixyserver

Настройте права на директории:


cd /etc/sv
chown -R root:root api-server sms-server tcp-server

Перезапустите сервисы:


sv restart api-server
sv restart sms-server
sv restart navixyserver

Скопируйте скрипт restart-navixy из .../navixy-package/scripts в директорию usr/bin.

Измените права на его выполнение:

chmod 755 /usr/bin/restart-navixy

После этого вы можете просто ввести restart-navixy в bash, и это перезапустит все внутренние сервисы платформы. Это необходимо при внесении изменений в конфигурацию и при диагностике неисправностей.

restart-navixy

Завершающие шаги

После того, как все установлено и запущено, проверьте доступность домена вашей панели администратора. У вас должна открыться страница входа в систему.

Для входа используются стандартные учётные данные, поэтому рекомендуется изменить пароль сразу после входа в систему.

  • имя пользователя: admin
  • пароль: admin

При обнаружении неполадок перейдите в раздел Диагностика.

Пользовательский интерфейс на данном этапе ещё недоступен. Сперва необходимо указать его домен в панели администратора, раздел "Настройка площадки", вкладка "Параметры сервиса".

Миграция с Wialon
Open
Миграция с Wialon
Перенос пользователей,
трекеров, геозон и истории.
Читать далее >
Open

Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookie.