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