Deploying WebViewer on Azure

This guide will detail possible methods for deploying on Azure, remember to keep in mind the minimum requirements when deploying WebViewer Server.

Running on a Linux VM

To build the WebViewer Server on a Linux VM, follow this guide on building docker compose images alongside our guide on building the WebViewer Server image.

  • If building with the Azure VM, you may have to change the version specifier in the docker-compose.yml file to version:"2.0" or update docker-compose depending on the VM used.

Quick Start with Web Apps for Containers

Azure WebApp Performance Issues

Due to how Azure WebApps are designed, their main drive has read/write speeds around 20 MB/s, this may cause a loss in performance in WebViewer Server. We recommend that the read/write available exceed 60 MB/s at least in any system you deploy in.

It is possible to deal with these issues by using a dedicated instance, but this can only be acquired by contacting Azure regarding your account.

This section specifies how to build a Web App server for containers on Azure. Azure Web Apps provide you a fully managed environment for hosting web servers. This will be the easiest way to get setup on Azure.

  1. Through the Azure Dashboard create a new Web Apps for Containers resource on Azure.
  2. On the resource creation screen, configure the settings of your server.
    • Type in a name for your app, this will also be the domain name for your server.
    • Set the OS option to Linux.
  3. Click Configure Container.
    • In the new page, click DockerHub.
    • In the field Image and optional tag type pdftron/webviewer-server:latest. Click apply.
    • A version of WebViewer Server version older than 1.5.1 can no longer be used on Web Apps
    • Once returned to the main page, click `Create**.
  4. Set the options Web Sockets to On and the option Always On to true. While running, these options will be under Application settings and General settings respectively.
  5. Restart the container.

If you wish to access the container it will be available under the URL field on the Overview page. You can access the demo application built in by using URL/demo?s to access it. It will take a few minutes for the server to become available after the initial creation is complete.

You may also add a key to the container and control any other settings as listed in our Docker image guide. Go to Application Settings and under the heading Application Settings select Add new setting. Set the name to your setting and the value to the desired value, like such (you do not need to set this property if you are demoing our software):

TRN_PDFNET_KEY demo:12345

It is also possible to build the WebViewer Server container yourself and host it on Azure to be used with Web Apps, to do so follow this guide.

Running on Container Instances

Building on a Container Instance allows you more flexibility in usage but does not offer the fully integrated environment that a Web App server provides.

  1. Navigate to Create a resource in the Azure portal and search for Container Instances, once you've found it select it and create.
  2. Set your Container image type to Public. In the Container image field type pdftron/webviewer-server:latest.
  3. Click OK
  4. The Configuration page should now be shown.
    • Set Port to 8090
    • Set OS Type to Linux
    • Set each Environment Variable to the variables you use under the environment section of the docker-compose.yml for example: "INCLUDE_DEMO":"true"
  5. Hit OK twice more and the container should now be deploying.

If you included the demo in this build, you should now be able to access the demo at container_instance_address:8090/demo?s A private Azure image registry can also be used here.

Building the Azure Image Registry

The image registry is responsible for serving built container images on Azure. This can be done if you wish to host the Docker image directly within your network. This registry can be used when building Container Instances or Web Apps for Containers.

Microsoft also provides a more detailed guide on this process.

  1. Start by navigating to Create a resource in the Azure portal and search for Container Registry, once you've found it select it and create.
  2. Fill in the fields with settings appropriate to your Azure account. Ensure the Admin User is enabled.
  3. Deploy the Registry and wait for it to be created. Once it has been completed move to the next step.
  4. Go to your registry in your resources tab and find your username and password. It will be under Settings > Access Keys. You will need the username and password when pushing the image. Next go to Overview and find the Login Server, you will also need this when pushing the image.
  5. Install Docker.
  6. Login to your Azure Image Registry:
    • docker login -u your_username -p your_password your_login_server
  7. Pull, tag and push our docker images from your command prompt:
    • docker pull pdftron/webviewer-server:latest
    • docker tag pdftron/webviewer-server:latest your_login_server/image_name:latest
    • docker push your_login_server/image_name:latest
  8. You now have a pushed image on your Container Registry. You can move on to building your server.

Azure FAQ

  1. Do I need ARR Affinity cookies for my Web App server?
    • If you wish to scale your Web App server beyond 1 container ARR Affinity should be enabled to ensure sticky sessions for users. If this is not enabled, the server will have problems if clients are swapped between servers during a document connection.

Did you find this helpful?

Trial setup questions?

Ask experts on Discord

Need other help?

Contact Support

Pricing or product questions?

Contact Sales