[{"data":1,"prerenderedAt":798},["ShallowReactive",2],{"navigation":3,"-deploy-providers-zerops":234,"-deploy-providers-zerops-surround":794},[4,81,228],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Getting Started","/guide","1.guide/0.index",[9,11,16,21,26,31,36,41,46,51,56,61,66,71,76],{"title":5,"path":6,"stem":7,"icon":10},"ph:book-open-duotone",{"title":12,"path":13,"stem":14,"icon":15},"Migration Guide","/guide/migration","1.guide/00.migration","ri:arrow-right-up-line",{"title":17,"path":18,"stem":19,"icon":20},"Server Utils","/guide/utils","1.guide/1.utils","ri:tools-line",{"title":22,"path":23,"stem":24,"icon":25},"Tasks","/guide/tasks","1.guide/10.tasks","codicon:run-all",{"title":27,"path":28,"stem":29,"icon":30},"Server Routes","/guide/routing","1.guide/2.routing","ri:direction-line",{"title":32,"path":33,"stem":34,"icon":35},"WebSocket","/guide/websocket","1.guide/3.websocket","cib:socket-io",{"title":37,"path":38,"stem":39,"icon":40},"KV Storage","/guide/storage","1.guide/4.storage","carbon:datastore",{"title":42,"path":43,"stem":44,"icon":45},"SQL Database","/guide/database","1.guide/5.database","ri:database-2-line",{"title":47,"path":48,"stem":49,"icon":50},"Cache","/guide/cache","1.guide/6.cache","ri:speed-line",{"title":52,"path":53,"stem":54,"icon":55},"Fetch","/guide/fetch","1.guide/7.fetch","ri:global-line",{"title":57,"path":58,"stem":59,"icon":60},"Assets","/guide/assets","1.guide/8.assets","ri:image-2-line",{"title":62,"path":63,"stem":64,"icon":65},"Plugins","/guide/plugins","1.guide/9.plugins","ri:plug-line",{"title":67,"path":68,"stem":69,"icon":70},"Configuration","/guide/configuration","1.guide/97.configuration","ri:settings-3-line",{"title":72,"path":73,"stem":74,"icon":75},"TypeScript","/guide/typescript","1.guide/98.typescript","tabler:brand-typescript",{"title":77,"path":78,"stem":79,"icon":80},"Nightly Channel","/guide/nightly","1.guide/99.nightly","ri:moon-fill",{"title":82,"path":83,"stem":84,"children":85,"icon":87},"Overview","/deploy","2.deploy/0.index",[86,88,92,122,127],{"title":82,"path":83,"stem":84,"icon":87},"ri:upload-cloud-2-line",{"title":89,"path":90,"stem":91,"icon":55},"Edge Workers","/deploy/workers","2.deploy/1.workers",{"title":93,"path":94,"stem":95,"children":96,"page":121},"Runtimes","/deploy/runtimes","2.deploy/10.runtimes",[97,102,106,111,116],{"title":98,"path":99,"stem":100,"icon":101},"Node.js","/deploy/runtimes/node","2.deploy/10.runtimes/1.node","akar-icons:node-fill",{"title":103,"path":104,"stem":105,"icon":25},"Dir","/deploy/runtimes/_dir","2.deploy/10.runtimes/_dir",{"title":107,"path":108,"stem":109,"icon":110},"WinterJS","/deploy/runtimes/_winterjs","2.deploy/10.runtimes/_winterjs","game-icons:cold-heart",{"title":112,"path":113,"stem":114,"icon":115},"Bun","/deploy/runtimes/bun","2.deploy/10.runtimes/bun","simple-icons:bun",{"title":117,"path":118,"stem":119,"icon":120},"Deno","/deploy/runtimes/deno","2.deploy/10.runtimes/deno","simple-icons:deno",false,{"title":123,"path":124,"stem":125,"icon":126},"Custom Preset","/deploy/custom-presets","2.deploy/2.custom-presets","ri:file-code-line",{"title":128,"path":129,"stem":130,"children":131,"page":121},"Providers","/deploy/providers","2.deploy/20.providers",[132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224],{"title":103,"path":133,"stem":134,"icon":135},"/deploy/providers/_dir","2.deploy/20.providers/_dir","tdesign:cloud",{"title":137,"path":138,"stem":139},"Alwaysdata","/deploy/providers/alwaysdata","2.deploy/20.providers/alwaysdata",{"title":141,"path":142,"stem":143},"AWS Lambda","/deploy/providers/aws","2.deploy/20.providers/aws",{"title":145,"path":146,"stem":147},"AWS Amplify","/deploy/providers/aws-amplify","2.deploy/20.providers/aws-amplify",{"title":149,"path":150,"stem":151},"Azure","/deploy/providers/azure","2.deploy/20.providers/azure",{"title":153,"path":154,"stem":155},"Cleavr","/deploy/providers/cleavr","2.deploy/20.providers/cleavr",{"title":157,"path":158,"stem":159},"Cloudflare","/deploy/providers/cloudflare","2.deploy/20.providers/cloudflare",{"title":161,"path":162,"stem":163},"Deno Deploy","/deploy/providers/deno-deploy","2.deploy/20.providers/deno-deploy",{"title":165,"path":166,"stem":167},"DigitalOcean","/deploy/providers/digitalocean","2.deploy/20.providers/digitalocean",{"title":169,"path":170,"stem":171},"Firebase","/deploy/providers/firebase","2.deploy/20.providers/firebase",{"title":173,"path":174,"stem":175},"Flightcontrol","/deploy/providers/flightcontrol","2.deploy/20.providers/flightcontrol",{"title":177,"path":178,"stem":179},"Genezio","/deploy/providers/genezio","2.deploy/20.providers/genezio",{"title":181,"path":182,"stem":183},"GitHub Pages","/deploy/providers/github-pages","2.deploy/20.providers/github-pages",{"title":185,"path":186,"stem":187},"GitLab Pages","/deploy/providers/gitlab-pages","2.deploy/20.providers/gitlab-pages",{"title":189,"path":190,"stem":191},"Heroku","/deploy/providers/heroku","2.deploy/20.providers/heroku",{"title":193,"path":194,"stem":195},"IIS","/deploy/providers/iis","2.deploy/20.providers/iis",{"title":197,"path":198,"stem":199},"Koyeb","/deploy/providers/koyeb","2.deploy/20.providers/koyeb",{"title":201,"path":202,"stem":203},"Netlify","/deploy/providers/netlify","2.deploy/20.providers/netlify",{"title":205,"path":206,"stem":207},"Platform.sh","/deploy/providers/platform-sh","2.deploy/20.providers/platform-sh",{"title":209,"path":210,"stem":211},"Render.com","/deploy/providers/render","2.deploy/20.providers/render",{"title":213,"path":214,"stem":215},"StormKit","/deploy/providers/stormkit","2.deploy/20.providers/stormkit",{"title":217,"path":218,"stem":219},"Vercel","/deploy/providers/vercel","2.deploy/20.providers/vercel",{"title":221,"path":222,"stem":223},"Zeabur","/deploy/providers/zeabur","2.deploy/20.providers/zeabur",{"title":225,"path":226,"stem":227},"Zerops","/deploy/providers/zerops","2.deploy/20.providers/zerops",{"title":229,"path":230,"stem":231,"children":232,"icon":70},"Config","/config","3.config/0.index",[233],{"title":229,"path":230,"stem":231,"icon":70},{"id":235,"title":225,"body":236,"description":788,"extension":789,"meta":790,"navigation":791,"path":226,"seo":792,"stem":227,"__hash__":793},"content/2.deploy/20.providers/zerops.md",{"type":237,"value":238,"toc":783},"minimark",[239,251,256,262,265,270,291,295,308,436,443,716,736,740,749,752,756,762,765,775,779],[240,241,242,246,247],"p",{},[243,244,245],"strong",{},"Preset:"," ",[248,249,250],"code",{},"zerops",[252,253],"read-more",{"title":254,"to":255},"zerops.io","https://zerops.io",[257,258,259],"important",{},[240,260,261],{},"\n🚧 This preset is currently experimental.",[240,263,264],{},"Zerops supports deploying both static and server-side rendered apps with a simple configuration file in your project root.",[266,267,269],"h2",{"id":268},"starter-templates","Starter templates",[240,271,272,273,282,283,290],{},"If you want to quckly get started with zerops and nitro you can use repositories ",[274,275,279],"a",{"href":276,"rel":277},"https://github.com/zeropsio/recipe-nitro-nodejs",[278],"nofollow",[248,280,281],{},"zeropsio/recipe-nitro-nodejs"," and ",[274,284,287],{"href":285,"rel":286},"https://github.com/zeropsio/recipe-nitro-static",[278],[248,288,289],{},"zeropsio/recipe-nitro-static"," starter templates.",[266,292,294],{"id":293},"project-setup","Project setup",[240,296,297,298,303,304,307],{},"Projects and services can be added either through ",[274,299,302],{"href":300,"rel":301},"https://app.zerops.io/dashboard/project-add",[278],"project add wizard"," or imported using ",[248,305,306],{},"zerops-project-import.yml",".",[309,310,311,387],"code-group",{},[312,313,319],"pre",{"className":314,"code":315,"filename":316,"language":317,"meta":318,"style":318},"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","",[248,320,321,334,347,354,362,376],{"__ignoreMap":318},[322,323,326,330],"span",{"class":324,"line":325},"line",1,[322,327,329],{"class":328},"sByVh","project",[322,331,333],{"class":332},"slsVL",":\n",[322,335,337,340,343],{"class":324,"line":336},2,[322,338,339],{"class":328},"  name",[322,341,342],{"class":332},": ",[322,344,346],{"class":345},"sfrk1","nitro-app\n",[322,348,350],{"class":324,"line":349},3,[322,351,353],{"emptyLinePlaceholder":352},true,"\n",[322,355,357,360],{"class":324,"line":356},4,[322,358,359],{"class":328},"services",[322,361,333],{"class":332},[322,363,365,368,371,373],{"class":324,"line":364},5,[322,366,367],{"class":332},"  - ",[322,369,370],{"class":328},"hostname",[322,372,342],{"class":332},[322,374,375],{"class":345},"app\n",[322,377,379,382,384],{"class":324,"line":378},6,[322,380,381],{"class":328},"    type",[322,383,342],{"class":332},[322,385,386],{"class":345},"nodejs@20\n",[312,388,391],{"className":314,"code":389,"filename":390,"language":317,"meta":318,"style":318},"project:\n  name: nitro-app\n\nservices:\n  - hostname: app\n    type: static\n","zerops-project-import.yml (static)",[248,392,393,399,407,411,417,427],{"__ignoreMap":318},[322,394,395,397],{"class":324,"line":325},[322,396,329],{"class":328},[322,398,333],{"class":332},[322,400,401,403,405],{"class":324,"line":336},[322,402,339],{"class":328},[322,404,342],{"class":332},[322,406,346],{"class":345},[322,408,409],{"class":324,"line":349},[322,410,353],{"emptyLinePlaceholder":352},[322,412,413,415],{"class":324,"line":356},[322,414,359],{"class":328},[322,416,333],{"class":332},[322,418,419,421,423,425],{"class":324,"line":364},[322,420,367],{"class":332},[322,422,370],{"class":328},[322,424,342],{"class":332},[322,426,375],{"class":345},[322,428,429,431,433],{"class":324,"line":378},[322,430,381],{"class":328},[322,432,342],{"class":332},[322,434,435],{"class":345},"static\n",[240,437,438,439,442],{},"Then create a ",[248,440,441],{},"zerops.yml"," config in your project root:",[309,444,445,619],{},[312,446,449],{"className":314,"code":447,"filename":448,"language":317,"meta":318,"style":318},"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)",[248,450,451,457,468,475,484,491,501,509,518,526,534,542,550,558,566,575,583,597,608],{"__ignoreMap":318},[322,452,453,455],{"class":324,"line":325},[322,454,250],{"class":328},[322,456,333],{"class":332},[322,458,459,461,464,466],{"class":324,"line":336},[322,460,367],{"class":332},[322,462,463],{"class":328},"setup",[322,465,342],{"class":332},[322,467,375],{"class":345},[322,469,470,473],{"class":324,"line":349},[322,471,472],{"class":328},"    build",[322,474,333],{"class":332},[322,476,477,480,482],{"class":324,"line":356},[322,478,479],{"class":328},"      base",[322,481,342],{"class":332},[322,483,386],{"class":345},[322,485,486,489],{"class":324,"line":364},[322,487,488],{"class":328},"      envVariables",[322,490,333],{"class":332},[322,492,493,496,498],{"class":324,"line":378},[322,494,495],{"class":328},"        SERVER_PRESET",[322,497,342],{"class":332},[322,499,500],{"class":345},"zerops\n",[322,502,504,507],{"class":324,"line":503},7,[322,505,506],{"class":328},"      buildCommands",[322,508,333],{"class":332},[322,510,512,515],{"class":324,"line":511},8,[322,513,514],{"class":332},"        - ",[322,516,517],{"class":345},"pnpm i\n",[322,519,521,523],{"class":324,"line":520},9,[322,522,514],{"class":332},[322,524,525],{"class":345},"pnpm run build\n",[322,527,529,532],{"class":324,"line":528},10,[322,530,531],{"class":328},"      deployFiles",[322,533,333],{"class":332},[322,535,537,539],{"class":324,"line":536},11,[322,538,514],{"class":332},[322,540,541],{"class":345},".output\n",[322,543,545,547],{"class":324,"line":544},12,[322,546,514],{"class":332},[322,548,549],{"class":345},"package.json\n",[322,551,553,555],{"class":324,"line":552},13,[322,554,514],{"class":332},[322,556,557],{"class":345},"node_modules\n",[322,559,561,564],{"class":324,"line":560},14,[322,562,563],{"class":328},"    run",[322,565,333],{"class":332},[322,567,569,571,573],{"class":324,"line":568},15,[322,570,479],{"class":328},[322,572,342],{"class":332},[322,574,386],{"class":345},[322,576,578,581],{"class":324,"line":577},16,[322,579,580],{"class":328},"      ports",[322,582,333],{"class":332},[322,584,586,588,591,593],{"class":324,"line":585},17,[322,587,514],{"class":332},[322,589,590],{"class":328},"port",[322,592,342],{"class":332},[322,594,596],{"class":595},"suiK_","3000\n",[322,598,600,603,605],{"class":324,"line":599},18,[322,601,602],{"class":328},"          httpSupport",[322,604,342],{"class":332},[322,606,607],{"class":595},"true\n",[322,609,611,614,616],{"class":324,"line":610},19,[322,612,613],{"class":328},"      start",[322,615,342],{"class":332},[322,617,618],{"class":345},"node .output/server/index.mjs\n",[312,620,623],{"className":314,"code":621,"filename":622,"language":317,"meta":318,"style":318},"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)",[248,624,625,631,641,647,655,661,670,676,682,689,695,702,708],{"__ignoreMap":318},[322,626,627,629],{"class":324,"line":325},[322,628,250],{"class":328},[322,630,333],{"class":332},[322,632,633,635,637,639],{"class":324,"line":336},[322,634,367],{"class":332},[322,636,463],{"class":328},[322,638,342],{"class":332},[322,640,375],{"class":345},[322,642,643,645],{"class":324,"line":349},[322,644,472],{"class":328},[322,646,333],{"class":332},[322,648,649,651,653],{"class":324,"line":356},[322,650,479],{"class":328},[322,652,342],{"class":332},[322,654,386],{"class":345},[322,656,657,659],{"class":324,"line":364},[322,658,488],{"class":328},[322,660,333],{"class":332},[322,662,663,665,667],{"class":324,"line":378},[322,664,495],{"class":328},[322,666,342],{"class":332},[322,668,669],{"class":345},"zerops-static\n",[322,671,672,674],{"class":324,"line":503},[322,673,506],{"class":328},[322,675,333],{"class":332},[322,677,678,680],{"class":324,"line":511},[322,679,514],{"class":332},[322,681,517],{"class":345},[322,683,684,686],{"class":324,"line":520},[322,685,514],{"class":332},[322,687,688],{"class":345},"pnpm build\n",[322,690,691,693],{"class":324,"line":528},[322,692,531],{"class":328},[322,694,333],{"class":332},[322,696,697,699],{"class":324,"line":536},[322,698,514],{"class":332},[322,700,701],{"class":345},".zerops/output/static/~\n",[322,703,704,706],{"class":324,"line":544},[322,705,563],{"class":328},[322,707,333],{"class":332},[322,709,710,712,714],{"class":324,"line":552},[322,711,479],{"class":328},[322,713,342],{"class":332},[322,715,435],{"class":345},[240,717,718,719,723,724,729,730,735],{},"Now you can trigger the ",[274,720,722],{"href":721},"#building-deploying-your-app","build & deploy pipeline using the Zerops CLI"," or by connecting the app service with your ",[274,725,728],{"href":726,"rel":727},"https://docs.zerops.io/references/github-integration/",[278],"GitHub"," / ",[274,731,734],{"href":732,"rel":733},"https://docs.zerops.io/references/gitlab-integration",[278],"GitLab"," repository from inside the service detail.",[266,737,739],{"id":738},"build-and-deploy","Build and deploy",[240,741,742,743,748],{},"Open ",[274,744,747],{"href":745,"rel":746},"https://app.zerops.io/settings/token-management",[278],"Settings > Access Token Management"," in the Zerops app and generate a new access token.",[240,750,751],{},"Log in using your access token with the following command:",[753,754],"pm-x",{"command":755},"@zerops/zcli login \u003Ctoken>",[240,757,758,759,761],{},"Navigate to the root of your app (where ",[248,760,441],{}," is located) and run the following command to trigger the deploy:",[753,763],{"command":764},"@zerops/zcli push",[240,766,767,768,729,771,774],{},"Your code can be deployed automatically on each commit or a new tag by connecting the service with your ",[274,769,728],{"href":732,"rel":770},[278],[274,772,734],{"href":732,"rel":773},[278]," repository. This connection can be set up in the service detail.",[252,776],{"title":777,"to":778},"Zerops Documentation","https://docs.zerops.io/",[780,781,782],"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":318,"searchDepth":336,"depth":336,"links":784},[785,786,787],{"id":268,"depth":336,"text":269},{"id":293,"depth":336,"text":294},{"id":738,"depth":336,"text":739},"Deploy Nitro apps to Zerops.","md",{},{},{"title":225,"description":788},"ms10yH5VHpbHmTvfW1mbLP2yAVXN5p_vp5JZbHKPYNU",[795,797],{"title":221,"path":222,"stem":223,"description":796,"children":-1},"Deploy Nitro apps to Zeabur.",{"title":229,"path":230,"stem":231,"description":318,"icon":70,"children":-1},1778145701764]