# Toolchain

Pinned versions and setup steps for this workspace. If you're on a new machine, install in this order.

## System

- WSL2 Ubuntu 24.04 (Noble) on Windows 11
- Docker Desktop with WSL2 integration enabled

## Runtime

- Node.js 24.x (via nvm)
- pnpm 10.x (`npm install -g pnpm@latest`)

## Workspace

- Nx 22.7.x
- Angular 21.2.x
- NestJS 11.1.x
- TypeScript 5.9.x

## Test runners

- API: Jest 30
- Overlay: Vitest 4 via `vitest-angular` (Angular's official Vitest integration)
- Libraries: Vitest 4
- E2E: Playwright 1.59 (chromium only)

## Local services

Run via `docker compose up -d postgres redis`:

- Postgres 16-alpine (port 5432, db `fog_expedition`, user `fog`, password `fog_dev`)
- Redis 7-alpine (port 6379)
- Caddy 2 (port 443, HTTPS reverse proxy to host:3000)

## Bootstrap on a new machine

```bash
nvm install 24
nvm use 24
npm install -g pnpm@latest
git clone http://pihole.home:3000/maurycy/fog.git ~/code/fog-expedition
cd ~/code/fog-expedition
pnpm install
pnpm approve-builds   # select all
pnpm install
pnpm exec playwright install --with-deps chromium
docker compose up -d postgres redis
pnpm exec nx run-many --target=test --all --watch=false
```
