Fully offline installation

This section applies to installing Dash Enterprise on a single server in a fully offline environment.

Dash Enterprise supports fully offline installations (a.k.a. airgapped installations), with some limitations in deploying Dash apps (described in Dash app limitations in offline mode)).

Apart from Internet access, the server requirements for a fully offline installation are the same as for a normal installation on your own hardware, as well as:

  1. A supported version of Docker and the Server Manager installed on your server (described here)

  2. A link to the Dash Enterprise airgapped installation package, provided to you by the Plotly sales team

Dash app limitations in offline mode

These are currently known limitations with how Dash apps work offline and may be addressed in a future Dash Deployment Server release:

  • All Python packages, including Dash libraries and their dependencies, must be available via a private PyPI repository specified in the app’s requirements.txt

  • Only Python versions 2.7.9 - 2.7.16 and 3.6.0 - 3.6.10 are supported

    • If another version is listed in your runtime.txt, the app build will hang or fail

  • Only Conda runtimes Miniconda2-4.5.12 and Miniconda3-4.5.12 are supported

    • If another version is listed in your conda-runtime.txt, the app build will hang or fail

  • All Python dependencies must be installed via requirements.txt or via Conda

    • Pipfile and nltk.txt are not supported.

  • hg+ and git+ requirements are not supported

Prepare the environment

Install Docker

We recommend you use the most recent version of Docker supported by your operating system. These operating systems and corresponding Docker versions are known to work together:

OS and Docker Repository Link

Highest Supported Docker Version

CentOS 7 / RHEL 7

19.03.15

Ubuntu 16.04 (Xenial)

19.03.15

Ubuntu 18.04 (Bionic)

19.03.15

Debian 7 (Wheezy)

18.03.1

Debian 8 (Jessie)

18.06.3

Debian 9 (Stretch)

19.03.15

Debian 10 (Buster)

19.03.15

If you need to use a different operating system and/or Docker version, please contact Plotly support for assistance.

  1. Download the correct Docker package for your needs, plus any dependencies, and and transfer those files to your server

    1. If the server has access to a local yum or apt repository, you can use yum or apt to install dependencies from that repository instead of manually installing them

  2. Install Docker using one of the following commands:

Ubuntu/Debian
CentOS/RHEL/Fedora
Ubuntu/Debian
sudo dpkg --install <package_name>.deb
CentOS/RHEL/Fedora
sudo rpm -ivh <package_name>.rpm

Additional Docker setup for CentOS 7/RHEL 7 systems

After installing Docker, increase the default devicemapper base device size as follows:

  • Add the following line to /etc/default/docker:

DOCKER_OPTS=--storage-opt dm.basesize=20G

If an uncommented DOCKER_OPTS line already exists, append the following string to it instead of adding a new line: --storage-opt dm.basesize=20G

  • Restart Docker

Ubuntu/Debian
CentOS/RHEL/Fedora
Ubuntu/Debian
sudo service docker restart
CentOS/RHEL/Fedora
sudo systemctl restart docker

Install the Server Manager

The Server Manager is a web-based console where you can manage your Dash Enterprise instance’s settings, as well as perform upgrades and start/stop the application. This component is normally installed automatically when using an online installation process, but when working offline, must be installed separately as follows:

  1. On an Internet-capable machine, download the latest Server Manager release from https://s3.amazonaws.com/replicated-airgap-work/stable/replicated-2.50.0%2B2.50.0%2B2.50.0.tar.gz and transfer it to your destination server.

  2. In a terminal, run the following commands:

tar xzvf replicated.tar.gz
cat ./install.sh | sudo bash -s airgap

Once installed, the Server Manager is available on port 8800 of your server’s IP or base domain (e.g. https://12.34.56.789:8800 or https://plotly.your-company.com:8800\.

Create the Plotly data directory

This directory will hold all of the Dash Enterprise data, such as configuration, apps, databases, logs, and other files. You can name this directory anything, but we recommend /plotly for consistency with other installation types and the rest of this documentation.

sudo mkdir /plotly

Download, rename and copy the installation package

  1. Use the download link and password provided to you by Plotly to download an airgap installation package. Set the --trust-server-names flag for wget. Alternatively, rename the file to something ending with .airgap.

  2. Copy the package to your server and note the path you copied it to.

Install

  • Browse to the Server Manager on port 8800 of your base domain.

You will see an untrusted connection warning; this is expected and not a reason for concern

  • Accept the initial self-signed certificate and enter the Hostname of your server.

    • If you have a CA-issued TLS/SSL certificate and the corresponding key, select them here and choose Upload & Continue.

    • Otherwise, choose Use Self-Signed Cert and accept the new certificate generated.

  • Click Choose License and select the license (.rli) file provided to you by the Plotly sales team.

  • Choose Airgapped as the installation type and click Continue.

  • Enter the full path to the airgap package file you copied here and click Continue.

Your server is now ready to be configured.

Installing Dash Enterprise packages

The images used to build Dash applications on the Dash Enterprise server are configured to install Plotly-hosted Dash dependencies, such as Dash Design Kit, via an internal repository located at https://PLOTLY_DASH_DOMAIN_BASE/Docs/packages/.

PLOTLY_DASH_DOMAIN_BASE is the Dash Enterprise server’s DNS name. Additional consideration is often needed on airgapped environments to reach the packages hosted at this endpoint. If PLOTLY_DASH_DOMAIN_BASE is configured to be the public IP of the host and if this IP is unreachable from the host itself, we have identified two workarounds:

  1. Change the Dash Domain DNS entry to the private IP of the host, then use a proxy server to reach your host from a browser; or

  2. Download any needed packages from https://PLOTLY_DASH_DOMAIN_BASE/Docs/packages/ and transfer them to an internal Python package repository that can be reached from your instance.