Setting up WebViewer BIM Server

New licenses for WebViewer BIM are no longer offered.

WebViewer BIM Server is a REST server for performing 3D document work.

This server comes packaged as a Docker image available for Linux, MacOS Intel (not in M1) or Windows.

Prerequisites

  • Server license key provided by Apryse.
  • Get a trial license key to try for free.
  • Install Docker CLI.

Setting up Server

Pull latest webviewer bim server image:

Bash

1docker pull pdftron/webviewer-bim-server:latest

Configuring Server

The BIM server supports both setting configuration through a config file and setting it directly through environment variables. To set configuration through a config file take the following steps:

The configuration file is a JSON file with the following options:

  • license - The server license key
  • temp_directory - The temp directory to use for processing. Defaults to ./sys/tmp
  • log_directory - The log directory to use for server logs. Defaults to ./sys/logs
  • data_directory - The directory to store cached data in. Defaults to ./sys/data
  • log_level - Sets the logging level. Accepts DEBUGINFOTRACEWARN
  • num_threads - The number of concurrent jobs to target. Defaults to number of CPUs detected minus 1.
  • bind_address - The server binding address. Defaults to 0.0.0.0
  • port - The server port. Defaults to 8085
  • max_cache_size - The maximum cache size before forcing cache deletion. Defaults to 90% of the available disk.
  • force_zero_cache- Force cache to constantly be removed. Defaults to false
  • release_mode - Sets HTTP to release mode, defaults to true.
  • request_timeout - Maximum time to wait for an HTTP request result in seconds. Defaults to 10 seconds.
  • job_timeout - Maximum time to wait for a job to complete . Defaults to 10 minutes.
  • use_https - If true, enables HTTPS and uses the HTTPSPort. Defaults to false
  • https_port - HTTPS port, defaults to 443
  • https_cert_file - The HTTPS public certificate location.
  • https_key_file - The HTTPS private certificate location.
  • allowed_origins - The origins allowed to access the server. Expects a string array ['test.com','pdftron.com']
  • allow_credentials - If true, includes the Access-Control-Allow-Credentials header in server responses. Required if using withCredentials on client-side API calls.

A sample of what the json file should look like.

sh

1{
2 "license": "my_license_key",
3 "allowed_origins": ["test.com", "pdftron.com"],
4 "request_timeout": 30
5}

In order to pass these arguments as enviroment variables, just run the docker contianer with variable with the prefix trn_, such as:

Bash

1docker run -e trn_license="MYLICENSE" -p 8085:8085 pdftron/webviewer-bim-server

Running Server

Running with Docker and configuration file

Bash

1docker run -p 8085:8085 -v ABSOLUTE_PATH_TO_CONFIG_JSON_FILE:/home/docjob/config pdftron/webviewer-bim-server

Replace ABSOLUTE_PATH_TO_CONFIG_JSON_FILE with the path of your config.json file.

This will mount the config file to the container into the path /home/docjob/config where it will be loaded from.

Running with Docker and environment variables

Bash

1docker run -p 8085:8085 -e trn_license="my_license_key" pdftron/webviewer-bim-server

Replace trn_license with the license that Apryse provides.

This will run the container with the trn_license configuration variable defined.

Managing Docker

It's important to maintain uptime when using a Docker container. The best way to do this is with a container management tool such as Portainer, Kubernetes, OpenShift, Docker, ECS and much more.

When managing your container, you can use the built-in health API to monitor its status.

Include credentials in cross-origin BIM requests

If you enabled withCredentials in supported client-side APIs, the BIM server must be configured correctly:

  1. Ensure allow_credentials is enabled.
  2. Ensure allowed_origins is not using the default * wildcard.

See client-side documentation for more details.

Did you find this helpful?

Trial setup questions?

Ask experts on Discord

Need other help?

Contact Support

Pricing or product questions?

Contact Sales
Setting up Server | Apryse documentation