nitro 3.0.1-alpha.2 → 3.0.260415-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +6 -0
- package/README.md +2 -2
- package/dist/THIRD-PARTY-LICENSES.md +1646 -0
- package/dist/_build/common.mjs +7261 -3812
- package/dist/_build/rolldown.mjs +32 -42
- package/dist/_build/rollup.mjs +28 -48
- package/dist/_build/vite.build.mjs +10 -10
- package/dist/_chunks/nitro.mjs +102 -327
- package/dist/_chunks/nitro2.mjs +8 -9
- package/dist/_chunks/nitro3.mjs +136 -0
- package/dist/_chunks/nitro4.mjs +127 -0
- package/dist/_chunks/utils.mjs +40 -29
- package/dist/_common.mjs +13 -25
- package/dist/_dev.d.mts +0 -3
- package/dist/{_chunks/dev.mjs → _dev.mjs} +132 -330
- package/dist/_libs/_.mjs +2 -0
- package/dist/_libs/_2.mjs +2 -0
- package/dist/_libs/_3.mjs +2 -0
- package/dist/_libs/_4.mjs +2 -0
- package/dist/_libs/_5.mjs +2 -0
- package/dist/_libs/_6.mjs +2 -0
- package/dist/_libs/_7.mjs +2 -0
- package/dist/_libs/c12+rc9.mjs +814 -0
- package/dist/_libs/{c12+giget+readdirp+chokidar.d.mts → c12+readdirp+chokidar.d.mts} +49 -40
- package/dist/_libs/citty.mjs +142 -41
- package/dist/_libs/commondir+is-reference.mjs +60 -56
- package/dist/_libs/compatx.d.mts +0 -2
- package/dist/_libs/compatx.mjs +1 -4
- package/dist/_libs/esbuild.d.mts +0 -1
- package/dist/_libs/escape-string-regexp.mjs +1 -4
- package/dist/_libs/{pluginutils+plugin-commonjs.d.mts → estree+pluginutils.d.mts} +0 -5
- package/dist/_libs/estree-walker.mjs +4 -92
- package/dist/_libs/exsolve.d.mts +1 -0
- package/dist/_libs/hasown+resolve+deepmerge.mjs +160 -246
- package/dist/_libs/httpxy.d.mts +20 -13
- package/dist/_libs/httpxy.mjs +519 -95
- package/dist/_libs/js-tokens.d.mts +1 -0
- package/dist/_libs/klona.mjs +1 -4
- package/dist/_libs/magic-string.d.mts +0 -2
- package/dist/_libs/mlly.d.mts +0 -2
- package/dist/_libs/nypm+tinyexec.mjs +822 -0
- package/dist/_libs/perfect-debounce.mjs +68 -0
- package/dist/_libs/pkg-types.d.mts +0 -3
- package/dist/_libs/plugin-alias.mjs +1 -5
- package/dist/_libs/plugin-inject.mjs +1 -7
- package/dist/_libs/plugin-json.mjs +1 -5
- package/dist/_libs/pluginutils.mjs +3 -35
- package/dist/_libs/readdirp+chokidar.mjs +187 -365
- package/dist/_libs/remapping.mjs +1 -5
- package/dist/_libs/resolve-uri+gen-mapping.mjs +15 -53
- package/dist/_libs/rou3.d.mts +1 -4
- package/dist/_libs/rou3.mjs +223 -78
- package/dist/_libs/std-env.d.mts +8 -2
- package/dist/_libs/strip-literal.d.mts +1 -0
- package/dist/_libs/tsconfck.mjs +21 -334
- package/dist/_libs/ultrahtml.mjs +3 -16
- package/dist/_libs/unimport+unplugin.mjs +244 -388
- package/dist/_libs/unplugin+unimport.d.mts +5 -15
- package/dist/_libs/unwasm.d.mts +0 -3
- package/dist/_presets.mjs +576 -488
- package/dist/builder.d.mts +5 -25
- package/dist/builder.mjs +3 -8
- package/dist/cli/_chunks/build.mjs +22 -25
- package/dist/cli/_chunks/common.mjs +1 -4
- package/dist/cli/_chunks/deploy.mjs +37 -0
- package/dist/cli/_chunks/dev.mjs +6 -11
- package/dist/cli/_chunks/docs.mjs +28 -0
- package/dist/cli/_chunks/list.mjs +4 -8
- package/dist/cli/_chunks/prepare.mjs +2 -6
- package/dist/cli/_chunks/preview.mjs +48 -0
- package/dist/cli/_chunks/run.mjs +7 -11
- package/dist/cli/_chunks/task.mjs +1 -5
- package/dist/cli/index.mjs +5 -6
- package/dist/docs/0.docs/0.index/index.md +56 -0
- package/dist/docs/0.docs/1.quick-start.md +110 -0
- package/dist/docs/0.docs/10.lifecycle.md +204 -0
- package/dist/docs/0.docs/11.openapi.md +291 -0
- package/dist/docs/0.docs/12.plugins.md +164 -0
- package/dist/docs/0.docs/13.tasks.md +277 -0
- package/dist/docs/0.docs/14.websocket.md +386 -0
- package/dist/docs/0.docs/15.migration.md +213 -0
- package/dist/docs/0.docs/16.nightly.md +31 -0
- package/dist/docs/0.docs/2.renderer.md +322 -0
- package/dist/docs/0.docs/3.routing.md +711 -0
- package/dist/docs/0.docs/4.server-entry.md +239 -0
- package/dist/docs/0.docs/5.cache.md +408 -0
- package/dist/docs/0.docs/6.storage.md +261 -0
- package/dist/docs/0.docs/7.assets.md +166 -0
- package/dist/docs/0.docs/8.configuration.md +256 -0
- package/dist/docs/0.docs/9.database.md +185 -0
- package/dist/docs/1.deploy/0.index/index.md +64 -0
- package/dist/docs/1.deploy/1.runtimes/0.node.md +63 -0
- package/dist/docs/1.deploy/1.runtimes/1.bun.md +15 -0
- package/dist/docs/1.deploy/1.runtimes/2.deno.md +19 -0
- package/dist/docs/1.deploy/2.providers/0.alwaysdata.md +50 -0
- package/dist/docs/1.deploy/2.providers/1.aws.md +47 -0
- package/dist/docs/1.deploy/2.providers/10.flightcontrol.md +67 -0
- package/dist/docs/1.deploy/2.providers/11.genezio.md +67 -0
- package/dist/docs/1.deploy/2.providers/12.github-pages.md +68 -0
- package/dist/docs/1.deploy/2.providers/13.gitlab-pages.md +37 -0
- package/dist/docs/1.deploy/2.providers/14.heroku.md +84 -0
- package/dist/docs/1.deploy/2.providers/15.iis.md +38 -0
- package/dist/docs/1.deploy/2.providers/16.koyeb.md +109 -0
- package/dist/docs/1.deploy/2.providers/17.netlify.md +47 -0
- package/dist/docs/1.deploy/2.providers/18.platform-sh.md +37 -0
- package/dist/docs/1.deploy/2.providers/19.render.md +37 -0
- package/dist/docs/1.deploy/2.providers/2.aws-amplify.md +81 -0
- package/dist/docs/1.deploy/2.providers/20.stormkit.md +24 -0
- package/dist/docs/1.deploy/2.providers/21.vercel.md +270 -0
- package/dist/docs/1.deploy/2.providers/22.zeabur.md +19 -0
- package/dist/docs/1.deploy/2.providers/23.zephyr.md +99 -0
- package/dist/docs/1.deploy/2.providers/24.zerops.md +102 -0
- package/dist/docs/1.deploy/2.providers/3.azure.md +72 -0
- package/dist/docs/1.deploy/2.providers/4.cleavr.md +33 -0
- package/dist/docs/1.deploy/2.providers/5.cloudflare.md +369 -0
- package/dist/docs/1.deploy/2.providers/6.deno-deploy.md +66 -0
- package/dist/docs/1.deploy/2.providers/7.digitalocean.md +46 -0
- package/dist/docs/1.deploy/2.providers/8.edgeone.md +20 -0
- package/dist/docs/1.deploy/2.providers/9.firebase.md +32 -0
- package/dist/docs/2.config/0.index/index.md +1221 -0
- package/dist/docs/3.examples/0.index/index.md +3 -0
- package/dist/docs/3.examples/1.api-routes.md +145 -0
- package/dist/docs/3.examples/10.hono.md +74 -0
- package/dist/docs/3.examples/11.import-alias.md +97 -0
- package/dist/docs/3.examples/12.middleware.md +91 -0
- package/dist/docs/3.examples/13.mono-jsx.md +68 -0
- package/dist/docs/3.examples/14.nano-jsx.md +70 -0
- package/dist/docs/3.examples/15.plugins.md +91 -0
- package/dist/docs/3.examples/16.renderer.md +113 -0
- package/dist/docs/3.examples/17.runtime-config.md +97 -0
- package/dist/docs/3.examples/18.server-fetch.md +87 -0
- package/dist/docs/3.examples/19.shiki.md +198 -0
- package/dist/docs/3.examples/2.auto-imports.md +92 -0
- package/dist/docs/3.examples/20.virtual-routes.md +74 -0
- package/dist/docs/3.examples/21.vite-nitro-plugin.md +79 -0
- package/dist/docs/3.examples/22.vite-rsc.md +1041 -0
- package/dist/docs/3.examples/23.vite-ssr-html.md +217 -0
- package/dist/docs/3.examples/24.vite-ssr-preact.md +247 -0
- package/dist/docs/3.examples/25.vite-ssr-react.md +226 -0
- package/dist/docs/3.examples/26.vite-ssr-solid.md +256 -0
- package/dist/docs/3.examples/27.vite-ssr-tsr-react.md +442 -0
- package/dist/docs/3.examples/28.vite-ssr-tss-react.md +444 -0
- package/dist/docs/3.examples/29.vite-ssr-vue-router.md +617 -0
- package/dist/docs/3.examples/3.cached-handler.md +81 -0
- package/dist/docs/3.examples/30.vite-trpc.md +335 -0
- package/dist/docs/3.examples/31.websocket.md +282 -0
- package/dist/docs/3.examples/4.custom-error-handler.md +98 -0
- package/dist/docs/3.examples/5.database.md +157 -0
- package/dist/docs/3.examples/6.elysia.md +70 -0
- package/dist/docs/3.examples/7.express.md +78 -0
- package/dist/docs/3.examples/8.fastify.md +79 -0
- package/dist/docs/3.examples/9.hello-world.md +68 -0
- package/dist/docs/README.md +86 -0
- package/dist/docs/index.md +121 -0
- package/dist/node_modules/@poppinss/dumper/build/formatters/html/main.js +8 -0
- package/dist/node_modules/@poppinss/dumper/package.json +1 -1
- package/dist/node_modules/@speed-highlight/core/dist/index.js +4 -4
- package/dist/node_modules/@speed-highlight/core/dist/terminal.js +2 -2
- package/dist/node_modules/@speed-highlight/core/package.json +1 -1
- package/dist/node_modules/cookie-es/dist/index.mjs +299 -250
- package/dist/node_modules/cookie-es/package.json +26 -23
- package/dist/node_modules/croner/dist/croner.js +1 -1
- package/dist/node_modules/croner/package.json +11 -1
- package/dist/node_modules/defu/dist/defu.mjs +2 -2
- package/dist/node_modules/defu/package.json +33 -28
- package/dist/node_modules/rendu/dist/_chunks/libs/cookie-es.mjs +151 -0
- package/dist/node_modules/rendu/dist/index.mjs +5 -112
- package/dist/node_modules/rendu/package.json +25 -24
- package/dist/node_modules/youch/build/helpers-B9BQYaS6.js +23 -0
- package/dist/node_modules/youch/build/index.js +204 -351
- package/dist/node_modules/youch/build/public/error_info/script.js +1 -1
- package/dist/node_modules/youch/build/public_dir-C5bujZKB.js +25 -0
- package/dist/node_modules/youch/build/src/templates/error_cause/main.js +44 -0
- package/dist/node_modules/youch/build/src/templates/error_info/main.js +72 -0
- package/dist/node_modules/youch/build/src/templates/error_metadata/main.js +65 -0
- package/dist/node_modules/youch/build/src/templates/error_stack/main.js +152 -0
- package/dist/node_modules/youch/build/src/templates/error_stack_source/main.js +46 -0
- package/dist/node_modules/youch/build/src/templates/header/main.js +24 -0
- package/dist/node_modules/youch/build/src/templates/layout/main.js +27 -0
- package/dist/node_modules/youch/package.json +35 -32
- package/dist/presets/_nitro/runtime/nitro-dev.mjs +12 -57
- package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +1 -0
- package/dist/presets/_nitro/runtime/service-worker.mjs +1 -2
- package/dist/presets/aws-lambda/runtime/_utils.mjs +6 -6
- package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs +3 -1
- package/dist/presets/azure/runtime/_utils.mjs +5 -5
- package/dist/presets/azure/runtime/azure-swa.mjs +5 -5
- package/dist/presets/bun/runtime/bun.mjs +9 -6
- package/dist/presets/cloudflare/runtime/_module-handler.mjs +1 -1
- package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +4 -4
- package/dist/presets/cloudflare/runtime/cloudflare-module.mjs +3 -3
- package/dist/presets/cloudflare/runtime/cloudflare-pages.mjs +2 -2
- package/dist/presets/cloudflare/runtime/plugin.dev.mjs +10 -21
- package/dist/presets/deno/runtime/deno-deploy.mjs +4 -4
- package/dist/presets/deno/runtime/deno-server.mjs +9 -6
- package/dist/presets/edgeone/runtime/edgeone.mjs +10 -0
- package/dist/presets/netlify/runtime/netlify-edge.mjs +2 -3
- package/dist/presets/netlify/runtime/netlify.mjs +1 -1
- package/dist/presets/node/runtime/node-cluster.mjs +5 -4
- package/dist/presets/node/runtime/node-middleware.mjs +1 -1
- package/dist/presets/node/runtime/node-server.mjs +8 -5
- package/dist/presets/stormkit/runtime/stormkit.mjs +1 -2
- package/dist/presets/vercel/runtime/cron-handler.mjs +25 -0
- package/dist/presets/vercel/runtime/queue-handler.mjs +21 -0
- package/dist/presets/vercel/runtime/vercel.node.mjs +3 -3
- package/dist/presets/vercel/runtime/vercel.web.mjs +3 -5
- package/dist/presets/winterjs/runtime/winterjs.mjs +10 -10
- package/dist/presets/zephyr/runtime/server.mjs +3 -0
- package/dist/runtime/internal/app.mjs +12 -11
- package/dist/runtime/internal/cache.d.mts +0 -4
- package/dist/runtime/internal/cache.mjs +32 -256
- package/dist/runtime/internal/context.d.mts +3 -1
- package/dist/runtime/internal/context.mjs +1 -9
- package/dist/runtime/internal/error/dev.d.mts +5 -4
- package/dist/runtime/internal/error/dev.mjs +47 -49
- package/dist/runtime/internal/error/hooks.d.mts +1 -1
- package/dist/runtime/internal/error/prod.d.mts +2 -5
- package/dist/runtime/internal/error/prod.mjs +19 -33
- package/dist/runtime/internal/error/utils.d.mts +4 -4
- package/dist/runtime/internal/meta.d.mts +1 -1
- package/dist/runtime/internal/plugin.d.mts +2 -2
- package/dist/runtime/internal/route-rules.d.mts +11 -4
- package/dist/runtime/internal/route-rules.mjs +15 -5
- package/dist/runtime/internal/routes/dev-tasks.d.mts +3 -2
- package/dist/runtime/internal/routes/dev-tasks.mjs +15 -10
- package/dist/runtime/internal/routes/openapi.mjs +2 -2
- package/dist/runtime/internal/routes/renderer-template.d.mts +1 -1
- package/dist/runtime/internal/routes/renderer-template.dev.d.mts +2 -1
- package/dist/runtime/internal/routes/scalar.mjs +3 -3
- package/dist/runtime/internal/routes/swagger.mjs +7 -4
- package/dist/runtime/internal/runtime-config.d.mts +1 -1
- package/dist/runtime/internal/runtime-config.mjs +2 -2
- package/dist/runtime/internal/static.mjs +5 -4
- package/dist/runtime/internal/task.d.mts +3 -1
- package/dist/runtime/internal/task.mjs +7 -7
- package/dist/runtime/internal/vite/dev-entry.mjs +6 -3
- package/dist/runtime/internal/vite/dev-worker.mjs +264 -0
- package/dist/runtime/meta.d.mts +1 -0
- package/dist/runtime/meta.mjs +2 -0
- package/dist/runtime/nitro.d.mts +2 -0
- package/dist/runtime/nitro.mjs +4 -2
- package/dist/runtime/virtual/error-handler.mjs +1 -1
- package/dist/runtime/virtual/renderer-template.mjs +1 -1
- package/dist/runtime/virtual/server-assets.d.mts +2 -1
- package/dist/runtime/virtual/tracing.d.mts +5 -0
- package/dist/runtime/virtual/tracing.mjs +1 -0
- package/dist/runtime/vite.d.mts +1 -1
- package/dist/types/index.d.mts +215 -195
- package/dist/types/index.mjs +1 -11
- package/dist/vite.d.mts +3 -8
- package/dist/vite.mjs +285 -253
- package/lib/tsconfig.json +3 -5
- package/package.json +97 -80
- package/dist/_libs/confbox.mjs +0 -2509
- package/dist/_libs/nypm+giget+tinyexec.mjs +0 -3603
- package/dist/_libs/rc9+c12+dotenv.mjs +0 -972
- package/dist/node_modules/hookable/dist/index.mjs +0 -266
- package/dist/node_modules/hookable/package.json +0 -52
- package/dist/node_modules/youch/build/chunk-4L7RY2JA.js +0 -42
- package/dist/node_modules/youch/build/chunk-7QV3D5YX.js +0 -83
- package/dist/node_modules/youch/build/chunk-AUGPHE32.js +0 -39
- package/dist/node_modules/youch/build/chunk-CM7DWJNZ.js +0 -44
- package/dist/node_modules/youch/build/chunk-EJH674NB.js +0 -223
- package/dist/node_modules/youch/build/chunk-OIJ3WD7L.js +0 -81
- package/dist/node_modules/youch/build/chunk-P36L72PL.js +0 -87
- package/dist/node_modules/youch/build/chunk-PE3GG3TN.js +0 -65
- package/dist/node_modules/youch/build/chunk-X53OIOJH.js +0 -70
- package/dist/presets/_nitro/runtime/nitro-dev.d.mts +0 -2
- package/dist/presets/_nitro/runtime/nitro-prerenderer.d.mts +0 -3
- package/dist/presets/_nitro/runtime/service-worker.d.mts +0 -2
- package/dist/presets/aws-amplify/runtime/aws-amplify.d.mts +0 -2
- package/dist/presets/aws-lambda/runtime/_utils.d.mts +0 -8
- package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.mts +0 -2
- package/dist/presets/aws-lambda/runtime/aws-lambda.d.mts +0 -3
- package/dist/presets/azure/runtime/_utils.d.mts +0 -2
- package/dist/presets/azure/runtime/azure-swa.d.mts +0 -5
- package/dist/presets/bun/runtime/bun.d.mts +0 -3
- package/dist/presets/cloudflare/runtime/_module-handler.d.mts +0 -16
- package/dist/presets/cloudflare/runtime/cloudflare-durable.d.mts +0 -11
- package/dist/presets/cloudflare/runtime/cloudflare-module.d.mts +0 -3
- package/dist/presets/cloudflare/runtime/cloudflare-pages.d.mts +0 -20
- package/dist/presets/cloudflare/runtime/plugin.dev.d.mts +0 -3
- package/dist/presets/deno/runtime/deno-deploy.d.mts +0 -5
- package/dist/presets/deno/runtime/deno-server.d.mts +0 -3
- package/dist/presets/netlify/runtime/netlify-edge.d.mts +0 -3
- package/dist/presets/netlify/runtime/netlify.d.mts +0 -4
- package/dist/presets/node/runtime/node-cluster.d.mts +0 -3
- package/dist/presets/node/runtime/node-middleware.d.mts +0 -3
- package/dist/presets/node/runtime/node-server.d.mts +0 -3
- package/dist/presets/standard/runtime/server.d.mts +0 -3
- package/dist/presets/stormkit/runtime/stormkit.d.mts +0 -21
- package/dist/presets/vercel/runtime/isr.d.mts +0 -2
- package/dist/presets/vercel/runtime/vercel.node.d.mts +0 -3
- package/dist/presets/vercel/runtime/vercel.web.d.mts +0 -8
- package/dist/presets/winterjs/runtime/winterjs.d.mts +0 -2
- package/dist/presets/zeabur/runtime/zeabur.d.mts +0 -3
- package/dist/runtime/internal/vite/node-runner.mjs +0 -359
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Heroku
|
|
2
|
+
|
|
3
|
+
> Deploy Nitro apps to Heroku.
|
|
4
|
+
|
|
5
|
+
**Preset:** `heroku`
|
|
6
|
+
|
|
7
|
+
<read-more></read-more>
|
|
8
|
+
|
|
9
|
+
## Using the heroku CLI
|
|
10
|
+
|
|
11
|
+
1. Create a new Heroku app.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
heroku create myapp
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
2. Configure Heroku to use the nodejs buildpack.
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
heroku buildpacks:set heroku/nodejs
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
3. Configure your app.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
heroku config:set NITRO_PRESET=heroku
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
4. Ensure you have `start` and `build` commands in your `package.json` file.
|
|
30
|
+
|
|
31
|
+
```json5
|
|
32
|
+
"scripts": {
|
|
33
|
+
"build": "nitro build", // or `nuxt build` if using nuxt
|
|
34
|
+
"start": "node .output/server/index.mjs"
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## With nginx
|
|
40
|
+
|
|
41
|
+
1. Add the heroku Nginx buildpack [here](https://github.com/heroku/heroku-buildpack-nginx.git)
|
|
42
|
+
|
|
43
|
+
2. Change to the 'node' preset in your `nitro.config`
|
|
44
|
+
|
|
45
|
+
```json5
|
|
46
|
+
"nitro": {
|
|
47
|
+
"preset":"node",
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
3. From the **Existing app** section of buildpack doc, 2 key steps are required to get things running
|
|
52
|
+
|
|
53
|
+
Step 1: Listen on a socket at 'tmp/nginx.socket'
|
|
54
|
+
Step 2: Create a file '/tmp/app-initialized' when your app is ready to accept connections
|
|
55
|
+
|
|
56
|
+
4. Create custom app runner, eg: apprunner.mjs at the root of the project (or any other preferred location), in this file, create a server, using the listener generated by the node preset, then listen on the socket as detailed in the buildpack doc
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
import { createServer } from 'node:http'
|
|
60
|
+
import { listener } from './.output/server/index.mjs'
|
|
61
|
+
|
|
62
|
+
const server = createServer(listener)
|
|
63
|
+
|
|
64
|
+
server.listen('/tmp/nginx.socket') //following the buildpack doc
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
5. To create the 'tmp/app-initialized' file, use a nitro plugin, create file 'initServer.ts' at the root of the project (or any other preferred location)
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
import fs from "fs"
|
|
71
|
+
|
|
72
|
+
export default definePlugin((nitroApp) => {
|
|
73
|
+
if((process.env.NODE_ENV || 'development') != 'development') {
|
|
74
|
+
fs.openSync('/tmp/app-initialized', 'w')
|
|
75
|
+
}
|
|
76
|
+
})
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
6. Finally, create file 'Procfile' at the root of the project, with the Procfile, we tell heroku to start nginx and use the custom apprunner.mjs to start the server
|
|
80
|
+
|
|
81
|
+
web: bin/start-nginx node apprunner.mjs
|
|
82
|
+
|
|
83
|
+
7. Bonus: create file 'config/nginx.conf.erb' to customize your nginx config. With the node preset, by default, static files handlers will not be generated, you can use nginx to server static files, just add the right location rule to the server block(s), or, force the node preset to generate handlers for the static files by setting serveStatic to true.
|
|
84
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# IIS
|
|
2
|
+
|
|
3
|
+
> Deploy Nitro apps to IIS.
|
|
4
|
+
|
|
5
|
+
## Using [IISnode](https://github.com/Azure/iisnode)
|
|
6
|
+
|
|
7
|
+
**Preset:** `iis_node`
|
|
8
|
+
|
|
9
|
+
1. Install the latest LTS version of [Node.js](https://nodejs.org/en/) on your Windows Server.
|
|
10
|
+
2. Install [IISnode](https://github.com/azure/iisnode/releases)
|
|
11
|
+
3. Install [IIS `URLRewrite` Module](https://www.iis.net/downloads/microsoft/url-rewrite).
|
|
12
|
+
4. In IIS, add `.mjs` as a new mime type and set its content type to `application/javascript`.
|
|
13
|
+
5. Deploy the contents of your `.output` folder to your website in IIS.
|
|
14
|
+
|
|
15
|
+
## Using IIS handler
|
|
16
|
+
**Preset:** `iis_handler`
|
|
17
|
+
|
|
18
|
+
You can use IIS http handler directly.
|
|
19
|
+
|
|
20
|
+
1. Install the latest LTS version of [Node.js](https://nodejs.org/en/) on your Windows Server.
|
|
21
|
+
2. Install [IIS `HttpPlatformHandler` Module](https://www.iis.net/downloads/microsoft/httpplatformhandler)
|
|
22
|
+
3. Copy your `.output` directory into the Windows Server, and create a website on IIS pointing to that exact directory.
|
|
23
|
+
|
|
24
|
+
## IIS config options
|
|
25
|
+
|
|
26
|
+
```ts [nitro.config.ts]
|
|
27
|
+
import { defineConfig } from "nitro";
|
|
28
|
+
|
|
29
|
+
export default defineConfig({
|
|
30
|
+
// IIS options default
|
|
31
|
+
iis: {
|
|
32
|
+
// merges in a pre-existing web.config file to the nitro default file
|
|
33
|
+
mergeConfig: true,
|
|
34
|
+
// overrides the default nitro web.config file all together
|
|
35
|
+
overrideConfig: false,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
```
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Koyeb
|
|
2
|
+
|
|
3
|
+
> Deploy Nitro apps to Koyeb.
|
|
4
|
+
|
|
5
|
+
**Preset:** `koyeb`
|
|
6
|
+
|
|
7
|
+
<read-more></read-more>
|
|
8
|
+
|
|
9
|
+
## Using the control panel
|
|
10
|
+
|
|
11
|
+
1. In the [Koyeb control panel](https://app.koyeb.com/), click **Create App**.
|
|
12
|
+
|
|
13
|
+
2. Choose **GitHub** as your deployment method.
|
|
14
|
+
|
|
15
|
+
3. Choose the GitHub **repository** and **branch** containing your application code.
|
|
16
|
+
|
|
17
|
+
4. Name your Service.
|
|
18
|
+
|
|
19
|
+
5. If you did not add a `start` command to your `package.json` file, under the **Build and deployment settings**, toggle the override switch associated with the run command field. In the **Run command** field, enter:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
node .output/server/index.mjs`
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
6. In the **Advanced** section, click **Add Variable** and add a `NITRO_PRESET` variable set to `koyeb`.
|
|
26
|
+
|
|
27
|
+
7. Name the App.
|
|
28
|
+
|
|
29
|
+
8. Click the **Deploy** button.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
## Using the Koyeb CLI
|
|
33
|
+
|
|
34
|
+
1. Follow the instructions targeting your operating system to [install the Koyeb CLI client](https://www.koyeb.com/docs/cli/installation) with an installer. Alternatively, visit the [releases page on GitHub](https://github.com/koyeb/koyeb-cli/releases) to directly download required files.
|
|
35
|
+
|
|
36
|
+
2. Create a Koyeb API access token by visiting the [API settings for your organization](https://app.koyeb.com/settings/api) in the Koyeb control panel.
|
|
37
|
+
|
|
38
|
+
3. Log into your account with the Koyeb CLI by typing:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
koyeb login
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Paste your API credentials when prompted.
|
|
45
|
+
|
|
46
|
+
4. Deploy your Nitro application from a GitHub repository with the following command. Be sure to substitute your own values for `<APPLICATION_NAME>`, `<YOUR_GITHUB_USERNAME>`, and `<YOUR_REPOSITORY_NAME>`:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
koyeb app init <APPLICATION_NAME> \
|
|
50
|
+
--git github.com/<YOUR_GITHUB_USERNAME>/<YOUR_REPOSITORY_NAME> \
|
|
51
|
+
--git-branch main \
|
|
52
|
+
--git-run-command "node .output/server/index.mjs" \
|
|
53
|
+
--ports 3000:http \
|
|
54
|
+
--routes /:3000 \
|
|
55
|
+
--env PORT=3000 \
|
|
56
|
+
--env NITRO_PRESET=koyeb
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
## Using a docker container
|
|
61
|
+
|
|
62
|
+
1. Create a `.dockerignore` file in the root of your project and add the following lines:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
Dockerfile
|
|
66
|
+
.dockerignore
|
|
67
|
+
node_modules
|
|
68
|
+
npm-debug.log
|
|
69
|
+
.nitro
|
|
70
|
+
.output
|
|
71
|
+
.git
|
|
72
|
+
dist
|
|
73
|
+
README.md
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
2. Add a `Dockerfile` to the root of your project:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
FROM node:18-alpine AS base
|
|
80
|
+
|
|
81
|
+
FROM base AS deps
|
|
82
|
+
RUN apk add --no-cache libc6-compat
|
|
83
|
+
WORKDIR /app
|
|
84
|
+
COPY package.json package-lock.json ./
|
|
85
|
+
RUN npm ci
|
|
86
|
+
|
|
87
|
+
FROM base AS builder
|
|
88
|
+
WORKDIR /app
|
|
89
|
+
COPY --from=deps /app/node_modules ./node_modules
|
|
90
|
+
COPY . .
|
|
91
|
+
RUN npm run build && npm cache clean --force
|
|
92
|
+
|
|
93
|
+
FROM base AS runner
|
|
94
|
+
WORKDIR /app
|
|
95
|
+
RUN addgroup --system --gid 1001 nodejs
|
|
96
|
+
RUN adduser --system --uid 1001 nitro
|
|
97
|
+
COPY --from=builder /app .
|
|
98
|
+
USER nitro
|
|
99
|
+
EXPOSE 3000
|
|
100
|
+
ENV PORT 3000
|
|
101
|
+
CMD ["npm", "run", "start"]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
The Dockerfile above provides the minimum requirements to run the Nitro application. You can easily extend it depending on your needs.
|
|
106
|
+
You will then need to push your Docker image to a registry. You can use [Docker Hub](https://hub.docker.com/) or [GitHub Container Registry](https://docs.github.com/en/packages/guides/about-github-container-registry) for example.
|
|
107
|
+
In the Koyeb control panel, use the image and the tag field to specify the image you want to deploy.
|
|
108
|
+
You can also use the [Koyeb CLI](https://www.koyeb.com/docs/build-and-deploy/cli/installation)
|
|
109
|
+
Refer to the Koyeb [Docker documentation](https://www.koyeb.com/docs/build-and-deploy/prebuilt-docker-images) for more information.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Netlify
|
|
2
|
+
|
|
3
|
+
> Deploy Nitro apps to Netlify functions or edge.
|
|
4
|
+
|
|
5
|
+
**Preset:** `netlify`
|
|
6
|
+
|
|
7
|
+
<read-more></read-more>
|
|
8
|
+
|
|
9
|
+
<note>
|
|
10
|
+
|
|
11
|
+
Integration with this provider is possible with [zero configuration](/deploy/#zero-config-providers).
|
|
12
|
+
</note>
|
|
13
|
+
|
|
14
|
+
Normally, the deployment to Netlify does not require any configuration.
|
|
15
|
+
Nitro will auto-detect that you are in a [Netlify](https://www.netlify.com) build environment and build the correct version of your server.
|
|
16
|
+
|
|
17
|
+
For new sites, Netlify will detect that you are using Nitro and set the publish directory to `dist` and build command to `npm run build`.
|
|
18
|
+
|
|
19
|
+
If you are upgrading an existing site you should check these and update them if needed.
|
|
20
|
+
|
|
21
|
+
If you want to add custom redirects, you can do so with [`routeRules`](/config#routerules) or by adding a [`_redirects`](https://docs.netlify.com/routing/redirects/#syntax-for-the-redirects-file) file to your `public` directory.
|
|
22
|
+
|
|
23
|
+
For deployment, just push to your git repository [as you would normally do for Netlify](https://docs.netlify.com/configure-builds/get-started/).
|
|
24
|
+
|
|
25
|
+
<note>
|
|
26
|
+
|
|
27
|
+
Make sure the publish directory is set to `dist` when creating a new project.
|
|
28
|
+
</note>
|
|
29
|
+
|
|
30
|
+
## Netlify edge functions
|
|
31
|
+
|
|
32
|
+
**Preset:** `netlify_edge`
|
|
33
|
+
|
|
34
|
+
Netlify Edge Functions use Deno and the powerful V8 JavaScript runtime to let you run globally distributed functions for the fastest possible response times.
|
|
35
|
+
|
|
36
|
+
<read-more></read-more>
|
|
37
|
+
|
|
38
|
+
Nitro output can directly run the server at the edge. Closer to your users.
|
|
39
|
+
|
|
40
|
+
<note>
|
|
41
|
+
|
|
42
|
+
Make sure the publish directory is set to `dist` when creating a new project.
|
|
43
|
+
</note>
|
|
44
|
+
|
|
45
|
+
## Custom deploy configuration
|
|
46
|
+
|
|
47
|
+
You can provide additional deploy configuration using the `netlify` key inside `nitro.config`. It will be merged with built-in auto-generated config. Currently the only supported value is `images.remote_images`, for [configuring Netlify Image CDN](https://docs.netlify.com/image-cdn/create-integration/).
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Platform.sh
|
|
2
|
+
|
|
3
|
+
> Deploy Nitro apps to platform.sh
|
|
4
|
+
|
|
5
|
+
**Preset:** `platform_sh`
|
|
6
|
+
|
|
7
|
+
<read-more></read-more>
|
|
8
|
+
|
|
9
|
+
## Setup
|
|
10
|
+
|
|
11
|
+
First, create a new project on platform.sh and link it to the repository you want to auto-deploy with.
|
|
12
|
+
|
|
13
|
+
Then in repository create `.platform.app.yaml` file:
|
|
14
|
+
|
|
15
|
+
```yaml [.platform.app.yaml]
|
|
16
|
+
name: nitro-app
|
|
17
|
+
type: 'nodejs:20'
|
|
18
|
+
disk: 128
|
|
19
|
+
web:
|
|
20
|
+
commands:
|
|
21
|
+
start: "node .output/server/index.mjs"
|
|
22
|
+
build:
|
|
23
|
+
flavor: none
|
|
24
|
+
hooks:
|
|
25
|
+
build: |
|
|
26
|
+
corepack enable
|
|
27
|
+
npx nypm install
|
|
28
|
+
NITRO_PRESET=platform_sh npm run build
|
|
29
|
+
mounts:
|
|
30
|
+
'.data':
|
|
31
|
+
source: local
|
|
32
|
+
source_path: .data
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
<read-more></read-more>
|
|
36
|
+
|
|
37
|
+
<read-more></read-more>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Render.com
|
|
2
|
+
|
|
3
|
+
> Deploy Nitro apps to Render.com.
|
|
4
|
+
|
|
5
|
+
**Preset:** `render_com`
|
|
6
|
+
|
|
7
|
+
<read-more></read-more>
|
|
8
|
+
|
|
9
|
+
## Set up application
|
|
10
|
+
|
|
11
|
+
1. [Create a new Web Service](https://dashboard.render.com/select-repo?type=web) and select the repository that contains your code.
|
|
12
|
+
2. Ensure the 'Node' environment is selected.
|
|
13
|
+
3. Update the start command to `node .output/server/index.mjs`
|
|
14
|
+
4. Click 'Advanced' and add an environment variable with `NITRO_PRESET` set to `render_com`. You may also need to add a `NODE_VERSION` environment variable set to `20` for the build to succeed ([docs](https://render.com/docs/node-version)).
|
|
15
|
+
5. Click 'Create Web Service'.
|
|
16
|
+
|
|
17
|
+
## Infrastructure as Code (IaC)
|
|
18
|
+
|
|
19
|
+
1. Create a file called `render.yaml` with following content at the root of your repository.
|
|
20
|
+
|
|
21
|
+
This file followed by [Infrastructure as Code](https://render.com/docs/infrastructure-as-code) on Render
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
services:
|
|
25
|
+
- type: web
|
|
26
|
+
name: <PROJECTNAME>
|
|
27
|
+
env: node
|
|
28
|
+
branch: main
|
|
29
|
+
startCommand: node .output/server/index.mjs
|
|
30
|
+
buildCommand: npx nypm install && npm run build
|
|
31
|
+
envVars:
|
|
32
|
+
- key: NITRO_PRESET
|
|
33
|
+
value: render_com
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
1. [Create a new Blueprint Instance](https://dashboard.render.com/select-repo?type=blueprint) and select the repository containing your `render.yaml` file.
|
|
37
|
+
You should be good to go!
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# AWS Amplify
|
|
2
|
+
|
|
3
|
+
> Deploy Nitro apps to AWS Amplify Hosting.
|
|
4
|
+
|
|
5
|
+
**Preset:** `aws_amplify`
|
|
6
|
+
|
|
7
|
+
<read-more></read-more>
|
|
8
|
+
|
|
9
|
+
## Deploy to AWS Amplify Hosting
|
|
10
|
+
|
|
11
|
+
<tip>
|
|
12
|
+
|
|
13
|
+
Integration with this provider is possible with [zero configuration](/deploy/#zero-config-providers).
|
|
14
|
+
</tip>
|
|
15
|
+
|
|
16
|
+
1. Login to the [AWS Amplify Hosting Console](https://console.aws.amazon.com/amplify/)
|
|
17
|
+
2. Click on "Get Started" > Amplify Hosting (Host your web app)
|
|
18
|
+
3. Select and authorize access to your Git repository provider and select the main branch
|
|
19
|
+
4. Choose a name for your app, make sure build settings are auto-detected and optionally set requirement environment variables under the advanced section
|
|
20
|
+
5. Optionally, select Enable SSR logging to enable server-side logging to your Amazon CloudWatch account
|
|
21
|
+
6. Confirm configuration and click on "Save and Deploy"
|
|
22
|
+
|
|
23
|
+
## Advanced Configuration
|
|
24
|
+
You can configure advanced options of this preset using `awsAmplify` option.
|
|
25
|
+
|
|
26
|
+
```ts [nitro.config.ts]
|
|
27
|
+
import { defineConfig } from "nitro";
|
|
28
|
+
|
|
29
|
+
export default defineConfig({
|
|
30
|
+
awsAmplify: {
|
|
31
|
+
// catchAllStaticFallback: true,
|
|
32
|
+
// imageOptimization: { path: "/_image", cacheControl: "public, max-age=3600, immutable" },
|
|
33
|
+
// imageSettings: { ... },
|
|
34
|
+
// runtime: "nodejs18.x", // default: "nodejs18.x" | "nodejs16.x" | "nodejs20.x"
|
|
35
|
+
}
|
|
36
|
+
})
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### `amplify.yml`
|
|
40
|
+
|
|
41
|
+
You might need a custom `amplify.yml` file for advanced configuration. Here are two template examples:
|
|
42
|
+
|
|
43
|
+
<code-group>
|
|
44
|
+
|
|
45
|
+
```yml [amplify.yml]
|
|
46
|
+
version: 1
|
|
47
|
+
frontend:
|
|
48
|
+
phases:
|
|
49
|
+
preBuild:
|
|
50
|
+
commands:
|
|
51
|
+
- nvm use 18 && node --version
|
|
52
|
+
- corepack enable && npx --yes nypm install
|
|
53
|
+
build:
|
|
54
|
+
commands:
|
|
55
|
+
- pnpm build
|
|
56
|
+
artifacts:
|
|
57
|
+
baseDirectory: .amplify-hosting
|
|
58
|
+
files:
|
|
59
|
+
- "**/*"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
```yml [amplify.yml (monorepo)]
|
|
63
|
+
version: 1
|
|
64
|
+
applications:
|
|
65
|
+
- frontend:
|
|
66
|
+
phases:
|
|
67
|
+
preBuild:
|
|
68
|
+
commands:
|
|
69
|
+
- nvm use 18 && node --version
|
|
70
|
+
- corepack enable && npx --yes nypm install
|
|
71
|
+
build:
|
|
72
|
+
commands:
|
|
73
|
+
- pnpm --filter website1 build
|
|
74
|
+
artifacts:
|
|
75
|
+
baseDirectory: apps/website1/.amplify-hosting
|
|
76
|
+
files:
|
|
77
|
+
- '**/*'
|
|
78
|
+
buildPath: /
|
|
79
|
+
appRoot: apps/website1
|
|
80
|
+
```
|
|
81
|
+
</code-group>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# StormKit
|
|
2
|
+
|
|
3
|
+
> Deploy Nitro apps to StormKit.
|
|
4
|
+
|
|
5
|
+
**Preset:** `stormkit`
|
|
6
|
+
|
|
7
|
+
<read-more></read-more>
|
|
8
|
+
|
|
9
|
+
<note>
|
|
10
|
+
|
|
11
|
+
Integration with [Stormkit](https://www.stormkit.io/) is possible with [zero configuration](/deploy#zero-config-providers).
|
|
12
|
+
</note>
|
|
13
|
+
|
|
14
|
+
## Setup
|
|
15
|
+
|
|
16
|
+
Follow the steps to [create a new app](https://app.stormkit.io/apps/new) on Stormkit.
|
|
17
|
+
|
|
18
|
+

|
|
19
|
+
|
|
20
|
+
## Deployment
|
|
21
|
+
|
|
22
|
+
By default, Stormkit will deploy your apps automatically when you push changes to your main branch. But to trigger a manual deploy (for example, you might do this for the very first deployment), you may click `Deploy now`.
|
|
23
|
+
|
|
24
|
+

|