System dependencies

Python requirements

udata requires Python >=3.11,<3.14 (see requires-python in pyproject.toml), 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 speeds up the yaml processing)
    • libffi (required by bcrypt)

Debian/Ubuntu

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

$ apt-get install build-essential pkg-config python3.11-dev python3-pip\
    libjpeg-dev zlib1g-dev libtiff5-dev libfreetype6-dev \
    liblcms2-dev libopenjpeg-dev libwebp-dev libpng-dev \
    libxml2-dev  libxslt1-dev liblzma-dev libyaml-dev libffi-dev

MacOS/Homebrew

On MacOS 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 and Redis

The project requires MongoDB 7.0 or later and Redis.

Warning

Please ensure you install compatible versions. Using unsupported versions may cause issues.

Installation steps vary depending on your operating system and configuration. If you encounter any problems during installation, please reach out via a GitHub issue or a GitHub discussion.

Redis

On Debian, as root:

$ apt-get install redis-server

MongoDB

For Debian/Ubuntu, follow the official MongoDB installation guide for your distribution.

For a quick setup on Ubuntu 22.04+ or Debian 12+ (as root):

# Import the MongoDB public GPG key
$ curl -fsSL https://pgp.mongodb.com/server-7.0.asc | gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

# Add MongoDB repository (Ubuntu 22.04 example)
$ echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list

$ apt-get update
$ apt-get install -y mongodb-org
$ systemctl start mongod
$ systemctl enable mongod

Note

Adjust the repository URL for your specific distribution. See the official MongoDB installation instructions for details.