WEB interface installation
Server requirements:
amd64 architecture
Debian 10 Buster distibution
at least 4GB of RAM
Packages installation
# 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:
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:
# 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:
# 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:
# 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:
# 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:
# 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:
# 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.
# apt install unoconv libreoffice-core
Service yeti-libreoffice-headless is disabled by default, you have to enable it.
# systemctl enable yeti-libreoffice-headless
Run it
# systemctl start yeti-libreoffice-headless
LDAP Authentication
Yeti’s web-interface may use LDAP in order to authnticate users.
Copy configuration from example file
# cp /opt/yeti-web/config/ldap.yml.dist /opt/yeti-web/config/ldap.yml
and edit it
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
# systemctl restart yeti-web