System dependencies

Python requirements

udata requires Python 3.6, its development tools and some libraries to be installed (with their headers). Most of them might already be installed as they are common development dependencies. The full dependencies list is:

  • Pillow (Image processing)
    • libjpeg
    • zlib
    • libpng
    • libtiff
    • libfreetype
    • liblcms2
    • libopenjpeg
    • libwebp
  • lxml dependencies
    • libxml2
    • libxslt
  • Misc dependencies
    • liblzma (required to load GeoZones)
    • libyaml (not mandatory but speed up the yaml processing)
    • libffi (required by bcrypt)


By the time this project was started, Python 3 did not have great third dependencies support and some requirements weren’t suported yet so it was started with Python 2.7.


On any Debian-like system you can install the development tools and libraries with:

$ apt-get install build-essential pkg-config python python-dev python-pip python-virtualenv\
    libjpeg-dev zlib1g-dev libtiff5-dev libfreetype6-dev \
    liblcms2-dev libopenjpeg-dev libwebp-dev libpng12-dev \
    libxml2-dev  libxslt1-dev liblzma-dev libyaml-dev libffi-dev


On Mac OSX with Homebrew, you can install the development tools and libraries with:

$ brew install automake autoconf libtool pkg-config python \
    libjpeg zlib libtiff freetype littlecms openjpeg webp libpng \
    libxml2 libxslt xz libyaml

MongoDB, ElasticSearch and Redis

The project depends on MongoDB 3.6+, ElasticSearch 2.4 and Redis (beware of the version, it will not work well if they are not respected).

Elasticsearch requires the Analysis ICU plugin for your specific version.

The installation process is very specific to your operating system and will depend on your configuration, join us on Gitter if you have any issue.


On Debian, as root:

$ apt-get install redis-server


On Debian Jessie (cf mongo-install-instructions for other versions), as root:

$ apt-key adv --keyserver hkp:// --recv EA312927
$ echo "deb jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongodb-org-3.6.list
$ apt-get update
$ apt-get install -y mongodb-org
$ service mongod start


On Debian, you need to add the appropriate apt repository (cf elastic-install-instructions for more details):

deb stable main

and install it like any other Debian package (You might need to enable Debian Backport repository) The plugin command is located in the /usr/share/elasticsearch/bin directory.

You need a java binary in your path for ElasticSearch to operate properly, for example on Debian (as root):

$ apt-get install default-jre

To install ElasticSearch, for example on Debian Jessie, you will have to perform (as root):

$ echo "deb stable main" \
    > /etc/apt/sources.list.d/elasticsearch.list
$ echo "deb jessie-backports main contrib non-free" \
    > /etc/apt/sources.list.d/debian-backports.list
$ apt-get update
$ apt-get install elasticsearch
$ /usr/share/elasticsearch/bin/plugin install analysis-icu
$ service elasticsearch restart

If you are using Homebrew (OSX):

$ brew install elasticsearch
$ /usr/local/Cellar/elasticsearch/2.4.1/libexec/bin/plugin install analysis-icu