Our project has a few system-level-dependencies, which are generally useful and a few which are only used for some parts of the project. If you get stuck or have any questions, feel free to contact us. We are happy to help.
We recommend using a Linux-based OS, as we have not tested the project on Windows or Mac. ("There be dragons", but we will try to improve this part if you show us where we fail) If you are using Windows, use WSL to run Linux on Windows.
Please make sure that your OS is up-to-date, before we start. (Trust me, this has fucked over multiple people...)
On Ubuntu this is as easy as running sudo apt update && sudo apt upgrade.
You probably already have it, but if not, install it using your package manager.
We deploy our project using docker containers. This means, that if you have docker installed, you can:
- Run a part of the project like the
server,webclientor the search enginemeilisearchlocally - Test deployment-linked changes locally
To get started with docker, you can follow the official tutorial.
The data processing scripts are written in Python. We manage the interpreter and dependencies with uv.
Install uv via your package manager or:
curl -LsSf https://astral.sh/uv/install.sh | shuv will fetch the right Python version itself when you run uv sync, so a
manual Python install is not required. The pinned interpreter is in
.python-version and the lockfile is uv.lock.
Our server is written in Rust. To get started with Rust, you can follow the official tutorial. To install Rust, you can use rustup.
Our server is written in Rust. To get started with Rust, you can follow the official tutorial. To install Rust, you can use rustup.
The server uses OpenSSL to verify TLS certificates.
On Debian-based systems like Ubuntu, you can install it with:
sudo apt-get install build-essential pkg-config openssl libssl-devWe use NodeJS for the webclient. Setting up NodeJS is a bit more complicated than setting up python/rust, but it is still pretty easy.
- On Linux, you can get it through your favorite package manager.
You normally should need to install
nodejsandpnpm. - On WSL, use this guide and this guide