OMniLeads Installation using Docker

A partir de la versión 1.16.0, OMniLeads puede ser desplegado en producción utilizando Docker. En esta sección se cubren todos los aspectos necesarios para correr la aplicación utilizando contenedores Docker.

Note

Vamos a ejemplificar con Ubuntu 20.04 como Docker Engine Host.

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

These components will be installed and executed directly over the base operating system. For other part, the remaining application components, will be executed as Docker containers. In the following figure a representative scheme about how is deployed OMniLeads alongside an IPPBX stack is shown”

_images/install_docker_centos.png

Como se puede observar los componentes: Asterisk, Kamailio, Nginx, Redis, Websocket server y Django/Python-App se ejecutan en contenedores, mientras que RTPengine, PostgreSQL y Wombat Dialer sobre instancias de CentOS Linux separadas.

Installation procedure

As first step we proced with the login to the Linux host for then download the OMniLeadsand once cloned the repository we must go to the relative path; ominicontacto/deploy/ansible.

yum -y install git kernel-devel kernel-headers
yum update -y
reboot

Once finished the reboot, proceed to use Ansible to the installation you can do it about_install_selfhosted o about_install_remote. Take care about two things.

  1. Verify the section about_install_inventory_docker to see the docker variables to modify.
  2. Verify the section about_install_inventory_docker_vars to see the docker variables to modify.
  3. Modify the inventory file variables about_install_inventory_vars.

Note

  • The SUBNET=192.168.15.0/24 should ONLY be modified in case your Linuxhost LAN IP (where docker-engine runs) does not match with this range mentioned.
  1. Execute the deploy.sh script, this way:

For ansible host-node:

./deploy.sh --docker-deploy

For ansible self-hosted:

./deploy.sh --docker-deploy --iface=<your_iface>

Where <your_iface> is the interface with the IP address you want to use to raise up the services that compose OMniLeads (it usually is the LAN interface of the host).

Systemd - omnileads-prodenv

The installation includes the service: omnileads-prodenv.service, which will manage the up/down of environment. The service is configured to start automatically after a reboot.

To verifiy the service:

systemctl status omnileads-prodenv

If everything is correct we should get the following output:

_images/install_docker_systemctl_status.png

To stop the service:

systemctl stop omnileads-prodenv

To start the service

systemctl start omnileads-prodenv

FreePBX workaround

After every operating system reboot we must execute the following commands in order to make the instance ready to start to work

systemctl restart docker
systemctl restart omnileads-prodenv

These two commands will make ready the OMniLeads instance in FreePBX

Note

On next versions we will try to optimize the OMniLeads execution in FreePBX