[{"data":1,"prerenderedAt":787},["ShallowReactive",2],{"navigation":3,"-deploy-providers-zerops":224,"-deploy-providers-zerops-surround":783},[4,83,208,214,221],{"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],{"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},"Zerops","/deploy/providers/zerops","2.deploy/20.providers/zerops",{"title":209,"path":210,"stem":211,"children":212,"icon":36},"Config","/config","3.config/0.index",[213],{"title":209,"path":210,"stem":211,"icon":36},{"title":215,"path":216,"stem":217,"children":218,"icon":220},"Examples","/examples","4.examples/0.index",[219],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-folder-code",{"title":5,"path":222,"stem":223},"/","index",{"id":225,"title":205,"body":226,"description":777,"extension":778,"meta":779,"navigation":780,"path":206,"seo":781,"stem":207,"__hash__":782},"content/2.deploy/20.providers/zerops.md",{"type":227,"value":228,"toc":772},"minimark",[229,241,246,252,255,260,281,285,298,425,432,705,725,729,738,741,745,751,754,764,768],[230,231,232,236,237],"p",{},[233,234,235],"strong",{},"Preset:"," ",[238,239,240],"code",{},"zerops",[242,243],"read-more",{"title":244,"to":245},"zerops.io","https://zerops.io",[247,248,249],"important",{},[230,250,251],{},"\n🚧 This preset is currently experimental.",[230,253,254],{},"Zerops supports deploying both static and server-side rendered apps with a simple configuration file in your project root.",[256,257,259],"h2",{"id":258},"starter-templates","Starter templates",[230,261,262,263,272,273,280],{},"If you want to quckly get started with zerops and nitro you can use repositories ",[264,265,269],"a",{"href":266,"rel":267},"https://github.com/zeropsio/recipe-nitro-nodejs",[268],"nofollow",[238,270,271],{},"zeropsio/recipe-nitro-nodejs"," and ",[264,274,277],{"href":275,"rel":276},"https://github.com/zeropsio/recipe-nitro-static",[268],[238,278,279],{},"zeropsio/recipe-nitro-static"," starter templates.",[256,282,284],{"id":283},"project-setup","Project setup",[230,286,287,288,293,294,297],{},"Projects and services can be added either through ",[264,289,292],{"href":290,"rel":291},"https://app.zerops.io/dashboard/project-add",[268],"project add wizard"," or imported using ",[238,295,296],{},"zerops-project-import.yml",".",[299,300,301,376],"code-group",{},[302,303,308],"pre",{"className":304,"code":305,"filename":306,"language":307,"meta":5,"style":5},"language-yml shiki shiki-themes github-light github-dark github-dark","project:\n  name: nitro-app\n\nservices:\n  - hostname: app\n    type: nodejs@20\n","zerops-project-import.yml (node.js)","yml",[238,309,310,323,336,343,351,365],{"__ignoreMap":5},[311,312,315,319],"span",{"class":313,"line":314},"line",1,[311,316,318],{"class":317},"sByVh","project",[311,320,322],{"class":321},"slsVL",":\n",[311,324,326,329,332],{"class":313,"line":325},2,[311,327,328],{"class":317},"  name",[311,330,331],{"class":321},": ",[311,333,335],{"class":334},"sfrk1","nitro-app\n",[311,337,339],{"class":313,"line":338},3,[311,340,342],{"emptyLinePlaceholder":341},true,"\n",[311,344,346,349],{"class":313,"line":345},4,[311,347,348],{"class":317},"services",[311,350,322],{"class":321},[311,352,354,357,360,362],{"class":313,"line":353},5,[311,355,356],{"class":321},"  - ",[311,358,359],{"class":317},"hostname",[311,361,331],{"class":321},[311,363,364],{"class":334},"app\n",[311,366,368,371,373],{"class":313,"line":367},6,[311,369,370],{"class":317},"    type",[311,372,331],{"class":321},[311,374,375],{"class":334},"nodejs@20\n",[302,377,380],{"className":304,"code":378,"filename":379,"language":307,"meta":5,"style":5},"project:\n  name: nitro-app\n\nservices:\n  - hostname: app\n    type: static\n","zerops-project-import.yml (static)",[238,381,382,388,396,400,406,416],{"__ignoreMap":5},[311,383,384,386],{"class":313,"line":314},[311,385,318],{"class":317},[311,387,322],{"class":321},[311,389,390,392,394],{"class":313,"line":325},[311,391,328],{"class":317},[311,393,331],{"class":321},[311,395,335],{"class":334},[311,397,398],{"class":313,"line":338},[311,399,342],{"emptyLinePlaceholder":341},[311,401,402,404],{"class":313,"line":345},[311,403,348],{"class":317},[311,405,322],{"class":321},[311,407,408,410,412,414],{"class":313,"line":353},[311,409,356],{"class":321},[311,411,359],{"class":317},[311,413,331],{"class":321},[311,415,364],{"class":334},[311,417,418,420,422],{"class":313,"line":367},[311,419,370],{"class":317},[311,421,331],{"class":321},[311,423,424],{"class":334},"static\n",[230,426,427,428,431],{},"Then create a ",[238,429,430],{},"zerops.yml"," config in your project root:",[299,433,434,608],{},[302,435,438],{"className":304,"code":436,"filename":437,"language":307,"meta":5,"style":5},"zerops:\n  - setup: app\n    build:\n      base: nodejs@20\n      envVariables:\n        SERVER_PRESET: zerops\n      buildCommands:\n        - pnpm i\n        - pnpm run build\n      deployFiles:\n        - .output\n        - package.json\n        - node_modules\n    run:\n      base: nodejs@20\n      ports:\n        - port: 3000\n          httpSupport: true\n      start: node .output/server/index.mjs\n","zerops.yml (node.js)",[238,439,440,446,457,464,473,480,490,498,507,515,523,531,539,547,555,564,572,586,597],{"__ignoreMap":5},[311,441,442,444],{"class":313,"line":314},[311,443,240],{"class":317},[311,445,322],{"class":321},[311,447,448,450,453,455],{"class":313,"line":325},[311,449,356],{"class":321},[311,451,452],{"class":317},"setup",[311,454,331],{"class":321},[311,456,364],{"class":334},[311,458,459,462],{"class":313,"line":338},[311,460,461],{"class":317},"    build",[311,463,322],{"class":321},[311,465,466,469,471],{"class":313,"line":345},[311,467,468],{"class":317},"      base",[311,470,331],{"class":321},[311,472,375],{"class":334},[311,474,475,478],{"class":313,"line":353},[311,476,477],{"class":317},"      envVariables",[311,479,322],{"class":321},[311,481,482,485,487],{"class":313,"line":367},[311,483,484],{"class":317},"        SERVER_PRESET",[311,486,331],{"class":321},[311,488,489],{"class":334},"zerops\n",[311,491,493,496],{"class":313,"line":492},7,[311,494,495],{"class":317},"      buildCommands",[311,497,322],{"class":321},[311,499,501,504],{"class":313,"line":500},8,[311,502,503],{"class":321},"        - ",[311,505,506],{"class":334},"pnpm i\n",[311,508,510,512],{"class":313,"line":509},9,[311,511,503],{"class":321},[311,513,514],{"class":334},"pnpm run build\n",[311,516,518,521],{"class":313,"line":517},10,[311,519,520],{"class":317},"      deployFiles",[311,522,322],{"class":321},[311,524,526,528],{"class":313,"line":525},11,[311,527,503],{"class":321},[311,529,530],{"class":334},".output\n",[311,532,534,536],{"class":313,"line":533},12,[311,535,503],{"class":321},[311,537,538],{"class":334},"package.json\n",[311,540,542,544],{"class":313,"line":541},13,[311,543,503],{"class":321},[311,545,546],{"class":334},"node_modules\n",[311,548,550,553],{"class":313,"line":549},14,[311,551,552],{"class":317},"    run",[311,554,322],{"class":321},[311,556,558,560,562],{"class":313,"line":557},15,[311,559,468],{"class":317},[311,561,331],{"class":321},[311,563,375],{"class":334},[311,565,567,570],{"class":313,"line":566},16,[311,568,569],{"class":317},"      ports",[311,571,322],{"class":321},[311,573,575,577,580,582],{"class":313,"line":574},17,[311,576,503],{"class":321},[311,578,579],{"class":317},"port",[311,581,331],{"class":321},[311,583,585],{"class":584},"suiK_","3000\n",[311,587,589,592,594],{"class":313,"line":588},18,[311,590,591],{"class":317},"          httpSupport",[311,593,331],{"class":321},[311,595,596],{"class":584},"true\n",[311,598,600,603,605],{"class":313,"line":599},19,[311,601,602],{"class":317},"      start",[311,604,331],{"class":321},[311,606,607],{"class":334},"node .output/server/index.mjs\n",[302,609,612],{"className":304,"code":610,"filename":611,"language":307,"meta":5,"style":5},"zerops:\n  - setup: app\n    build:\n      base: nodejs@20\n      envVariables:\n        SERVER_PRESET: zerops-static\n      buildCommands:\n        - pnpm i\n        - pnpm build\n      deployFiles:\n        - .zerops/output/static/~\n    run:\n      base: static\n","zerops.yml (static)",[238,613,614,620,630,636,644,650,659,665,671,678,684,691,697],{"__ignoreMap":5},[311,615,616,618],{"class":313,"line":314},[311,617,240],{"class":317},[311,619,322],{"class":321},[311,621,622,624,626,628],{"class":313,"line":325},[311,623,356],{"class":321},[311,625,452],{"class":317},[311,627,331],{"class":321},[311,629,364],{"class":334},[311,631,632,634],{"class":313,"line":338},[311,633,461],{"class":317},[311,635,322],{"class":321},[311,637,638,640,642],{"class":313,"line":345},[311,639,468],{"class":317},[311,641,331],{"class":321},[311,643,375],{"class":334},[311,645,646,648],{"class":313,"line":353},[311,647,477],{"class":317},[311,649,322],{"class":321},[311,651,652,654,656],{"class":313,"line":367},[311,653,484],{"class":317},[311,655,331],{"class":321},[311,657,658],{"class":334},"zerops-static\n",[311,660,661,663],{"class":313,"line":492},[311,662,495],{"class":317},[311,664,322],{"class":321},[311,666,667,669],{"class":313,"line":500},[311,668,503],{"class":321},[311,670,506],{"class":334},[311,672,673,675],{"class":313,"line":509},[311,674,503],{"class":321},[311,676,677],{"class":334},"pnpm build\n",[311,679,680,682],{"class":313,"line":517},[311,681,520],{"class":317},[311,683,322],{"class":321},[311,685,686,688],{"class":313,"line":525},[311,687,503],{"class":321},[311,689,690],{"class":334},".zerops/output/static/~\n",[311,692,693,695],{"class":313,"line":533},[311,694,552],{"class":317},[311,696,322],{"class":321},[311,698,699,701,703],{"class":313,"line":541},[311,700,468],{"class":317},[311,702,331],{"class":321},[311,704,424],{"class":334},[230,706,707,708,712,713,718,719,724],{},"Now you can trigger the ",[264,709,711],{"href":710},"#building-deploying-your-app","build & deploy pipeline using the Zerops CLI"," or by connecting the app service with your ",[264,714,717],{"href":715,"rel":716},"https://docs.zerops.io/references/github-integration/",[268],"GitHub"," / ",[264,720,723],{"href":721,"rel":722},"https://docs.zerops.io/references/gitlab-integration",[268],"GitLab"," repository from inside the service detail.",[256,726,728],{"id":727},"build-and-deploy","Build and deploy",[230,730,731,732,737],{},"Open ",[264,733,736],{"href":734,"rel":735},"https://app.zerops.io/settings/token-management",[268],"Settings > Access Token Management"," in the Zerops app and generate a new access token.",[230,739,740],{},"Log in using your access token with the following command:",[742,743],"pm-x",{"command":744},"@zerops/zcli login \u003Ctoken>",[230,746,747,748,750],{},"Navigate to the root of your app (where ",[238,749,430],{}," is located) and run the following command to trigger the deploy:",[742,752],{"command":753},"@zerops/zcli push",[230,755,756,757,718,760,763],{},"Your code can be deployed automatically on each commit or a new tag by connecting the service with your ",[264,758,717],{"href":721,"rel":759},[268],[264,761,723],{"href":721,"rel":762},[268]," repository. This connection can be set up in the service detail.",[242,765],{"title":766,"to":767},"Zerops Documentation","https://docs.zerops.io/",[769,770,771],"style",{},"html pre.shiki code .sByVh, html code.shiki .sByVh{--shiki-light:#22863A;--shiki-default:#85E89D;--shiki-dark:#85E89D}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}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 .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}",{"title":5,"searchDepth":325,"depth":325,"links":773},[774,775,776],{"id":258,"depth":325,"text":259},{"id":283,"depth":325,"text":284},{"id":727,"depth":325,"text":728},"Deploy Nitro apps to Zerops.","md",{},{},{"title":205,"description":777},"ms10yH5VHpbHmTvfW1mbLP2yAVXN5p_vp5JZbHKPYNU",[784,786],{"title":201,"path":202,"stem":203,"description":785,"children":-1},"Deploy Nitro apps to Zeabur.",{"title":209,"path":210,"stem":211,"description":5,"icon":36,"children":-1},1771523842217]