Установка коробочной версии на одной машине (single-node deployment)

Введение

Запуск сервиса на одной виртуальной машине это самый простой способ развертывания приложения. Так же такой подход является самым простым для поддержки, но имеет повышенный риск отказа сервиса (при недоступности сервера по техническим причинам, проведения обновлений и других причинах).
Далее приведен пример взаимодействия компонентов при работе с коробочной версией

Перед началом установки

Минимальные системные требования

Для простой установки в таком режиме необходим
  • одна или несколько deb/rpm совместимая машина на Linux OS, мы рекомендуем ubuntu 20.04
  • 8+ GB RAM на каждую машину
  • 4+ CPU для каждой машины
  • 60+ GB свободного места на диске
  • Для запуска необходимо, чтобы у машин был выход в интернет. Минимальный набор доступных внешних сервисов для работы системы будет рассмотрен далее в этой статье (в разделе FAQ)
  • У пользователя, под которым запускается установка приложения, должен быть sudo доступ
Минимальные требования к виртуальной машине, на которой запущена система может меняться по мере добавления функционала в новых версиях.

Какие шаги нужно будет предпринять?

Установку и внедрение можно разбить на несколько этапов:
  1. 1.
    Подготовка к установке и установка Qolio. Эту работу чаще всего может выполнить системный администратор организации, которая устанавливает приложение
  2. 2.
    Обеспечение интеграций с сервисами компании (телефонией, тикетными системами и другими). На этом шаге необходимо участие администратора системы со стороны организации, например администратор Amocrm или администратор Oktell.
  3. 3.
    Дальнейшая эксплуатация системы. На этом этапе мы помогаем вам настроить Qolio, получать новые версии приложения и обеспечиваем тех. поддержку.
На всех этапах компания Qolio предоставляет техническую поддержку и консультации в требуемом объеме.

1. Подготовка к установке и установка Qolio

Эту работу чаще всего может выполнить системный администратор организации, которая устанавливает приложение Qolio. Для установки требуется сделать настройки инфраструктуры, описанные далее:
  1. 1.
    Компания Qolio передает Клиенту необходимые для установки ресурсы:
    • Ключ доступа к docker репозиторию с образами программы
    • Лицензионный код
    • email и пароль админа, с помощью которого можно будет войти в систему (вы можете сообщить нам какой email хотите использовать для первого админского доступа Qolio, далее этот email и пароль можно будет сменить только через обращение в тех. поддержку)
  2. 2.
    Админ со стороны Клиента создает виртуальную машину и настраивает ее доступ в сеть и интернет. Минимальный набор ресурсов необходимых для установки описан далее.
  3. 3.
    Админ создает 2 доменных имени внутри сети - один для фронтенда Qolio, другой - для бэкенда. Фронтенд это домен через который будет осуществляться доступ сотрудников ОКК, а бэкенд это API сервис, на котором размещены сервисы для обеспечения работы программы. Например, это могут быть следующие варианты: qolio.example.io для доступа сотрудников и qolio-api.example.io для API сервера.
  4. 4.
    (необязательно) Админ выпускает ssl сертификаты для доменов (для фронтенда и бэкенда). Эти сертификаты понадобятся далее при установке. Поддерживаются ssl_protocols TLSv1.2 TLSv1.3.
  5. 5.
    Админу необходимо запустить базу данных PostgreSQL с версией 12+ в сети организации и создать базу данных и пользователя для работы Qolio. Далее следуют важные замечания по настройке базы:
    1. 1.
      Пользователь базы данных, через которого подключается приложение Qolio, должен обладать правами на создание базы данных. Если в PostgreSQL уже есть база данных и ее создание не нужно, нужно проставить в config.yml настройку create_database: false
    2. 2.
      Обязательный компонент PostgreSQL - postgresql12-contrib и расширение pgcrypto
    3. 3.
      Если база находится на одной и той же виртуальной машине с qolio, нужно указать network_mode: host в config.yml
  6. 6.
    (необязательно) Создать пользователя для доступа к SMTP серверу, который будет использоваться для рассылки оповещений.
  7. 7.
    Админ заполняет конфигурационный файл на виртуальной машине, предназначенной для работы Qolio и запускает скрипты установки приложения. Процесс Установки рассмотрен детальнее далее в этой статье.

2. Обеспечение интеграций с сервисами компании

Для этого шага понадобится администратор телефонии, тикетной системы организации или другой системы с которой работает организация. Есть 2 способа передавать данные о коммуникациях организации в Qolio:
  1. 1.
    Передавать данные из телефонии/тикетной системы напрямую через API Qolio. В этом случае интеграция реализуется специалистами со стороны организации, которая обслуживает телефонию/тикетную системы.
  2. 2.
    Так же есть возможность подключить готовые интеграции с SaaS системами, такими как Zendesk, Kayako, Bitrix, Infinity X и другие. Для получения списка таких интеграций проконсультируйтесь с поддержкой.

3. Эксплуатация системы

На этом этапе:
  1. 1.
    Customer Success отдел Qolio помогает сконфигурировать систему в соответсвии с требованиями бизнес процессов организации. Для этого требуется взаимодействие ОКК организации и Qolio Customer Success отдела
  2. 2.
    Мы помогаем вам получить обновления версий Qolio. Qolio оповещает через email рассылку о выходе новых версий. Для обновления версии приложения нужен системный администратор со стороны организации с доступом к виртуальной машине c Qolio. Как это делать рассмотрено в разделе FAQ.
  3. 3.
    Техническая поддержка осуществляется через чат на сайте qolio.io и доступна в рабочее время компании Qolio.

Процесс установки в деталях

Для установки на Ubuntu 18.04 или более поздние версии можно использовать стандартный инсталятор.
Для запуска инсталятора необходимо иметь следующие материалы:
  • файл с ключом доступа к docker registry (key.json), этот файл предоставляется со стороны компании DealApp по запросу
  • код лицензии (license_code), который так же предоставляется со стороны компании DealApp по запросу
  • файл конфигурации (config.yml) с настройками лицензии и доступа к

Настройка

Вся настройка установки происходит через YML файл конфигурации

Создание файла конфигурации

Файл конфигурации должен быть в формате YAML со следующей структурой:
---
version: release-1.29.1
backend_url: "https://api.example.com"
frontend_url: "https://app.example.com"
database_host: db.example.com
database_name: dealapp_example_db
database_user: postgres
database_password: example
database_port: 5432
smtp_address: mail.example.com
smtp_domain: example.com
smtp_username: email_user
smtp_password: example_password
default_email: no-[email protected]
license_code: example_license_code
create_database: true
support_chart: true
# common_ssl_certificate_path: ..
# common_ssl_certificate_key_path: ..
# http_proxy: ...
# https_proxy: ...
Поля конфигурации
version
Версия Qolio (текущая активная release-1.25.0), о появлении новых версий мы оповещаем в рассылке и в документации
license_code
Лицензионный код, который предоставляется со стороны DealApp, с помощью него осуществляется предварительная конфигурация системы
backend_url
Адрес, по которому будет доступен API сервер (обратите внимание, что backend_url и frontend_url должны быть разными значениями)
frontend_url
Адрес, по которому доступен фронтенд (обратите внимание, что backend_url и frontend_url должны быть разными значениями)
database_host
Адрес хоста с базой данных Postgresql 12
database_name
Имя базы данных (ее можно не создавать, DealApp сам создаст и настроит ее при первом старте)
database_user
Имя пользователя для подключения к базе данных, у пользователя должны быть права создавать базу данных
database_password
Пароль пользователя для подключения к базе данных
database_port
Порт для подключения к базе данных
smtp_address
Адрес SMTP сервера, который используется для рассылки уведомлений
smtp_domain
Домен, который используется для рассылки
smtp_username
Имя пользователя для подключения к SMTP серверу. Если не указывать smtp_username и smtp_password, то подключение будет производиться без авторизации
smtp_password
Пароль для подключения к SMTP серверу, используется вместе с smtp_username
smtp_port
Порт для подключения к почтовому серверу. По умолчанию это 465.
default_email
email, который будет использоваться для рассылки уведомлений
common_ssl_certificate_path
Сертификат для доменов frontend_url и backend_url (файл certificate.crt), который будет использоваться nginx (поддерживаются ssl_protocols TLSv1.2 TLSv1.3)
common_ssl_certificate_key_path
Приватный ключ сертификата (файл certificate.key), который будет использоваться nginx
create_database
Конфигурационная опция, которая говорит о том, будет ли создаваться база или нет
http_proxy / https_proxy
Поля для настройки http proxy, ожидается, что оба этих значения будут заполнены
ldap_enabled
метка о том, что установка работает LDAP
network_mode
установите в "host", чтобы докер контейнеры использовали сеть инстанса, на котором они запущены. это даст возможность создать базу и подключиться базу данных на том же хосте что и qolio
support_chart
добавить в приложении чат поддержки (который работает через intercom.com)
🚨 Обратите внимание, что backend_url и frontend_url должны быть разными значениями.

Настройка подключения к почтовому сервису

Если вы хотите запустить подключение к почтовому сервису без авторизации, установите smtp_port в 25 (или ваше значение) и не указывайте smtp_username и smtp_password.

Запуск инсталятора

Инсталятор выполняет следующие действия:
  • Установка пакетов зависимостей: docker, docker-compose, nginx, ruby и yc cli
  • Логин docker в Docker Registry с помощью ключа доступа (key.json)
  • Настройка docker compose и nginx исходя из предоставленного конфига (config.yml). Конфигурация docker-compose.yml сохраняется в папку /etc/dealapp
  • Установка systemd сервис для DealApp
  • Запуск необходимых сервисов в Ubuntu
После того, как подготовлены ключ доступа к Docker Registry (demo-registry-key.json) и файл конфигурации (config.yml) готовы, можно приступать к установке. Установка запускается одной командой, в которой передается путь к файлам конфигурации и ключу от Docker Registry:
Значения параметров:
  • --config-file - путь к файлу конфигурации
  • --registry-key - путь к файлу с ключом для доступа к Docker Registry

Дальнейшая работа с сервисом Qolio

Проверить работу сервиса можно с помощью команды sudo service dealapp status
$ sudo service dealapp status
● dealapp.service - Run DealApp Docker Compose
Loaded: loaded (/etc/systemd/system/dealapp.service; enabled; vendor preset: enabled)
Active: active (exited) since Fri 2020-07-24 11:04:12 UTC; 33min ago
Main PID: 1289 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 2339)
CGroup: /system.slice/dealapp.service
Jul 24 11:04:12 box-tester systemd[1]: Started Run DealApp Docker Compose.
Jul 24 11:04:20 box-tester docker-compose[1289]: Creating network "dealapp_default" with the default driver
Jul 24 11:04:21 box-tester docker-compose[1289]: Creating dealapp_frontend_1 ...
Jul 24 11:04:21 box-tester docker-compose[1289]: Creating dealapp_redis_1 ...
Jul 24 11:04:25 box-tester docker-compose[1289]: [131B blob data]
Jul 24 11:04:25 box-tester docker-compose[1289]: Creating dealapp_api_1 ...
Jul 24 11:04:29 box-tester docker-compose[1289]: [100B blob data]
Перезапустить сервис можно с помощью команды sudo service dealapp restart
Логи сервиса можно получить с помощью команды sudo docker-compose logs -f внутри папки /etc/dealapp или команды sudo journalctl -u docker.service
Настроить опции для эндпоинтов (в том числе получить более гибкую возможность настроить сертификатов) можно через конфигурацию nginx в файле /etc/nginx/conf.d/nginx.conf
Для того, чтобы обновить настройки сервиса нужно запустить заново установку с обновленным файлом конфигурации (config.yml).

Видео с процессом установки

Процесс установки можно увидеть в этом видео:
qolio-ustanovka-korobocnoi-versii_YJNbLY8C.mp4
31MB
Binary
При возникновении вопросов обращайтесь в нашу службу поддержки через окошко диалога на нашем сайте qolio.io. Спасибо 😊