.. :maxdepth: 2 ========================== WEB interface installation ========================== Server requirements: - amd64 architecture - Debian 10 Buster distibution - at least 4GB of RAM Packages installation --------------------- .. code-block:: console # apt update && apt install yeti-web nginx Databases connection configuration ---------------------------------- To configure databases connection parameters create /opt/yeti-web/config/database.yml file with the following content: .. code-block:: yaml production: adapter: postgresql encoding: unicode database: yeti pool: 5 username: yeti password: somepassword host: 127.0.0.1 schema_search_path: 'gui, public, switch, billing, class4, runtime_stats, sys, logs, data_import' port: 5432 min_messages: notice secondbase: production: adapter: postgresql encoding: unicode database: cdr pool: 5 username: yeti password: somepassword host: 127.0.0.1 schema_search_path: 'cdr, reports, billing' port: 5432 min_messages: notice Warning: you should specify correct addresses and credentials that were used in previous section Databases data initialization ----------------------------- To initialize empty databases during initial installation: .. code-block:: console # cd /opt/yeti-web # su -s /bin/bash yeti-web $ RAILS_ENV=production ./bin/bundle.sh exec rake db:structure:load db:migrate $ RAILS_ENV=production ./bin/bundle.sh exec rake db:second_base:structure:load db:second_base:migrate $ RAILS_ENV=production ./bin/bundle.sh exec rake db:seed To upgrade databases to the latest version: .. code-block:: console # cd /opt/yeti-web # su -s /bin/bash yeti-web $ RAILS_ENV=production ./bin/bundle.sh exec rake db:migrate $ RAILS_ENV=production ./bin/bundle.sh exec rake db:second_base:migrate Nginx configuration ------------------- For basic configuration remove default config and copy yeti-web.dist.nginx: .. code-block:: console # rm /etc/nginx/sites-enabled/default # cp /opt/yeti-web/config/yeti-web.dist.nginx /etc/nginx/sites-enabled/yeti # nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # service nginx restart Launch ------ After successful configuration of databases you finally can run software using following commands: .. code-block:: console # service yeti-web start # service yeti-cdr-billing@cdr_billing start # service yeti-delayed-job start # service yeti-scheduler start This will run web-interface, schedulers, background tasks processors and CDR processing workers Checks ------ check if puma listens on local socket: .. code-block:: console # netstat -lpn | grep puma unix 2 [ ACC ] STREAM LISTENING 16420 258/puma 5.5.2 (uni /run/yeti/yeti-unicorn.sock check if nginx listens on correct TCP/IP addresses and ports: .. code-block:: console # netstat -lpn | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 23627/nginx tcp 0 0 127.0.0.1:6666 0.0.0.0:* LISTEN 23627/nginx Log files to check for possible warnings/errors: - /var/log/yeti/yeti-web.log - /var/log/yeti/yeti-cdr-billing.log - /opt/yeti-web/log/puma.stdout.log - /opt/yeti-web/log/puma.stderr.log Try to open management interface in your favorite browser and login with default credentials: :user: admin :password: 111111 Invoice PDF generation ---------------------- If you need to generate invoices in PDF format, you have to install additional LibreOffice packages. .. code-block:: console # apt install unoconv libreoffice-core Service **yeti-libreoffice-headless** is disabled by default, you have to enable it. .. code-block:: console # systemctl enable yeti-libreoffice-headless Run it .. code-block:: console # systemctl start yeti-libreoffice-headless LDAP Authentication ------------------- Yeti's web-interface may use LDAP in order to authnticate users. Copy configuration from example file .. code-block:: console # cp /opt/yeti-web/config/ldap.yml.dist /opt/yeti-web/config/ldap.yml and edit it .. code-block:: console production: host: yeti-host.com port: 389 ssl: false attribute: uid base: ou=employees,dc=yeti,dc=com group_base: ou=groups,dc=yeti,dc=com required_groups: - ["member", "cn=yeti,ou=groups,dc=yeti,dc=com"] * **host** - address of LDAP server * **port** - port of LDAP server * **ssl** - enable/disable SSL * **attribute** - name of attribute which contains user login * **base** - base DN where YETI will try find users * **group_base** - base DN where YETI will try find groups * **required_groups** - array of groups where user must present * **member** - attribute where group stored * **cn=yeti,ou=groups,dc=yeti,dc=com** - group After editing file, restart YETI web interface .. code-block:: console # systemctl restart yeti-web