Local Dev System Setup#
Linux#
This is the basic setup guide for a fresh Linux client system, to have everything ready in order to work on our different base applications. This should work on most Debian-based distributions. It was specifically tested on:
Debian 13 (Trixie)
Here are the steps to install everything you will need to work with the base codebase:
Install some basic packages needed in our setup:
sudo apt install curl git build-essential libssl-dev \ libffi-dev zlib1g-dev libsqlite3-dev liblzma-dev libbz2-dev \ libncurses5-dev libreadline-dev tk8.6-dev
Note
Disclaimer: if you really solely work on frontend code or only on backend code, you could either leave out the following step 2 (uv) or 3 (nvm), to not clutter your system. But we suggest installing both, so you are ready also to run frontend or backend code on your machine any time - which will be necessary for testing at some point, when you do not want or cannot rely on the dev containers.
Install uv based on the uv install instructions. We suggest to use the standalone installer if you don’t have a specific setup that requires another method.
Check if everything is working with
uvanduv --version.For a quick ref on how to use
uvcheck the Tools and Environments section.
Install nvm and the latest LTS version of Node.js:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc nvm install --lts
Check if everything is working with
nvm -vandnode -v.
Install docker
You can either install the whole Docker Desktop or just install the Docker Engine (and make sure the
docker composeplugin works)some of our projects are still tailored towards
docker-composeinstead ofdocker compose. While this should be phased out soon, in the meantime you can emulatedocker-composeby doing the following:echo 'docker compose "$@"' | sudo tee /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
A note on permissions: by default you will need root privileges to user docker. If you do not want to always use
sudoin front of e.g.docker ps, you can add your system user to the groupdocker, e.g. withsudo usermod -a -G docker myusername. Start a new terminal session afterward, so that the group info is updated in the environment.
Set up git
Follow the instructions in the setup section of the git guide to set up
git.
Now you have a basic setup, except for an IDE you might want to use to work on code. We mostly use PyCharm for backend and WebStorm for frontend stuff, but any other preferred IDE can be used, as long as our coding guidelines are followed.
Depending on which projects you work on, and whether you do frontend or backend stuff, there will be some additional requirements specific to the project. This is described in the project’s documentation. The general procedure looks like this:
Clone the required repositories
Create how many environments you need (recommended: one environment per project) with
uvfor the backend stuff andnvmto activate the proper node environment for frontend stuff.See the Tools and Environments section for a quick reference on how to use pyenv.
Follow the steps on in either the README.md in the repo root folder or the requirements.md and install.md files in the docs/source/ (or in older projects only /docs) folder.