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)
This is necessary to prevent conflicts with Girder’s Python dependencies and allow installation as a non-root user.
Virtual environments are managed by the virtualenv package in Python v2.x and by the built-in venv module in Python v3.5+.
Note
Developers needing to work on several virtual environments should consider using other packages that help manage them such as:
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: