Skip to content

On-premise Installation

Easy Report in your infrastructure

The on-premise installation implies that everything will be deployed on your infrastructure. There will be no external dependencies and the only connection to the internet will be the webhook connected directly to the messenger.

Easy-Report-in-your-infrastructure

See more information about reverse proxy here

0. Create virtual machine

Please, see the requirements which we provided.

This virtual machine has to be able to connect to your messengers' API (for some messengers it means the ability to connect to the internet). Later you will need its IP address.

1. Provide hostname

e.g. easyreport.mycompany.com

Messengers use webhooks for chatbot functionality, meaning messengers will post updates to this hostname.

2. Setup proxy

Usually, our clients have a common web server that redirects traffic from the internet to internal servers.

You need to add a new config to this web server (e.g. nginx) which will redirect traffic from easyreport.mycompany.com to Easy Report virtual machine.

The proxy has to have an open port 443 and a valid SSL certificate (this is the messengers' requirement).

Below is the sample config for nginx:

server {
    listen 80;
    server_name easyreport.mycompany.com www.easyreport.mycompany.com;

    rewrite ^ https://easyreport.mycompany.com$request_uri? permanent;
}


server {
    listen 443 ssl;
    server_name easyreport.mycompany.com www.easyreport.mycompany.com;

    ssl_certificate /etc/nginx/certs/mycompany.com_concat.crt;
    ssl_certificate_key /etc/nginx/certs/mycompany.com.key;
    ssl_session_cache shared:SSL:10m;

    add_header Referrer-Policy "same-origin" always;
    add_header X-Content-Type-Options "nosniff" always; 
    add_header X-Robots-Tag "none, nosnippet, noarchive, noimageindex"; 
    add_header X-Download-Options "noopen" always; 
    add_header X-Frame-Options "SAMEORIGIN" always; 
    add_header X-Permitted-Cross-Domain-Policies "none" always;
    add_header X-XSS-Protection "1; mode=block" always;

    access_log /var/log/nginx/easyreport.mycompany.com-access.log;
    error_log /var/log/nginx/easyreport.mycompany.com-error.log;

    client_max_body_size 750M;

    location / {
        proxy_pass http://<Virtual machine internal ip-address>; 

        proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    }

}

Finally, add a DNS record to your host provider, e.g. easyreport A <proxy external IP address>

3. Create email account

e.g. easyreport@mycompany.com

You need to create an email account to let Easy Report send out invitations for end-users and deliver reports to their emails. You need to provide the following credentials:

  • SMTP server host (e.g. smtp.mycompany.com)
  • SMTP server port (e.g. 567)
  • email address
  • email password

4. Unzip archive

tar -xvf easyreport--XX.XX.X.tar.xz

5. Install cluster

bash install_cluster.sh

6. Update values.local.yaml

Using any text editor (e.g. nano, vim) you need to edit the following fields:

  • ingress.host: replace <hostname> with provided hostname (e.g. easyreport.mycompany.com)
  • email.host: replace <email-host> with SMTP server host (e.g. smtp.mycompany.com)
  • email.port: replace 567 with SMTP server port (e.g. 567)
  • email.user: replace <email-user> with provided email address (e.g. easyreport@mycompany.com)
  • email.password: replace <email-password> with provided email password
  • email.from: replace <email-user> with provided email address (e.g. easyreport@mycompany.com)
nano values.local.yaml

7. Install Easy Report

bash install_easyreport.sh easyreport-XX.XX.X.tar.xz