System Dependency Reference

This provides an authoritative listing of Girder’s external system dependencies, for development reference.

Server Install

Installation of Girder’s server has the following system dependencies:

Note

Girder only performs continuous integration testing on this particular combination of dependencies. The Girder development team can only provide bugfixes and support for this environment.

  • Ubuntu 18.04

    • Girder interacts with some system libraries (particularly OpenSSL) at a very low level, so other operating system distributions and versions may not be compatible.

  • Python v3.8

    • This is necessary to run most of the server software.

  • pip v21.0.1+

    • This is necessary to install Python packages.

    • v8.1 is required to install packages via Python wheels, which significantly reduce system dependencies on manylinux-compatible distributions (which includes almost everything except Alpine).

    • v21.0.1 is required by the cryptography v3.4+ package, which is pulled in by other dependencies.

  • setuptools v21+

    • This is necessary to install Python packages.

    • v21+ is required to parse Girder’s setup.py file, but the latest version can and should be installed via pip.

  • A Python virtual environment (optional)

  • A C build environment for Python

    • This is necessary to install the psutil Python package (a requirement of Girder).

    • At a minimum, the environment must include GCC and the Python development headers.

Server Plugins Install

Some of Girder’s plugins require additional system dependencies, if they are installed:

  • OpenLDAP v2.4.11+ development headers (for the ldap plugin)

    • This is necessary to install the python-ldap Python package (a requirement of the ldap plugin).

  • Cyrus SASL development headers (for the ldap plugin)

    • This is an optional dependency for installing the python-ldap Python package (a requirement of the ldap plugin).

Server Runtime

Running Girder’s server has the following additional system dependencies:

  • MongoDB v3.6+

    • This is necessary for Girder’s primary application database.

    • MongoDB does not need to be installed on the same machine as Girder’s server, so long as a network connection to a remote MongoDB is possible.

  • An SMTP relay (optional)

    • This is necessary to send emails to users and administrators.

    • There are multiple web-based services that provide SMTP relays at no cost for smaller volumes of mail.

      • Mailgun is known to work well for typical deployments.

      • Amazon SES may be simpler to manage for deployments already in AWS.

      • Any other SMTP service should be compatible, though some may only accept mail from a limited set of “From” addresses (which may be configured via a setting within Girder).

    • Advanced system administrators may wish to run their own SMTP server, like Postfix, as a relay.

      • Beware that self-hosted SMTP relays may need additional configuration with IP whitelisting, SPF, DKIM, and other measures before their mail can be reliably delivered to some email providers.

Web Client Build

Building Girder’s web client has the following system dependencies:

  • Node.js v14

    • This is necessary to execute many aspects of the web client build system.

  • npm v6

    • This is necessary to install web client packages.

  • Git

    • This is necessary to introspect Girder’s install environment and generate version information as part of the web client build process.