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