Uno strumento da riga di comando che riduce un workflow di deploy in più step a un singolo comando. Nato dalla frustrazione di dimenticare un passaggio a metà deploy.

Il workflow che sostituisce

Prima: build locale → rsync sul VPS → SSH → reload Nginx → controllo log. Cinque passaggi, facile saltarne uno sotto pressione.

Dopo: ./deploy.sh — fatto in meno di 10 secondi.

Come funziona

#!/usr/bin/env bash
set -euo pipefail

source .env  # REMOTE_USER, REMOTE_HOST, REMOTE_PATH

echo "[1/3] Build in corso..."
npm run build

echo "[2/3] Sincronizzazione..."
rsync -az --delete ./dist/ "$REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH"

echo "[3/3] Ricarico Nginx..."
ssh "$REMOTE_USER@$REMOTE_HOST" "sudo systemctl reload nginx"

Il dettaglio fondamentale è set -euo pipefail — qualsiasi step fallito interrompe l’intero script invece di proseguire silenziosamente.

Lo script Python companion (check.py) gira post-deploy: controlla il codice HTTP della URL e invia una notifica desktop in caso di successo o errore.

Lezioni

Gli strumenti semplici battono quelli complessi ogni volta. Questo è 60 righe di shell e 30 di Python. Fa esattamente una cosa e la fa in modo affidabile.