Deployment

Il kit gira ovunque giri Next.js. Questa guida copre Vercel, la strada per cui il kit è tarato.

Pubblicare su Vercel

Con un clic: usa il pulsante Deploy with Vercel nel README. Oppure da riga di comando:

npm i -g vercel
vercel          # primo deploy, collega il progetto
vercel --prod   # deploy in produzione

Ambiente di produzione

Imposta le variabili di .env.example nel pannello Vercel (Project → Settings → Environment Variables). Il minimo per andare in produzione:

  • DATABASE_URL (e DIRECT_URL se il tuo provider distingue connessione pooled e diretta)
  • AUTH_SECRET (generane uno nuovo per la produzione, non riusare quello di sviluppo)
  • NEXT_PUBLIC_APP_URL impostata a https://iltuodominio.com (le email e i link di reset si costruiscono da lì)
  • Le credenziali OAuth, con le URL di callback di produzione aggiunte nella console di ogni provider:
    • https://iltuodominio.com/api/auth/callback/google
    • https://iltuodominio.com/api/auth/callback/github
  • RESEND_API_KEY e EMAIL_FROM se vuoi magic link, reset della password ed email transazionali

Deploy fuori da Vercel

Il kit è una normale app Next.js, quindi Docker, un VPS o qualsiasi host Node vanno bene. Serve una variabile che su Vercel non è richiesta:

AUTH_TRUST_HOST="true"

Auth.js si fida dell'host da cui viene servito quando rileva Vercel, e lo rifiuta ovunque altro: è la protezione contro un header Host falsificato dietro un proxy che non controlli. Senza, l'app compila e parte normalmente, poi l'accesso fallisce con «There was a problem with the server configuration», con UntrustedHost nel log del server e niente sulla pagina che indichi la causa. Impostala quando sei dietro un proxy o un bilanciatore di cui ti fidi.

Vale anche quando esegui il build di produzione sulla tua macchina con npm start. Con npm run dev non serve.

Migrazioni del database

I build non eseguono le migrazioni. Applicale al database di produzione come passo deliberato:

npx prisma migrate deploy

Eseguilo prima del primo deploy, o subito dopo, e dopo ogni release che aggiunge una migrazione. Poi inserisci i piani una volta sola: npx prisma db seed.

Webhook Stripe in produzione

Crea un endpoint nel pannello Stripe (Developers → Webhooks) che punti a:

https://iltuodominio.com/api/webhooks/stripe

Iscrivilo agli eventi del ciclo di vita degli abbonamenti, copia il signing secret in STRIPE_WEBHOOK_SECRET su Vercel, e rifai il deploy. Le chiavi live (sk_live_...) solo in produzione.

Diventare amministratore

Dopo il tuo primo accesso in produzione:

npx prisma studio

Trova il tuo utente nella tabella User e imposta role su ADMIN. La scorciatoia al pannello di amministrazione compare nella sidebar della dashboard.

Facoltativo: un deploy dimostrativo pubblico

Per offrire una demo come demo.openstarterkit.dev senza raccogliere dati personali, pubblica una seconda istanza del repository su un database isolato e lì imposta DEMO_MODE="true", più le chiavi di test di Stripe. Sul deploy di marketing imposta NEXT_PUBLIC_DEMO_URL all'indirizzo della demo, così i link di accesso puntano lì. Riempi la demo con dati credibili:

npm run db:seed:demo   # cancella utenti e progetti su quel database e ricrea i dati di esempio

Cosa cambia esattamente la modalità demo è spiegato in Autenticazione.

Star on GitHub

Salvalo nei tuoi preferiti con una

Serve aiuto?