Skip to content

nico33t/nt-deploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ”ช nt-deploy

๐Ÿ‡ฎ๐Ÿ‡น 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.dev

Il dominio base (studio-acme.pages.dev qui sopra) lo scegli tu al primo nt-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...).

โœจ Cosa fa

  • 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-rossi per 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

๐Ÿ“‹ Requisiti

L'installer si occupa di installare wrangler (CLI ufficiale Cloudflare) automaticamente.

๐Ÿš€ Installazione

macOS / Linux

git clone https://github.com/nico33t/nt-deploy.git
cd nt-deploy
chmod +x install.sh
./install.sh

Oppure one-liner:

curl -fsSL https://raw.githubusercontent.com/nico33t/nt-deploy/main/install.sh | bash

Windows (PowerShell)

git clone https://github.com/nico33t/nt-deploy.git
cd nt-deploy
.\install.ps1

Oppure one-liner:

irm https://raw.githubusercontent.com/nico33t/nt-deploy/main/install.ps1 | iex

Se PowerShell blocca lo script:

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

๐ŸŽฏ Primo utilizzo

# 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

๐Ÿ“– Comandi

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

๐Ÿ’ก Esempi

# 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-centrale

โš™๏ธ Configurazione

Al 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          # Windows

๐Ÿ”„ Aggiornamenti

Quando 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-update

Scarica l'ultima versione dello script da nico33t/nt-deploy su GitHub e sostituisce quella locale in ~/.nt-tools/.

๐Ÿ—‘๏ธ Disinstallazione

macOS / Linux:

./uninstall.sh

Windows:

.\uninstall.ps1

๐Ÿ“ Struttura del repo

nt-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

๐Ÿค Come funziona dietro le quinte

Lo script รจ un wrapper su wrangler pages deploy che:

  1. Sanitizza il nome del cliente (lowercase, solo alfanumerico e -)
  2. Lo usa come --branch di Cloudflare Pages
  3. 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).

๐Ÿ“ Licenza

MIT โ€” fai quello che vuoi.

๐Ÿ› Problemi?

Apri una issue.

About

๐Ÿ”ช Terminal Swiss-army knife for shipping per-client static previews to Cloudflare Pages โ€” pick your domain, get instant per-client subdomains, zero hosting setup.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors