Infrastructure and SEO

Next.js self-hosted con Docker o Vercel: quando conviene cosa

Il self-hosting di Next.js su un VPS gestito puo far scendere una bolletta Vercel da 600 $ a circa 90 $. Ecco cosa rinunci e quando il cambio conviene.

25 giugno 20265 min di lettura
a close up of a server in a server room

Fare self-hosting di Next.js vuol dire eseguire la build di produzione con output: 'standalone' dentro un container Docker, su un server che gestisci tu, invece di fare push su Git e lasciare il runtime a Vercel. Il codice dell'applicazione e identico nei due casi. La scelta riguarda chi si prende il carico operativo, e cosa ti da in cambio quel carico: costi, controllo, vincoli.

La differenza pesa soprattutto quando un SaaS passa dal traffico da progetto personale all'uso reale. Su un'app piccola il piano gratuito di Vercel e difficile da battere. Su un'app che serve centinaia di migliaia di visitatori al mese, la bolletta e i limiti della piattaforma iniziano a condizionare le scelte di architettura. Qui sotto trovi il confronto che usiamo quando un cliente ci chiede dove fare il deploy. Se devi ancora scegliere il runtime a livello di funzione, e un'altra decisione e ne parliamo in come arrivare in verde sui Core Web Vitals.

La versione breve

Scegli Vercel quando il team e piccolo, il traffico e imprevedibile e il tempo di chi sviluppa vale piu della spesa di hosting. Scegli Docker self-hosted quando il traffico e costante e alto, quando servono processi lunghi che le funzioni serverless interrompono, o quando la residenza dei dati e il controllo dei costi contano piu della comodita. Quasi tutti i prodotti partono dal primo e passano al secondo solo quando lo impongono i numeri.

Vercel o Docker self-hosted: il confronto onesto

AspettoVercelDocker self-hosted
Setupgit push, zero configurazioneDockerfile, VPS, reverse proxy, CI/CD da gestire
Costo a ~500K visite/mesecirca 600 $/mese (dato riportato)circa 90 $/mese su VPS gestito (dato riportato)
Processi lunghile funzioni si fermano a 300 secondi sul piano Pronessun limite di esecuzione
Edge globaleinclusoaggiungi tu una CDN
Preview deployinclusiCoolify o la tua pipeline
Ottimizzazione immaginiautomaticainstalli sharp nello stage runner
ISR su piu istanzeautomaticacache handler personalizzato (Redis)
Uptimegestito, SLA su Enterprisea carico tuo, senza SLA
Adatto ateam piccoli, traffico a picchitraffico alto e costante, vincoli di costo o dati

Dove vince il self-hosting

Il costo su volumi alti

Un carico da 500.000 visitatori al mese che su Vercel costa circa 600 $ puo scendere intorno ai 90 $ su un VPS gestito con Coolify, circa l'85% in meno (MassiveGRID). Il risparmio nasce dal prezzo fisso del server: niente costo per utente, niente sovrapprezzo di banda a 0,15 $ per gigabyte oltre il terabyte incluso (prezzi Vercel).

Nessun tetto di esecuzione

Sul piano Pro le funzioni di Vercel si fermano a 300 secondi (limiti delle funzioni Vercel). Un processo Node self-hosted puo generare un report, un PDF o una chiamata lunga a un modello AI per tutto il tempo che serve.

I dati accanto al calcolo

Puoi eseguire Postgres nella stessa rete Docker dell'app e portare la latenza verso il database vicino allo zero. Aiuta con i dati regolamentati che devono restare in una regione precisa, e con le query frequenti che pagano un costo di andata e ritorno su un database gestito.

Nessun lock della piattaforma

L'output standalone e Node puro. Gira su qualunque VPS, qualunque cloud, su Kubernetes. Cambiare provider e un nuovo deploy, non una riscrittura.

Dove vince Vercel

Zero operations

Deploy con git push, SSL automatico, nessun server da aggiornare. Per un founder solo o un team di tre persone, le ore risparmiate valgono piu della bolletta.

La rete edge e la pipeline immagini funzionano da sole

CDN globale, ottimizzazione immagini e ISR girano senza configurazione. In self-hosting ognuna di queste e un lavoro che ti prendi tu, e una cosa che si puo rompere.

Le preview a ogni pull request

Incluse. Chi rivede apre un URL live per ogni branch senza pensarci.

Scala senza che tu lo sorvegli

I picchi di traffico sono un problema della piattaforma, non una notifica alle due di notte per chi e di turno.

Le insidie che nessuno dice prima della produzione

sharp

La traccia standalone spesso lascia fuori sharp, il modulo nativo che Next.js usa per ottimizzare le immagini. Lo installi a mano nello stage runner del Docker, altrimenti le immagini si rompono al primo deploy (guida al self-hosting di Next.js).

La cache ISR

Di default la cache e il filesystem locale di una sola istanza. Avvia due istanze dietro un load balancer e si disallineano. L'ISR multi-istanza richiede un cache handler personalizzato su storage condiviso, di solito Redis (guida al self-hosting di Next.js).

I file statici

Il server standalone serve i file statici, ma non e pensato per quello. Sotto carico, servire gli asset da Node toglie CPU al rendering. Metti davanti una CDN o Nginx.

L'uptime

Nessuno SLA gestito. Se il VPS cade, l'app cade. Prima del lancio metti in conto monitoraggio, backup e un percorso di rollback, non dopo il primo down.

Cosa usiamo noi e perche

Per le nuove build SaaS partiamo da Vercel. All'inizio il traffico e ignoto e il team e piccolo, quindi pagare per avere zero operations e la scelta giusta. Gestiamo cosi anche il nostro sito. Quando un prodotto raggiunge un traffico stabile e prevedibile, o ha bisogno di processi lunghi, o porta dati con vincoli di residenza, lo spostiamo su una build Docker self-hosted dietro un reverse proxy, con Redis per la cache ISR e una CDN davanti agli asset statici. Il momento del passaggio non e mai una questione di principio. E il mese in cui la bolletta di Vercel, o un limite della piattaforma, costa piu del tempo operativo per gestire tutto in casa. Chi fa self-hosting riferisce circa cinque ore per montare la pipeline e dalle 10 alle 20 ore l'anno per mantenerla (Autonoma). Mettilo nel conto prima di decidere.

Foto di Tyler su Unsplash

Domande frequenti

Quanto si risparmia davvero con il self-hosting di Next.js rispetto a Vercel?
Dipende dal traffico. Sotto il piano gratuito, Vercel costa meno di qualunque VPS perche e gratis. Il divario si apre su volumi alti. Carichi riportati intorno ai 500.000 visitatori al mese girano vicino ai 90 $ su un VPS gestito contro circa 600 $ su Vercel, l'85% in meno. Il risparmio e il prezzo fisso del server, senza costo per utente e senza sovrapprezzo di banda. Prima di chiamarlo un vantaggio, togli le ore che ci metti a gestirlo.
Si perdono ISR e ottimizzazione immagini lasciando Vercel?
No, ma li configuri tu. L'Incremental Static Regeneration funziona da subito su una sola istanza con disco persistente. Su piu istanze serve un cache handler personalizzato su Redis o simili. L'ottimizzazione immagini funziona dopo che installi il modulo sharp nello stage runner del Docker: la traccia standalone spesso lo lascia fuori. Si risolvono entrambi in un pomeriggio, ma nessuno dei due e automatico come su Vercel.
Basta Coolify o serve Kubernetes?
Per la maggior parte dei SaaS basta Coolify o un livello PaaS simile su un singolo VPS. Ti da deploy con git push, SSL automatico e ambienti di preview senza scrivere manifest Kubernetes. Passa a Kubernetes quando gestisci davvero molti servizi, ti serve autoscaling orizzontale su piu nodi, o hai un team di ops che lo mantiene. Per una sola app e un team piccolo, Kubernetes pesa piu di quanto il carico giustifichi.
Quando e un errore lasciare Vercel?
Quando il team e piccolo e il traffico e imprevedibile. Il self-hosting scambia una bolletta prevedibile con la responsabilita operativa: uptime, patch di sicurezza, backup e CI/CD diventano tuoi. Se la bolletta di Vercel e sotto qualche centinaio di dollari al mese e nessuno nel team vuole gestire un server alle due di notte, il cambio costa piu in attenzione di quanto faccia risparmiare. Passa quando ti spingono i numeri, non il principio.

Studio

Inizia un progetto.

Un partner unico per il prodotto digitale che devi costruire. Produzione più veloce, tecnologie moderne, costi ridotti. Un team, una fattura.