๐ฎ๐น Italiano ยท ๐ฌ๐ง English
Coltellino svizzero da terminale per pubblicare anteprime statiche su Cloudflare Pages con un comando. Ogni cliente prende il suo sottodominio dinamico, senza configurare hosting, DNS, o repo Git.
nt-push ./dist mario-rossi
# โ
Online: https://mario-rossi.studio-acme.pages.devIl dominio base (
studio-acme.pages.devqui sopra) lo scegli tu al primont-init. Ogni utente ha il suo: chi installa nt-deploy decide come si chiama il proprio "spazio anteprime" (es.nicolatomassini.pages.dev,studiorossi.pages.dev,progetti.pages.dev...).
- Deploy istantaneo di qualsiasi cartella statica (build di React, Vue, Astro, Next export, HTML puroโฆ)
- Sottodomini dinamici per cliente โ ogni cliente ha il suo URL condivisibile
- Sostituzione facile โ rilanci il comando, l'anteprima si aggiorna sullo stesso URL
- Comandi rapidi โ
nt-copy mario-rossiper copiare il link da mandare via WhatsApp - Auto-aggiornamento โ ti avvisa quando esce una nuova versione, aggiornamento con
nt-update - Cross-platform โ macOS, Linux, Windows
- Node.js (>= 18)
- Un account Cloudflare (free plan basta)
L'installer si occupa di installare wrangler (CLI ufficiale Cloudflare) automaticamente.
git clone https://github.com/nico33t/nt-deploy.git
cd nt-deploy
chmod +x install.sh
./install.shOppure one-liner:
curl -fsSL https://raw.githubusercontent.com/nico33t/nt-deploy/main/install.sh | bashgit clone https://github.com/nico33t/nt-deploy.git
cd nt-deploy
.\install.ps1Oppure one-liner:
irm https://raw.githubusercontent.com/nico33t/nt-deploy/main/install.ps1 | iexSe PowerShell blocca lo script:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
# 1. Riapri il terminale (o ricarica la shell)
source ~/.zshrc # macOS/Linux
. $PROFILE # Windows PowerShell
# 2. Login Cloudflare + crea il TUO progetto
nt-init
# โ ti chiede il nome (es. "nicolatomassini")
# โ diventa: nicolatomassini.pages.dev
# 3. Pubblica la prima anteprima
nt-push ./dist mario-rossi
# โ mario-rossi.nicolatomassini.pages.dev| Comando | Descrizione |
|---|---|
nt-init |
Login Cloudflare + scelta nome progetto + creazione |
nt-push [cartella] [cliente] |
Deploy cartella su branch cliente |
nt-list |
Mostra tutti i deploy |
nt-clients |
Lista clienti attivi |
nt-open [cliente] |
Apri URL nel browser |
nt-copy [cliente] |
Copia URL nella clipboard |
nt-config |
Mostra configurazione corrente |
nt-update |
Aggiorna nt-deploy all'ultima versione GitHub |
nt-version |
Mostra versione installata |
nt-help |
Aiuto |
# Deploy production (URL principale)
nt-push ./dist
# โ tuoprogetto.pages.dev
# Deploy preview cliente
nt-push ./build mario-rossi
# โ mario-rossi.tuoprogetto.pages.dev
# Nomi con spazi โ sanitizzati automaticamente
nt-push ./dist "Hotel Roma Centrale"
# โ hotel-roma-centrale.tuoprogetto.pages.dev
# Aggiorna anteprima esistente (sovrascrive)
nt-push ./dist mario-rossi
# Copia link per il cliente
nt-copy mario-rossi
# โ URL nella clipboard, pronto da incollare
# Apri al volo nel browser
nt-open hotel-roma-centraleAl primo nt-init ti viene chiesto il nome del tuo progetto Cloudflare Pages. La scelta viene salvata in ~/.nt-tools/config e usata per sempre.
Nome progetto [anteprima]: nicolatomassini
โ Salvato in /Users/tuo-nome/.nt-tools/config
Da quel momento i deploy escono come:
https://nicolatomassini.pages.dev(production)https://mario-rossi.nicolatomassini.pages.dev(cliente)
Per cambiarlo in seguito: rilancia nt-init e rispondi s alla domanda "Vuoi cambiarlo?".
Override one-shot (senza modificare il salvato):
NT_PROJECT=test nt-push ./dist # macOS / Linux
$env:NT_PROJECT="test"; nt-push ./dist # WindowsQuando lanci nt-push, nt-list, nt-clients o nt-init, lo strumento controlla in background (max una volta al giorno, con timeout di 2 secondi) se รจ uscita una nuova versione. Se sรฌ, ti avvisa cosรฌ:
๐ก Nuova versione disponibile: 1.2.0 (la tua: 1.1.0)
Aggiorna con: nt-update
Per aggiornare:
nt-updateScarica l'ultima versione dello script da nico33t/nt-deploy su GitHub e sostituisce quella locale in ~/.nt-tools/.
macOS / Linux:
./uninstall.shWindows:
.\uninstall.ps1nt-deploy/
โโโ install.sh # Installer macOS/Linux
โโโ install.ps1 # Installer Windows
โโโ uninstall.sh # Disinstaller macOS/Linux
โโโ uninstall.ps1 # Disinstaller Windows
โโโ scripts/
โ โโโ nt-deploy.sh # Script principale
โโโ README.md # ๐ฎ๐น Italiano
โโโ README.en.md # ๐ฌ๐ง English
โโโ LICENSE
Lo script รจ un wrapper su wrangler pages deploy che:
- Sanitizza il nome del cliente (lowercase, solo alfanumerico e
-) - Lo usa come
--branchdi Cloudflare Pages - Cloudflare assegna automaticamente il sottodominio
<branch>.<progetto>.pages.dev
Niente di piรน, niente di meno. Tutta la logica sta in scripts/nt-deploy.sh (~250 righe leggibili, dipendenza da bash + curl + wrangler).
MIT โ fai quello che vuoi.
Apri una issue.