Node.js, Docker, Git, VSCode e Copilot

Questa guida continua dal setup dell'ambiente WSL. A questo punto hai Debian Trixie in esecuzione in WSL, loggato come utente node, con /workspace/projects pronto. Ora installiamo tutto il necessario per iniziare a sviluppare con TypeScript, NestJS e Angular.

Step 1 — Installa Node.js con nvm

nvm (Node Version Manager) ti permette di installare e passare tra più versioni di Node.js con un solo comando. È il modo giusto per gestire Node in un ambiente di sviluppo.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc

Installa l'ultima versione LTS:

nvm install --lts
nvm use --lts

Verifica:

node --version
npm --version

Step 2 — Installa TypeScript e Angular CLI

npm install -g typescript
npm install -g @angular/cli

Verifica:

tsc --version
ng version

Questi vengono installati globalmente — disponibili in tutti i tuoi progetti fin dal primo momento.

Step 3 — Installa Docker Engine

Non installare Docker Desktop. Installa Docker Engine nativamente dentro WSL — questa è la differenza chiave che elimina l'overhead di virtualizzazione.

sudo apt-get update
sudo apt-get install -y ca-certificates curl

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Aggiungi l'utente node al gruppo docker per eseguire Docker senza sudo:

sudo usermod -aG docker node

Abilita il socket Docker invece del daemon. Con la socket activation, Docker si avvia solo alla prima richiesta e non consuma memoria quando non è in uso:

sudo systemctl enable docker.socket
sudo systemctl start docker.socket

Testalo:

docker run hello-world
docker compose version

Step 4 — Installa Git

sudo apt-get install -y git

git config --global user.name "Il Tuo Nome"
git config --global user.email "Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo."
git config --global init.defaultBranch main

Git è utile anche senza un account GitHub — per il versioning locale dei tuoi progetti.

Step 5 — Installa VSCode

Se sei su Windows (WSL):

Scarica e installa VSCode da code.visualstudio.com. Durante l'installazione, assicurati che l'opzione "Add to PATH" sia selezionata.

Poi installa l'estensione Remote - WSL. Apri VSCode, vai su Estensioni (Ctrl+Shift+X), cerca Remote - WSL e installala.

Dal terminale WSL, naviga in una cartella di progetto ed esegui:

cd /workspace/projects
mkdir test && cd test
code .

VSCode si apre connesso direttamente al filesystem Linux. Tutto — terminale, Git, debugger — gira dentro WSL.

Se sei su Linux nativo:

Step 6 — Installa le Estensioni VSCode Consigliate
sudo apt-get install -y wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg

echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | \
  sudo tee /etc/apt/sources.list.d/vscode.list > /dev/null

sudo apt-get update
sudo apt-get install -y code

Dal terminale WSL, installa le estensioni essenziali con un solo comando:

code --install-extension ms-azuretools.vscode-docker
code --install-extension eamodio.gitlens
code --install-extension GitHub.copilot
code --install-extension GitHub.copilot-chat

GitHub Copilot è disponibile con un piano gratuito — sufficiente per iniziare a sperimentare lo sviluppo assistito dall'AI.

Step 7 — Crea il Tuo Primo File di Istruzioni

Un file di istruzioni dice a Copilot cos'è il tuo progetto, quale stack usi e quali regole seguire. La differenza nella qualità dell'output è immediata.

Crea la struttura per il tuo primo progetto:

cd /workspace/projects
mkdir my-project && cd my-project
mkdir -p .github/instructions
code .

Dentro VSCode, crea il file .github/instructions/general.instructions.md con questo contenuto come punto di partenza:

Modificalo in base al tuo progetto. Più sei specifico, meglio Copilot capisce il contesto.
---
applyTo: "**"
---
# Progetto

## Stack
- Runtime: Node.js (LTS) con TypeScript
- Backend: NestJS
- Frontend: Angular
- Containerizzazione: Docker + Docker Compose

## Convenzioni
- Usa async/await, mai Promise grezze
- Tutte le funzioni devono avere tipi di ritorno TypeScript espliciti
- La struttura dei moduli segue lo standard NestJS (module, controller, service)

## Regole
- Non generare commenti inline a meno che la logica non sia non ovvia
- Non usare il tipo `any`

Sei ora pronto per clonare ed eseguire i progetti da GitHub, incluso il framework RAD-System documentato nel blog.