Prerequisites
The tools to install before cloning anything, with the versions the project uses.
Install these once. To try the app you need only Docker; to change it, the rest. The versions match CI and the image, so staying on the same major version avoids “works on my machine”.
The tools
| Tool | Version | Needed for |
|---|---|---|
| Linux, macOS, or Windows with WSL2 (Ubuntu) | Every command on this site is bash | |
| Docker with Compose (Docker Desktop on Windows/macOS) | recent | The whole stack, the test database |
Git and the GitHub CLI (gh) |
recent | Cloning, pull requests |
| Node.js | 22 (22.12 or newer) | web/, and the website with these docs |
| Python | 3.14 | msaving/backend (CI and the image use 3.14) |
PostgreSQL 17 client tools (psql, pg_dump, pg_restore) |
17 | The backup tests |
| Claude Code | latest | Optional, but every repo has a CLAUDE.md for it. See Working with Claude Code |
No cloud accounts: there is nothing hosted to set up.
Install on Ubuntu / WSL2
Docker: on Windows install Docker Desktop and turn on WSL integration for your distro
(Settings → Resources → WSL integration). Check from WSL: docker run --rm hello-world.
Node 22: any version manager works. With nvm:
nvm install 22 && nvm use 22
node --version # v22.x
Python 3.14 for the backend’s virtualenv:
sudo add-apt-repository ppa:deadsnakes/ppa # if your Ubuntu has no 3.14 yet
sudo apt install python3.14 python3.14-venv
PostgreSQL 17 client tools from the PostgreSQL apt repository (the same steps CI runs):
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -fsSL -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc
echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
| sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt-get update && sudo apt-get install -y postgresql-client-17
/usr/lib/postgresql/17/bin/pg_dump --version # 17.x
GitHub CLI: sudo apt install gh, then gh auth login.
Check
docker compose version && node --version && python3.14 --version && psql --version && gh auth status
Next: Clone the repos.