Hosting the Pexip web app externally

The web app is hosted by default on every Conferencing Node, however there may be situations where you want to host the web app on a reverse proxy or external web server instead, for example if you want to host multiple customized/branded versions of the app.

Hosting the web app on an external server involves downloading a copy of the entire web app from the Management Node and uploading it onto the external web server or reverse proxy and then serving it from that server. If required, you can host multiple different branding customizations under different URLs on those external web servers or reverse proxies.

This topic describes how to download and copy over the web app for hosting externally, how to apply customized branding to externally-hosted web apps, and how to upgrade externally-hosted web apps. It also describes what you must do if you are Using SSO with an externally-hosted web app.

Note that since version 31 of Pexip Infinity you can also use path-based branding which allows you to host multiple differently-customized web apps on your Conferencing Nodes.

Full information about creating a customized version of the web app is given in Customizing and branding the Pexip apps and Advanced Pexip app branding and customization.

Copying over the Pexip web app

To download the web app files and copy them to an external web server or reverse proxy:

  1. From the Management Node, go to Web App > Web App Download.

    You see the Infinity web app download page.

  2. In the Download web app field, use the drop-down menu to select the version of the web app you want to host externally, and select Download.

    A ZIP file containing the files for the selected web app is downloaded to your local machine.

  3. Unzip the files and locate the relevant directory: webapp3/<revision>/web/
  4. Copy the contents of the web/ directory to the external web server or reverse proxy.

Examples

Assuming that your external web server (https://pexample.com) is serving files from /var/www/html:

  1. Download the Webapp3 ZIP file from Pexip Infinity.
  2. Unzip the file to your home directory (unzip $webapp3.zip).
  3. Copy the contents to /var/www/html (cp -r webapp3/$version/web /var/www/html/webapp3).
  4. Go to https://example.com/webapp3 to use Webapp3.

Uploading branding files

When hosting Webapp3 on an external web server or reverse proxy, the branding files must be uploaded to a branding folder directly under the directory from which the web app is being served. You must create the branding folder if it does not already exist.

You obtain the files to be uploaded by downloading them from the Management Node, using the branding portal to create a branding package, or creating them manually.

For example, assuming that your external web server (https://pexample.com) is serving Webapp3 from /var/www/html/webapp3 and you are using a branding package downloaded from Pexip Infinity:

  1. Download the Webapp3 branding package from Pexip Infinity.
  2. Unzip the files to your home directory (unzip $branding.zip).
  3. Copy the branding files to the hosted Webapp3 (cp webapp3/branding /var/www/html/webapp3/).
  4. Go to https://example.com/webapp3 to use the branded Webapp3.

See Manually customizing Webapp3 for details of the files that you can include in the branding folder.

Maintaining customizations when upgrading Pexip Infinity

If the web app is being hosted on an external web server or reverse proxy, the copy of the web app must be upgraded manually whenever the Pexip Infinity installation is upgraded or you update the web app software bundle. You should migrate the existing customized branding directory (Webapp3) on the external web server or reverse proxy onto the new version:

  1. Backup the branding or custom_configuration directory on the external web server or reverse proxy containing your current customizations.
  2. Upgrade your Pexip Infinity deployment, or install the software bundle for a new web app version.
  3. Download and copy over the upgraded web app files as described in Copying over the Pexip web app.
  4. Replace the contents of the branding or custom_configuration directory with your previously customized contents.
  5. Check if you need to add any more customizations to support any new features.

    When a new version of the web app includes new features, any new customizable elements are added to the default versions of the files in the branding or custom_configuration directory that is shipped with the new software. Therefore, after an upgrade you should compare your customized versions of these files with the new default versions, to see if any text, styles, colors or resource files should be adjusted.

Using SSO with an externally-hosted web app

Proxying API requests

If you are hosting the webapp externally, or accessing the web app from a URL that is not a Configured FQDN for any Conferencing Node (for example, when using DNS A records to access the web app) you must ensure that any API requests sent to the external host or URL are proxied on to Pexip Infinity and included as a redirect URL.

For example, if your webapp is hosted at https://webapp.pexample.com:

  • anything under https://webapp.pexample.com/api must be proxied through to your Conferencing Nodes
  • for each Identity Provider configured in your deployment, either https://webapp.pexample.com/api/v1/samlconsumer/ (for SAML IdPs) or https://webapp.pexample.com/api/v1/oidcconsumer/ (for OIDC IdPs) must be included as an additional Redirect URL.

Adding external hosts to Pexip Infinity

During the pop-up-free authentication flow, the user's browser is ultimately redirected to a URL. Pexip Infinity will only allow the process to continue if the URL includes one of the entries on its internal "allow list", which is made up of the IP addresses and Configured FQDNs of all Conferencing Nodes, plus all the hosts listed as an External Web App Host.

If you are using the pop-up-free authentication flow for users attempting to join a meeting and you are either:

  • hosting the web app externally, (i.e. on something other than a Conferencing Node), or
  • accessing the web app from a URL that is not a Configured FQDN for any Conferencing Node (for example, when using DNS A records to access the web app)

you must add the web app's host address / URL (as applicable) to the "allow list" of External Web App Hosts .

To add an external web app host / URL to Pexip Infinity:

  1. Go to Web App > External Web App Hosts and select Add External Web App Host.
  2. Enter the IP address or FQDN of the external host, or the URL, and select Save.