A Nuxt application can be deployed on a Node.js server, pre-rendered for static hosting, or deployed to serverless or edge (CDN) environments.
Discover the Node.js server preset with Nitro to deploy on any Node hosting.
When running nuxt build with the Node server preset, the result will be an entry point that launches a ready-to-run Node server.
node .output/server/index.mjs$ node .output/server/index.mjsListening on http://localhost:3000This preset will respect the following runtime environment variables:
NITRO_PORT or PORT (defaults to 3000)NITRO_HOST or HOST (defaults to '0.0.0.0')NITRO_SSL_CERT and NITRO_SSL_KEY - if both are present, this will launch the server in HTTPS mode. In the vast majority of cases, this should not be used other than for testing, and the Nitro server should be run behind a reverse proxy like nginx or Cloudflare which terminates SSL.To use pm2, use an ecosystem.config.js:
module.exports = { apps: [ { name: 'NuxtAppName', exec_mode: 'cluster', instances: 'max', script: './.output/server/index.mjs' } ]}You can use NITRO_PRESET=node_cluster in order to leverage multi-process performance using Node.js cluster module.
By default, the workload gets distributed to the workers with the round robin strategy.
There are two ways to deploy a Nuxt application to any static hosting services:
ssr: false to produce a pure client-side output.Use the nuxi generate command to build your application. For every page, Nuxt uses a crawler to generate a corresponding HTML and payload files. The built files will be generated in the .output/public directory.
npx nuxi generateYou can manually specify routes that Nitro will fetch and pre-render during the build.
defineNuxtConfig({ nitro: { prerender: { routes: ['/user/1', '/user/2'] } }})If you don't want to pre-render your routes, another way of using static hosting is to set the ssr property to false in the nuxt.config file. The nuxi generate command will then output an .output/public/index.html entrypoint and JavaScript bundles like a classic client-side Vue.js application.
defineNuxtConfig({ ssr: false})In addition to Node.js servers and static hosting services, a Nuxt 3 project can be deployed with several well-tested presets and minimal amount of configuration.
You can explicitly set the desired preset in the nuxt.config file:
export default { nitro: { preset: 'node-server' }}... or use the NITRO_PRESET environment variable when running nuxt build:
NITRO_PRESET=node-server nuxt build๐ Check the Nitro deployment for all possible deployment presets and providers.
Nuxt 3 can be deployed to several cloud providers with a minimal amount of configuration: