# Install with Tarball

Step 1 Go  to download.denovolab.com

Download  api, database, systemd service files,  falcon\_rest package, ui and switch binaries

Supported OS is Centos7

## First time install:

Run the following commands:

```
yum -y install epel-release
yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum -y install centos-release-scl
yum clean expire-cache
yum -y install python3 python3-pip python3-devel libnetfilter_conntrack postgresql12 postgresql12-devel wget lzma openssl-devel xz-devel gcc libjpeg-turbo-devel ntp python-devel tcpdump wireshark make bzip2-devel sqlite-devel zip expect telnet git ntp redis nginx postgresql12-server prefix12 ip4r12 postgresql12-contrib
```

* Check if  selinux is enabled, and if true, set it to permissive or disable it
* Install  NodeJS for the  UI with the following commands:

```
curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash -
yum install -y nodejs
create user  webbackend and denovo_v6:
-          useradd  denovo_v6  -d /opt/denovo_v6
-          useradd  -r  webbackend
```

* copy  content of the systemd.tar.gz into  /etc/systemd/system
* initialize postgresql server:

```
/usrl/psql-12/bin/postgresql-12-setup  initdb postgresql

```

* Go  to /opt/pgsql/12/data/, edit pg\_hba.conf:

```
local   all         all                                 trust
# IPv4 local connections:
host all         all         127.0.0.1/32       trust
# IPv6 local connections:
host all         all         ::1/128             trust
```

* Start  Postgres server using the following command:

```
systemctl  start postgresql
```

* Unpack database archive and  prepare  and load db.   In psql command prompt , make database named class4\_dnl.

Here is how you enter into Postgres prompt:

```
psql   -U postgres
```

Here is how you create .a Postgres database:

```
create database class4_dnl;
create user webbackend superuser login;
```

After that, you navigate to the folder where  you unpacked database files

```
psql  -U postgres class4_dnl  <schema.sql
psql  -U postgres  class4_dnl <data.sql
```

Then you can install Python Backend:

```
pip3  install  falcon-rest-1.0.14.tar.gz
```

* In the directory  /opt/denovo\_v6   copy contend of  the switch binaries
* Create directory web and put content of the UI  archive there
* Go to the dir where api\_dnl is and  run  following commands:

```
pip3  install –U pip
pip3 install  filename_api_dnl.tar.gz
```

* Create file  named denovo.conf in the  /etc/nginx/conf.d/ and put following:

```
server {
     listen   80;
        server_name  localhost;
     root               /opt/denovo_v6/web;
             index   index.html index.htm;
        client_max_body_size 320m;
     # Load configuration files for the default server block.
     include /etc/nginx/default.d/*.conf;
     location / {
     try_files $uri $uri/ @rewrites;
     }
     location @rewrites {
     rewrite ^(.+)$ /index.html last;
     }
     error_page 404 /404.html;
         location = /40x.html {
     }
     error_page 500 502 503 504 /50x.html;
         location = /50x.html {
     }
}
```

* Restart nginx.
* Start  all dnl services&#x20;

```
systemctl start dnl_softswitch, dnl_livecall, dnl_tools dnl_webhelper dnl_api_dnl, dnl_api_dnl_worker@0 dnl_api_dnl_worker@1 dnl_api_dnl_worker@2 dnl_api_dnl_beat
```

Also make sure that redis  and nginx is running,  if you have firewall enabled, add port for the web ui into it

For the switch you need  also to open ports in firewall if you are using it:

Default ones are 4319/udp , 5060/udp

After all is started you should be able to open UI on the ip address of your machine, and take rest configuration from there.

You must setup Selinux according to instruction [here](https://cookbook.denovolab.com/installation/setup-selinux) in order for UI to show up.
