[{"data":1,"prerenderedAt":636},["ShallowReactive",2],{"navigation":3,"-deploy-providers-koyeb":228,"-deploy-providers-koyeb-surround":631},[4,83,212,218,225],{"title":5,"path":6,"stem":7,"children":8,"icon":82},"","/docs","1.docs/1.index",[9,12,17,22,27,32,37,42,47,52,57,62,67,72,77],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-compass",{"title":13,"path":14,"stem":15,"icon":16},"Quick Start","/docs/quick-start","1.docs/2.quick-start","i-lucide-zap",{"title":18,"path":19,"stem":20,"icon":21},"Renderer","/docs/renderer","1.docs/4.renderer","ri:layout-masonry-line",{"title":23,"path":24,"stem":25,"icon":26},"Routing","/docs/routing","1.docs/5.routing","ri:direction-line",{"title":28,"path":29,"stem":30,"icon":31},"Assets","/docs/assets","1.docs/50.assets","ri:image-2-line",{"title":33,"path":34,"stem":35,"icon":36},"Configuration","/docs/configuration","1.docs/50.configuration","ri:settings-3-line",{"title":38,"path":39,"stem":40,"icon":41},"Database","/docs/database","1.docs/50.database","ri:database-2-line",{"title":43,"path":44,"stem":45,"icon":46},"Lifecycle","/docs/lifecycle","1.docs/50.lifecycle","i-lucide-layers",{"title":48,"path":49,"stem":50,"icon":51},"Plugins","/docs/plugins","1.docs/50.plugins","ri:plug-line",{"title":53,"path":54,"stem":55,"icon":56},"Tasks","/docs/tasks","1.docs/50.tasks","codicon:run-all",{"title":58,"path":59,"stem":60,"icon":61},"Server Entry","/docs/server-entry","1.docs/6.server-entry","ri:server-line",{"title":63,"path":64,"stem":65,"icon":66},"Cache","/docs/cache","1.docs/7.cache","ri:speed-line",{"title":68,"path":69,"stem":70,"icon":71},"KV Storage","/docs/storage","1.docs/8.storage","carbon:datastore",{"title":73,"path":74,"stem":75,"icon":76},"Migration Guide","/docs/migration","1.docs/99.migration","ri:arrow-right-up-line",{"title":78,"path":79,"stem":80,"icon":81},"Nightly Channel","/docs/nightly","1.docs/99.nightly","ri:moon-fill","i-lucide-book-open",{"title":84,"path":85,"stem":86,"children":87,"icon":89},"Deploy","/deploy","2.deploy/0.index",[88,90,111],{"title":84,"path":85,"stem":86,"icon":89},"ri:upload-cloud-2-line",{"title":91,"path":92,"stem":93,"children":94,"page":110},"Runtimes","/deploy/runtimes","2.deploy/10.runtimes",[95,100,105],{"title":96,"path":97,"stem":98,"icon":99},"Node.js","/deploy/runtimes/node","2.deploy/10.runtimes/1.node","akar-icons:node-fill",{"title":101,"path":102,"stem":103,"icon":104},"Bun","/deploy/runtimes/bun","2.deploy/10.runtimes/bun","simple-icons:bun",{"title":106,"path":107,"stem":108,"icon":109},"Deno","/deploy/runtimes/deno","2.deploy/10.runtimes/deno","simple-icons:deno",false,{"title":112,"path":113,"stem":114,"children":115,"page":110},"Providers","/deploy/providers","2.deploy/20.providers",[116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208],{"title":117,"path":118,"stem":119},"Alwaysdata","/deploy/providers/alwaysdata","2.deploy/20.providers/alwaysdata",{"title":121,"path":122,"stem":123},"AWS Lambda","/deploy/providers/aws","2.deploy/20.providers/aws",{"title":125,"path":126,"stem":127},"AWS Amplify","/deploy/providers/aws-amplify","2.deploy/20.providers/aws-amplify",{"title":129,"path":130,"stem":131},"Azure","/deploy/providers/azure","2.deploy/20.providers/azure",{"title":133,"path":134,"stem":135},"Cleavr","/deploy/providers/cleavr","2.deploy/20.providers/cleavr",{"title":137,"path":138,"stem":139},"Cloudflare","/deploy/providers/cloudflare","2.deploy/20.providers/cloudflare",{"title":141,"path":142,"stem":143},"Deno Deploy","/deploy/providers/deno-deploy","2.deploy/20.providers/deno-deploy",{"title":145,"path":146,"stem":147},"DigitalOcean","/deploy/providers/digitalocean","2.deploy/20.providers/digitalocean",{"title":149,"path":150,"stem":151},"Firebase","/deploy/providers/firebase","2.deploy/20.providers/firebase",{"title":153,"path":154,"stem":155},"Flightcontrol","/deploy/providers/flightcontrol","2.deploy/20.providers/flightcontrol",{"title":157,"path":158,"stem":159},"Genezio","/deploy/providers/genezio","2.deploy/20.providers/genezio",{"title":161,"path":162,"stem":163},"GitHub Pages","/deploy/providers/github-pages","2.deploy/20.providers/github-pages",{"title":165,"path":166,"stem":167},"GitLab Pages","/deploy/providers/gitlab-pages","2.deploy/20.providers/gitlab-pages",{"title":169,"path":170,"stem":171},"Heroku","/deploy/providers/heroku","2.deploy/20.providers/heroku",{"title":173,"path":174,"stem":175},"IIS","/deploy/providers/iis","2.deploy/20.providers/iis",{"title":177,"path":178,"stem":179},"Koyeb","/deploy/providers/koyeb","2.deploy/20.providers/koyeb",{"title":181,"path":182,"stem":183},"Netlify","/deploy/providers/netlify","2.deploy/20.providers/netlify",{"title":185,"path":186,"stem":187},"Platform.sh","/deploy/providers/platform-sh","2.deploy/20.providers/platform-sh",{"title":189,"path":190,"stem":191},"Render.com","/deploy/providers/render","2.deploy/20.providers/render",{"title":193,"path":194,"stem":195},"StormKit","/deploy/providers/stormkit","2.deploy/20.providers/stormkit",{"title":197,"path":198,"stem":199},"Vercel","/deploy/providers/vercel","2.deploy/20.providers/vercel",{"title":201,"path":202,"stem":203},"Zeabur","/deploy/providers/zeabur","2.deploy/20.providers/zeabur",{"title":205,"path":206,"stem":207},"Zephyr Cloud","/deploy/providers/zephyr","2.deploy/20.providers/zephyr",{"title":209,"path":210,"stem":211},"Zerops","/deploy/providers/zerops","2.deploy/20.providers/zerops",{"title":213,"path":214,"stem":215,"children":216,"icon":36},"Config","/config","3.config/0.index",[217],{"title":213,"path":214,"stem":215,"icon":36},{"title":219,"path":220,"stem":221,"children":222,"icon":224},"Examples","/examples","4.examples/0.index",[223],{"title":219,"path":220,"stem":221,"icon":224},"i-lucide-folder-code",{"title":5,"path":226,"stem":227},"/","index",{"id":229,"title":177,"body":230,"description":625,"extension":626,"meta":627,"navigation":628,"path":178,"seo":629,"stem":179,"__hash__":630},"content/2.deploy/20.providers/koyeb.md",{"type":231,"value":232,"toc":620},"minimark",[233,245,249,254,360,364,555,559,589,616],[234,235,236,240,241],"p",{},[237,238,239],"strong",{},"Preset:"," ",[242,243,244],"code",{},"koyeb",[246,247],"read-more",{"to":248},"https://www.koyeb.com",[250,251,253],"h2",{"id":252},"using-the-control-panel","Using the control panel",[255,256,258,274,281,292,295,335,351,354],"steps",{"level":257},"4",[259,260,261,262,269,270,273],"h4",{},"In the ",[263,264,268],"a",{"href":265,"rel":266},"https://app.koyeb.com/",[267],"nofollow","Koyeb control panel",", click ",[237,271,272],{},"Create App",".",[259,275,276,277,280],{},"Choose ",[237,278,279],{},"GitHub"," as your deployment method.",[259,282,283,284,287,288,291],{},"Choose the GitHub ",[237,285,286],{},"repository"," and ",[237,289,290],{},"branch"," containing your application code.",[259,293,294],{},"Name your Service.",[259,296,297,298,301,302,305,306,309,310,313,314],{},"If you did not add a ",[242,299,300],{},"start"," command to your ",[242,303,304],{},"package.json"," file, under the ",[237,307,308],{},"Build and deployment settings",", toggle the override switch associated with the run command field.  In the ",[237,311,312],{},"Run command"," field, enter:",[315,316,320],"pre",{"className":317,"code":318,"language":319,"meta":5,"style":5},"language-bash shiki shiki-themes github-light github-dark github-dark","node .output/server/index.mjs`\n","bash",[242,321,322],{"__ignoreMap":5},[323,324,327,331],"span",{"class":325,"line":326},"line",1,[323,328,330],{"class":329},"shcOC","node",[323,332,334],{"class":333},"sfrk1"," .output/server/index.mjs`\n",[259,336,261,337,340,341,344,345,348,349,273],{},[237,338,339],{},"Advanced"," section, click ",[237,342,343],{},"Add Variable"," and add a ",[242,346,347],{},"NITRO_PRESET"," variable set to ",[242,350,244],{},[259,352,353],{},"Name the App.",[259,355,356,357,359],{},"Click the ",[237,358,84],{}," button.",[250,361,363],{"id":362},"using-the-koyeb-cli","Using the Koyeb CLI",[255,365,366,381,390,409],{"level":257},[259,367,368,369,374,375,380],{},"Follow the instructions targeting your operating system to ",[263,370,373],{"href":371,"rel":372},"https://www.koyeb.com/docs/cli/installation",[267],"install the Koyeb CLI client"," with an installer.  Alternatively, visit the ",[263,376,379],{"href":377,"rel":378},"https://github.com/koyeb/koyeb-cli/releases",[267],"releases page on GitHub"," to directly download required files.",[259,382,383,384,389],{},"Create a Koyeb API access token by visiting the ",[263,385,388],{"href":386,"rel":387},"https://app.koyeb.com/settings/api",[267],"API settings for your organization"," in the Koyeb control panel.",[259,391,392,393,405,408],{},"Log into your account with the Koyeb CLI by typing:",[315,394,396],{"className":317,"code":395,"language":319,"meta":5,"style":5},"koyeb login\n",[242,397,398],{"__ignoreMap":5},[323,399,400,402],{"class":325,"line":326},[323,401,244],{"class":329},[323,403,404],{"class":333}," login\n",[406,407],"br",{},"Paste your API credentials when prompted.",[259,410,411,412,415,416,419,420,423,424],{},"Deploy your Nitro application from a GitHub repository with the following command.  Be sure to substitute your own values for ",[242,413,414],{},"\u003CAPPLICATION_NAME>",", ",[242,417,418],{},"\u003CYOUR_GITHUB_USERNAME>",", and ",[242,421,422],{},"\u003CYOUR_REPOSITORY_NAME>",":",[315,425,427],{"className":317,"code":426,"language":319,"meta":5,"style":5},"koyeb app init \u003CAPPLICATION_NAME> \\\n   --git github.com/\u003CYOUR_GITHUB_USERNAME>/\u003CYOUR_REPOSITORY_NAME> \\\n   --git-branch main \\\n   --git-run-command \"node .output/server/index.mjs\" \\\n   --ports 3000:http \\\n   --routes /:3000 \\\n   --env PORT=3000 \\\n   --env NITRO_PRESET=koyeb\n",[242,428,429,457,489,500,511,522,533,547],{"__ignoreMap":5},[323,430,431,433,436,439,443,446,450,453],{"class":325,"line":326},[323,432,244],{"class":329},[323,434,435],{"class":333}," app",[323,437,438],{"class":333}," init",[323,440,442],{"class":441},"so5gQ"," \u003C",[323,444,445],{"class":333},"APPLICATION_NAM",[323,447,449],{"class":448},"slsVL","E",[323,451,452],{"class":441},">",[323,454,456],{"class":455},"suiK_"," \\\n",[323,458,460,463,466,469,472,474,476,478,480,483,485,487],{"class":325,"line":459},2,[323,461,462],{"class":455},"   --git",[323,464,465],{"class":333}," github.com/",[323,467,468],{"class":441},"\u003C",[323,470,471],{"class":333},"YOUR_GITHUB_USERNAM",[323,473,449],{"class":448},[323,475,452],{"class":441},[323,477,226],{"class":333},[323,479,468],{"class":441},[323,481,482],{"class":333},"YOUR_REPOSITORY_NAM",[323,484,449],{"class":448},[323,486,452],{"class":441},[323,488,456],{"class":455},[323,490,492,495,498],{"class":325,"line":491},3,[323,493,494],{"class":455},"   --git-branch",[323,496,497],{"class":333}," main",[323,499,456],{"class":455},[323,501,503,506,509],{"class":325,"line":502},4,[323,504,505],{"class":455},"   --git-run-command",[323,507,508],{"class":333}," \"node .output/server/index.mjs\"",[323,510,456],{"class":455},[323,512,514,517,520],{"class":325,"line":513},5,[323,515,516],{"class":455},"   --ports",[323,518,519],{"class":333}," 3000:http",[323,521,456],{"class":455},[323,523,525,528,531],{"class":325,"line":524},6,[323,526,527],{"class":455},"   --routes",[323,529,530],{"class":333}," /:3000",[323,532,456],{"class":455},[323,534,536,539,542,545],{"class":325,"line":535},7,[323,537,538],{"class":455},"   --env",[323,540,541],{"class":333}," PORT=",[323,543,544],{"class":455},"3000",[323,546,456],{"class":455},[323,548,550,552],{"class":325,"line":549},8,[323,551,538],{"class":455},[323,553,554],{"class":333}," NITRO_PRESET=koyeb\n",[250,556,558],{"id":557},"using-a-docker-container","Using a docker container",[255,560,561,576],{"level":257},[259,562,563,564,567,568],{},"Create a ",[242,565,566],{},".dockerignore"," file in the root of your project and add the following lines:",[315,569,574],{"className":570,"code":572,"language":573},[571],"language-text","Dockerfile\n.dockerignore\nnode_modules\nnpm-debug.log\n.nitro\n.output\n.git\ndist\nREADME.md\n","text",[242,575,572],{"__ignoreMap":5},[259,577,578,579,582,583],{},"Add a ",[242,580,581],{},"Dockerfile"," to the root of your project:",[315,584,587],{"className":585,"code":586,"language":573},[571],"FROM node:18-alpine AS base\n\nFROM base AS deps\nRUN apk add --no-cache libc6-compat\nWORKDIR /app\nCOPY package.json package-lock.json ./\nRUN npm ci\n\nFROM base AS builder\nWORKDIR /app\nCOPY --from=deps /app/node_modules ./node_modules\nCOPY . .\nRUN npm run build && npm cache clean --force\n\nFROM base AS runner\nWORKDIR /app\nRUN addgroup --system --gid 1001 nodejs\nRUN adduser --system --uid 1001 nitro\nCOPY --from=builder /app .\nUSER nitro\nEXPOSE 3000\nENV PORT 3000\nCMD [\"npm\", \"run\", \"start\"]\n",[242,588,586],{"__ignoreMap":5},[234,590,591,592,597,598,603,604,609,610,615],{},"The Dockerfile above provides the minimum requirements to run the Nitro application. You can easily extend it depending on your needs.\nYou will then need to push your Docker image to a registry. You can use ",[263,593,596],{"href":594,"rel":595},"https://hub.docker.com/",[267],"Docker Hub"," or ",[263,599,602],{"href":600,"rel":601},"https://docs.github.com/en/packages/guides/about-github-container-registry",[267],"GitHub Container Registry"," for example.\nIn the Koyeb control panel, use the image and the tag field to specify the image you want to deploy.\nYou can also use the ",[263,605,608],{"href":606,"rel":607},"https://www.koyeb.com/docs/build-and-deploy/cli/installation",[267],"Koyeb CLI","\nRefer to the Koyeb ",[263,611,614],{"href":612,"rel":613},"https://www.koyeb.com/docs/build-and-deploy/prebuilt-docker-images",[267],"Docker documentation"," for more information.",[617,618,619],"style",{},"html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}",{"title":5,"searchDepth":459,"depth":459,"links":621},[622,623,624],{"id":252,"depth":459,"text":253},{"id":362,"depth":459,"text":363},{"id":557,"depth":459,"text":558},"Deploy Nitro apps to Koyeb.","md",{},{},{"title":177,"description":625},"OHJRqUVeoa6zPLM11SspIDyzh_OyUlc28iKLr6OatMk",[632,634],{"title":173,"path":174,"stem":175,"description":633,"children":-1},"Deploy Nitro apps to IIS.",{"title":181,"path":182,"stem":183,"description":635,"children":-1},"Deploy Nitro apps to Netlify functions or edge.",1773176973972]