With Apache 2.4.5 the support for proxying WebSockets was introduced. For the following configuration to work the following modules need to be enabled: proxy, proxy_http, proxy_wstunnel, headers.


Install Kopano Webmeetings and the WebApp Webmeetings plugin



enabled proxy, proxy_http, proxy_wstunnel, headers Apache modules

$ sudo a2enmod proxy proxy_http proxy_wstunnel headers


Create a file called kopano.list in /etc/apt/sources.list.d/  and add the following.

Take note that the following is an example for Debian 8. Adjust them according to your specific distribution if needed, such as Ubuntu_16.04

#WebMeetings
deb https://serial:<INSERT_SERIALKEY>@download.kopano.io/supported/webmeetings:/final/Debian_8.0/ ./ 

Our packages are signed so we need to add the key as well.

$ sudo curl https://serial:<INSERT_SERIALKEY>@download.kopano.io/supported/webmeetings:/final/Debian_8.0/Release.key | apt-key add -


All our packages are signed by the same key so you only need to add the key once


Now install kopano-webmeetings

$ sudo apt-get update
$ sudo apt-get install kopano-webmeetings kopano-webapp-plugin-meetings





Create a file called kopano.repo in /etc/yum.repos.d/kopano.repo and add the following.

Take note that the following is an example for RHEL 7 and CentOS 7. Adjust them according to your specific distribution if needed

[Kopano-webmeetings] 
name=Final repository for Kopano-webmeetings (RHEL_7) 
type=rpm-md 
baseurl=https://serial:<INSERT_SERIALKEY>@download.kopano.io/supported/webmeetings:/final/RHEL_7/
gpgcheck=0
gpgkey=https://serial:<INSERT_SERIALKEY>@download.kopano.io/supported/webmeetings:/final/RHEL_7/repodata/repomd.xml.key
enabled=1 


$ sudo yum update
$ sudo yum install kopano-webmeetings kopano-webapp-plugin-meetings



Create a file called kopano.repo in /etc/zypp/repos.d/kopano.repo and add the following.

Take note that the following is an example for SLE 12. Adjust them according to your specific distribution if needed.

[Kopano-webmeetings] 
enabled=1
autorefresh=0
baseurl=https://serial:<INSERT_SERIALKEY>@download.kopano.io/supported/webmeetings:/final/SLE_12/
gpgcheck=0
gpgkey=https://serial:<INSERT_SERIALKEY>@download.kopano.io/supported/webmeetings:/final/SLE_12/repodata/repomd.xml.key
type=rpm-md 


$ sudo zypper update
$ sudo  zypper install kopano-webmeetings kopano-webapp-plugin-meetings




Apache configuration



Make sure you have configured SSL for Apache correctly

After this is done a vhost with the following configuration can be created in sites-available:

## reverse proxy configuration for kopano-webmeetings
<VirtualHost *:443>
    SSLCertificateFile      /PATHTOSSLCERTS/server.crt
    SSLCertificateKeyFile /PATHTOSSLCERTS/server.key

    ServerName CHANGEME
    <Location /webmeetings>
        ProxyPass http://127.0.0.1:8090/webmeetings
        ProxyPassReverse /webmeetings
    </Location>

    <Location /webmeetings/ws>
        ProxyPass ws://127.0.0.1:8090/webmeetings/ws
    </Location>

    ProxyVia On
    ProxyPreserveHost On
    RequestHeader set X-Forwarded-Proto 'https' env=HTTPS


</VirtualHost>




In the Kopano Webapp config file, add the following underneath "Alias /webapp /usr/share/kopano-webapp":

# Alias /webapp /usr/share/kopano-webapp
ProxyPass /webapp/presence http://localhost:1234/
ProxyPassReverse /webapp/presence http://localhost:1234/






Make sure you have configured SSL for Apache correctly


Add the following inside the SSL virtualhost part of Apache ssl.conf

#<VirtualHost _default_:443>


    <Location /webmeetings>
        ProxyPass http://127.0.0.1:8090/webmeetings
        ProxyPassReverse /webmeetings
    </Location>

    <Location /webmeetings/ws>
        ProxyPass ws://127.0.0.1:8090/webmeetings/ws
    </Location>

    ProxyVia On
    ProxyPreserveHost On
    RequestHeader set X-Forwarded-Proto 'https' env=HTTPS


#</VirtualHost>




In the Kopano Webapp config file, add the following underneath "Alias /webapp /usr/share/kopano-webapp"

# Alias /webapp /usr/share/kopano-webapp
ProxyPass /webapp/presence http://localhost:1234/
ProxyPassReverse /webapp/presence http://localhost:1234/




Make sure you have configured SSL for Apache correctly

After this is done a vhost with the following configuration can be created in sites-available:

## reverse proxy configuration for kopano-webmeetings
<VirtualHost *:443>

    ServerName CHANGEME
    <Location /webmeetings>
        ProxyPass http://127.0.0.1:8090/webmeetings
        ProxyPassReverse /webmeetings
    </Location>

    <Location /webmeetings/ws>
        ProxyPass ws://127.0.0.1:8090/webmeetings/ws
    </Location>

    ProxyVia On
    ProxyPreserveHost On
    RequestHeader set X-Forwarded-Proto 'https' env=HTTPS


</VirtualHost>




In the Kopano Webapp config file, add the following underneath "Alias /webapp /usr/share/kopano-webapp":

# Alias /webapp /usr/share/kopano-webapp
ProxyPass /webapp/presence http://localhost:1234/
ProxyPassReverse /webapp/presence http://localhost:1234/






Configure WebMeetings

We need 2 secret keys that are 32 bytes long

xxd -ps -l 32 -c 32 /dev/random

In this example we will use the following keys

webmeetings shared secret = 423f4308d0ffbb8e6a589894f6eda003addf6da40932105991e1867a5bd9bdf6
presence shared secret = 8fb26dc0adccc82fcbc5c46f59973bbf83413c3a42e328de1214333b1815f422


Add the webmeetings  key in /etc/kopano/webmeetings.cfg 

sharedsecret_secret = 423f4308d0ffbb8e6a589894f6eda003addf6da40932105991e1867a5bd9bdf6


Add the presence key in /etc/kopano/presence.cfg

server_secret_key = 8fb26dc0adccc82fcbc5c46f59973bbf83413c3a42e328de1214333b1815f422


Add both keys in /etc/kopano/webapp/config-meetings.php

DEFINE('PLUGIN_SPREEDWEBRTC_USER_DEFAULT_ENABLE', true);

DEFINE('PLUGIN_SPREEDWEBRTC_WEBMEETINGS_SHARED_SECRET', '423f4308d0ffbb8e6a589894f6eda003addf6da40932105991e1867a5bd9bdf6');

DEFINE('PLUGIN_SPREEDWEBRTC_PRESENCE_SHARED_SECRET', '8fb26dc0adccc82fcbc5c46f59973bbf83413c3a42e328de1214333b1815f422');


Kopano WebApp

Open Kopano Webapp and you should be able to see the Webmeetings icon.

If not please enable the plugin first in the users' WebApp settings.

Click on the icon and you should see the following