Installation

Note

If you want to develop on Windows, we suggest using the Windows Subsystem for Linux in combination with Ubuntu and postgresql as local database server.

Prerequisites

Following packages are required before installing the project (install them with your package manager):

Note

A system-wide Python installation is not required. uv provisions an interpreter which satisfies the requires-python constraint of pyproject.toml on its own.

Prerequisites on common distributions

In the following, we provide the commands to install all these prerequisites on popular distributions.

Ubuntu 22.04 LTS (Jammy Jellyfish) / Debian 11 ("Bullseye")
# Install basic requirements
sudo apt install -y apt-transport-https curl gettext git pcregrep libcairo2 libpango-1.0-0 libpangoft2-1.0-0 libharfbuzz0b
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Add PPA repository for NodeJS
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
# Add PPA repository for Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
    | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker and NodeJS
sudo apt-get update && apt-cache policy docker-ce && sudo apt install -y containerd.io docker-ce docker-ce-cli nodejs
Ubuntu 20.04 LTS (Focal Fossa) / Debian 10 (Buster)
# Install basic requirements
sudo apt install -y apt-transport-https curl gettext git pcregrep libcairo2 libpango-1.0-0 libpangoft2-1.0-0 libharfbuzz0b
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Add PPA repository for NodeJS
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
# Add PPA repository for Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
    | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker and NodeJS
sudo apt-get update && apt-cache policy docker-ce && sudo apt install -y containerd.io docker-ce docker-ce-cli nodejs

Arch Linux

Note

This assumes you have completed a basic system installation including a web browser etc. and a helper for the AUR, e.g. yay.

# Install requirements
yay -S docker gettext git netcat nodejs-lts-hydrogen npm pcre uv

Download sources

Clone the project, either

via SSH:

git clone git@github.com:digitalfabrik/integreat-cms.git
cd integreat-cms

or HTTPS:

git clone https://github.com/digitalfabrik/integreat-cms.git
cd integreat-cms

Install dependencies and local package

And install it using our developer tool tools/install.sh:

./tools/install.sh

Note

  • This script checks whether the required system-dependencies are installed and installs the project-dependencies via npm and uv. If only one of both dependency-managers should be invoked, run npm ci or uv sync --locked directly.

  • By default, uv selects a suitable Python interpreter itself. To use a specific one which is already installed on your system, pass it to the installation script: ./tools/install.sh --python python3.13