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.