Computer

Mettere un sito Next.js su una VPS invece che su Vercel

Si può, e non è complicato: una riga nella configurazione (output: 'standalone') produce un pacchetto che gira con node server.js, senza installare niente sul server. Davanti ci va un reverse proxy che fa il certificato HTTPS da solo. Quello che perdi non è tecnico: è che gli aggiornamenti, i backup e i guasti diventano tuoi.

Fabrizio Picco
scritta il 19 settembre 2026 · si legge in 15 minuti

Vercel è comodissimo finché il sito è piccolo. Poi arrivano le visite, arriva la fattura, e viene la domanda: posso farmelo da solo? La risposta è sì, e qui trovi la procedura provata passo per passo — ma prima trovi la parte che nessuna guida racconta, cioè cosa smetti di avere quando smetti di pagare.

Parametri · tocca per copiare

  • La riga da aggiungerein next.config.mjs
  • Come si avvia sulla VPSniente npm install
  • Cosa si copia

Quello che Vercel fa e che dovrai fare tu

Questa è la sezione più importante, e quasi nessuno la scrive. Vercel non è «un posto dove sta il sito»: è una decina di servizi messi insieme. Spostandosi su una VPS, ognuno diventa un lavoro tuo.

Servizio gestitotutto dentro il loro confineil tuo sitocertificato HTTPSaggiornamentibackupse cade, lorotu: fai un pushLa tua VPSil confine si sposta su di teil tuo sitocertificato HTTPSaggiornamentibackupse cade, TUtu: tutto il resto
Le tre caselle in rosso sono quello che cambia davvero. Il sito funziona uguale; a cambiare è chi si sveglia alle tre di notte.
Le tre righe in grassetto sono quelle che decidono. Una VPS costa quattro euro al mese e mezz'ora di attenzione ogni mese: se quella mezz'ora non la hai, il risparmio è finto.
CosaSu VercelSulla tua VPS
Certificato HTTPSautomaticoil proxy lo fa, va impostato
Rete di distribuzionein tutto il mondouna macchina sola
Pubblicare una modificabasta un pushuno script tuo
Tornare indietroun cliclo prepari tu
Aggiornamenti di sicurezzalorotuoi
Backuplorotuoi
Se il server si bloccalorotuo, alle tre di notte
Anteprima dei ramiautomaticanon c'è
Statisticheincluseda installare
Costogratis fino a una sogliada 4 € al mese

Quando conviene spostarsi, e quando no

La risposta onesta dipende da tre cose: quanto traffico fai, quanto controllo ti serve, e quanto tempo hai.

  1. 1

    Conviene spostarsi se…

    Hai superato la soglia gratuita e la fattura cresce. Ti serve qualcosa che Vercel non fa: un database sulla stessa macchina, un programma che gira in sottofondo, cartelle di file che crescono. Vuoi che i dati restino in Europa per scelta. Ti diverte amministrare un server e lo faresti comunque.

    • Costo fisso e prevedibile
    • Puoi metterci altre cose sulla stessa macchina
    • Nessun limite di funzioni o di banda imposto da altri
  2. 2

    Non conviene se…

    Il sito sta dentro il piano gratuito e ci resterà. Il traffico arriva da tutto il mondo e la velocità conta. Non hai voglia di ricevere un avviso alle tre di notte. È l'unico sito che gestisci e non hai un secondo posto dove provare le modifiche.

    • Gli aggiornamenti di sicurezza diventano tuoi
    • Un server solo è un punto di rottura solo
    • I backup li devi fare e — soprattutto — provare

La riga che cambia tutto

Next.js ha una modalità pensata proprio per questo. Si aggiunge una riga in next.config.mjs:

output: 'standalone'

Da quel momento la costruzione produce, dentro .next/standalone, un pacchetto che contiene tutto quello che serve: il server, le dipendenze davvero usate, il codice del sito. Sulla VPS non serve installare niente — niente npm install, niente attesa, niente sorprese perché la versione di una libreria è cambiata fra il tuo computer e il server.

Sul sito che stai leggendo il pacchetto pesa 170 MB in tutto, comprese le immagini, e il server è pronto in meno di un secondo.

Le cartelle da copiare sono tre, e dimenticarne una è l'errore numero uno: .next/standalone (il server), .next/static (gli stili e il codice del browser) e public (le immagini). Senza la seconda il sito si apre ma è senza grafica.
Qui va una foto: il terminale con la costruzione che produce .next/standalone

La procedura completa

Dall'inizio alla fine. Serve una VPS con Debian o Ubuntu e l'accesso SSH.

Il passaggio 6 è quello che salta la maggior parte delle guide: un sito avviato a mano nel terminale muore quando chiudi la sessione SSH. Senza un servizio di sistema hai un sito che funziona finché non ti disconnetti.
  1. Prepara la VPS. Aggiorna il sistema, crea un utente non amministratore per far girare il sito, e installa Node nella versione che usi sul tuo computer — la stessa, non una qualsiasi.
  2. Chiudi le porte. Lascia aperte solo la 22 (SSH), la 80 e la 443. Tutto il resto va chiuso: il sito parlerà con il proxy, non con il mondo.
  3. Costruisci sul tuo computer, non sul server: npm run build con output: 'standalone' attivo. Costruire sul server significa tenerci le dipendenze di sviluppo e il codice sorgente, che non servono.
  4. Copia le tre cartelle sulla VPS con rsync: .next/standalone, .next/static dentro una cartella .next, e public.
  5. Avvia il sito: node server.js, con la porta scelta in una variabile d'ambiente. Provalo subito con un curl sulla porta interna: se risponde, il difficile è finito.
  6. Fallo ripartire da solo. Un servizio di sistema (systemd) che lo riavvia se si ferma e lo riaccende al riavvio della macchina. È la parte che distingue una prova da un sito in produzione.
  7. Metti il proxy davanti (sezione dopo) e collega il dominio.
  8. Prova tutto prima di spostare il dominio: le pagine, le immagini, i reindirizzamenti vecchi, la mappa del sito. Il momento per scoprire un difetto è adesso, non quando il traffico è già lì.

Il reverse proxy e il certificato HTTPS

Il sito gira su una porta interna, per esempio la 3000. Davanti ci va un programma che riceve le richieste dal mondo, le passa al sito, e si occupa del certificato HTTPS.

Le due scelte sono Caddy e nginx. Per chi comincia, Caddy: prende il certificato da solo, lo rinnova da solo, e la configurazione è di tre righe invece di trenta. nginx è più diffuso e più configurabile, ma il certificato va impostato a parte.

Il proxy fa anche una cosa che migliora molto la velocità: serve i file statici direttamente — immagini, stili, codice — senza disturbare il programma del sito. Sono la maggior parte delle richieste.

Il certificato si rinnova da solo ogni due mesi. L'unico modo di rompere il meccanismo è chiudere la porta 80 pensando che con HTTPS non serva più: serve, ed è da lì che passa il rinnovo.
  1. Installa Caddy dal repository ufficiale della tua distribuzione.
  2. Scrivi il file di configurazione: il tuo dominio, e reverse_proxy verso localhost e la porta del sito.
  3. Aggiungi una regola per i file statici con una scadenza lunga: i file di Next hanno il codice nel nome, quindi si possono tenere in memoria per un anno senza rischi.
  4. Riavvia Caddy. Il certificato arriva da solo in pochi secondi, se il dominio punta già alla VPS.
  5. Controlla che http rimandi a https: Caddy lo fa da solo, ma va verificato.

Come si pubblica un aggiornamento

Su Vercel basta un push. Sulla VPS serve uno script tuo, ed è meglio scriverlo il primo giorno che la decima volta a mano.

Lo schema che funziona: costruisci in locale, copia in una cartella nuova sulla VPS, e solo quando la copia è finita sposti il collegamento e riavvii. Così il sito è fermo un secondo invece che per tutta la durata della copia — e se qualcosa va storto, la cartella vecchia è ancora lì.

Il ritorno indietro va provato il giorno in cui lo scrivi, non il giorno in cui serve. Cinque minuti allora valgono un'ora di panico dopo.
  1. npm run build sul tuo computer.
  2. rsync delle tre cartelle in /var/www/sito-.
  3. Sposta il collegamento /var/www/attuale sulla cartella nuova.
  4. systemctl restart del servizio del sito.
  5. curl sulla home per controllare che risponda: se no, rimetti il collegamento sulla cartella precedente e riavvia. È il ritorno indietro, e deve essere un comando solo.
  6. Tieni le ultime tre cartelle e cancella le più vecchie.

I cinque modi di sbagliare

Sono quelli che si vedono più spesso.

Aggiungo un sesto, meno tecnico e più costoso: spostare il dominio prima di aver provato tutto. Il momento per scoprire che una pagina risponde 404 è quando il traffico è ancora sul vecchio posto.
  1. Dimenticare .next/static. Il sito si apre senza grafica e sembra rotto. È l'errore numero uno.
  2. Avviarlo a mano senza un servizio di sistema. Funziona finché non chiudi il terminale.
  3. Costruire sul server. Ci lasci il codice sorgente e le dipendenze di sviluppo, e se la memoria della VPS è poca la costruzione fallisce a metà.
  4. Non fare i backup, o non provarli. Un backup mai ripristinato non è un backup: è un file di cui non sai niente.
  5. Non impostare nessun avviso. Se il sito cade e te ne accorgi da un messaggio di un lettore, hai perso una giornata di visite. Un controllo che chiama la home ogni cinque minuti e avvisa è mezz'ora di lavoro.

I prezzi citati in questa guida sono quelli letti sul listino ufficiale del fornitore il 19 settembre 2026. Cambiano senza preavviso e quasi tutti sono esposti IVA esclusa: controllali sul sito del fornitore prima di firmare.

Domande frequenti

Si può ospitare Next.js senza Vercel?

Sì, e senza modifiche al codice. Basta aggiungere output: 'standalone' in next.config.mjs: la costruzione produce un pacchetto che gira con node server.js, senza installare niente sul server.

Quanto costa una VPS per un sito?

Per un sito normale bastano 2 processori e 4 GB di memoria: si parte da circa 4-6 euro al mese. Il costo vero però non è quello: è la mezz'ora al mese di aggiornamenti e controlli, che su Vercel non esiste.

Cosa si perde passando da Vercel a una VPS?

La distribuzione mondiale dei contenuti, la pubblicazione automatica a ogni push, il ritorno indietro con un clic e le anteprime dei rami. Ma soprattutto: gli aggiornamenti di sicurezza, i backup e i guasti diventano tuoi. È quello il costo vero.

Serve Docker?

No. Con il pacchetto autonomo bastano Node e un reverse proxy. Docker aggiunge un livello che semplifica se gestisci più applicazioni sulla stessa macchina, e complica se ne hai una sola.

Meglio nginx o Caddy?

Caddy se cominci adesso: prende e rinnova il certificato HTTPS da solo, e la configurazione è di tre righe. nginx se devi fare cose particolari o se lo conosci già; il certificato lì va impostato a parte con Certbot.

Il sito va più veloce o più lento su una VPS?

Per un visitatore vicino alla VPS, uguale o più veloce. Per uno dall'altra parte del mondo, più lento: Vercel ha server sparsi ovunque, la tua VPS sta in un posto solo. Se il traffico è quasi tutto italiano, scegliendo un centro dati in Italia o in Germania non si nota.

Cosa succede se la VPS si spegne?

Il sito non c'è più finché non riparte, e nessuno te lo dice se non hai impostato un avviso. È la differenza più grossa rispetto a un servizio gestito, ed è il motivo per cui il controllo automatico e i backup provati non sono optional.

Posso tenere Vercel e provare la VPS in parallelo?

Sì, ed è la strada che consiglio. Metti il sito sulla VPS con un sottodominio di prova, provalo per qualche settimana, e sposta il dominio solo quando sei sicuro. Costa quattro euro e ti evita di scoprire i problemi con il traffico addosso.

Da dove vengono questi dati

Dati controllati il 19 settembre 2026.

Questa guida l’ho scritta con l’aiuto dell’intelligenza artificiale e l’ho verificata sulle fonti qui sopra prima di pubblicarla. Come lavoro

Continua da qui