[{"data":1,"prerenderedAt":476},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fgetting-started\u002Finstallation":137,"\u002Fdocs\u002Fgetting-started\u002Finstallation-surround":471},[4,123],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":113},"Docs","i-lucide-book","\u002Fdocs","docs",[10,34,58,73,84,95,114],{"title":11,"path":12,"stem":13,"children":14,"icon":33},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[15,17,21,25,29],{"title":16,"path":12,"stem":13},"Introduction",{"title":18,"path":19,"stem":20},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation",{"title":22,"path":23,"stem":24},"Deploy","\u002Fdocs\u002Fgetting-started\u002Fdeploy","docs\u002F1.getting-started\u002F3.deploy",{"title":26,"path":27,"stem":28},"Migration","\u002Fdocs\u002Fgetting-started\u002Fmigration","docs\u002F1.getting-started\u002F4.migration",{"title":30,"path":31,"stem":32},"Environments","\u002Fdocs\u002Fgetting-started\u002Fenvironments","docs\u002F1.getting-started\u002F5.environments","i-lucide-rocket",{"title":35,"path":36,"stem":37,"children":38,"icon":57},"Database","\u002Fdocs\u002Fdatabase","docs\u002F2.database\u002F1.index",[39,41,45,49,53],{"title":40,"path":36,"stem":37},"Setup",{"title":42,"path":43,"stem":44},"Schema","\u002Fdocs\u002Fdatabase\u002Fschema","docs\u002F2.database\u002F2.schema",{"title":46,"path":47,"stem":48},"Queries","\u002Fdocs\u002Fdatabase\u002Fquery","docs\u002F2.database\u002F3.query",{"title":50,"path":51,"stem":52},"Migrations","\u002Fdocs\u002Fdatabase\u002Fmigrations","docs\u002F2.database\u002F4.migrations",{"title":54,"path":55,"stem":56},"CLI","\u002Fdocs\u002Fdatabase\u002Fcli","docs\u002F2.database\u002Fcli","i-lucide-database",{"title":59,"path":60,"stem":61,"children":62,"icon":72},"Blob","\u002Fdocs\u002Fblob","docs\u002F3.blob\u002F1.index",[63,64,68],{"title":40,"path":60,"stem":61},{"title":65,"path":66,"stem":67},"Upload","\u002Fdocs\u002Fblob\u002Fupload","docs\u002F3.blob\u002F2.upload",{"title":69,"path":70,"stem":71},"Blob SDK","\u002Fdocs\u002Fblob\u002Fusage","docs\u002F3.blob\u002F3.usage","i-lucide-shapes",{"title":74,"path":75,"stem":76,"children":77,"icon":83},"Key Value","\u002Fdocs\u002Fkv","docs\u002F4.kv\u002F1.index",[78,79],{"title":40,"path":75,"stem":76},{"title":80,"path":81,"stem":82},"KV SDK","\u002Fdocs\u002Fkv\u002Fusage","docs\u002F4.kv\u002F2.usage","i-lucide-list",{"title":85,"path":86,"stem":87,"children":88,"icon":94},"Cache","\u002Fdocs\u002Fcache","docs\u002F5.cache\u002F1.index",[89,90],{"title":40,"path":86,"stem":87},{"title":91,"path":92,"stem":93},"Usage","\u002Fdocs\u002Fcache\u002Fusage","docs\u002F5.cache\u002F2.usage","i-lucide-zap",{"title":96,"icon":97,"path":98,"stem":99,"children":100,"page":113},"Guides","i-lucide-book-text","\u002Fdocs\u002Fguides","docs\u002F6.guides",[101,105,109],{"title":102,"path":103,"stem":104},"Pre-rendering","\u002Fdocs\u002Fguides\u002Fpre-rendering","docs\u002F6.guides\u002F1.pre-rendering",{"title":106,"path":107,"stem":108},"Realtime","\u002Fdocs\u002Fguides\u002Frealtime","docs\u002F6.guides\u002F2.realtime",{"title":110,"path":111,"stem":112},"CI\u002FCD","\u002Fdocs\u002Fguides\u002Fci-cd","docs\u002F6.guides\u002F3.ci-cd",false,{"title":115,"path":116,"stem":117,"children":118,"page":113},"Reference","\u002Fdocs\u002Freference","docs\u002F7.reference",[119],{"title":120,"path":121,"stem":122},"Environment Variables","\u002Fdocs\u002Freference\u002Fenvironment-variables","docs\u002F7.reference\u002F1.environment-variables",{"title":124,"icon":125,"path":126,"stem":127,"children":128,"page":113},"Changelog","i-lucide-megaphone","\u002Fchangelog","changelog",[129,133],{"title":130,"path":131,"stem":132},"NuxtHub Multi-Vendor is now available","\u002Fchangelog\u002Fnuxthub-multi-vendor","changelog\u002Fnuxthub-multi-vendor",{"title":134,"path":135,"stem":136},"Self-Hosting First & Cloud-Agnostic Future","\u002Fchangelog\u002Fself-hosting-first","changelog\u002Fself-hosting-first",{"id":138,"title":18,"body":139,"description":464,"extension":465,"links":466,"meta":467,"navigation":468,"path":19,"seo":469,"stem":20,"__hash__":470},"docs\u002Fdocs\u002F1.getting-started\u002F2.installation.md",{"type":140,"value":141,"toc":459},"minimark",[142,147,157,169,174,178,185,217,232,235,247,251,258,345,448,455],[143,144,146],"h2",{"id":145},"quickstart","Quickstart",[148,149,150,151,156],"p",{},"The easiest way to get started with NuxtHub is to start with one of ",[152,153,155],"a",{"href":154},"\u002Ftemplates","our templates",". It includes all the necessary configuration and resources to get you started.",[148,158,159,160,164,165,168],{},"Click on the ",[161,162,163],"code",{},"GitHub"," button, then once on GitHub, click on ",[161,166,167],{},"Use this template"," to create a new repository based on the template.",[170,171,173],"callout",{"icon":172,"to":154},"i-lucide-panels-top-left","Explore NuxtHub templates.",[143,175,177],{"id":176},"add-to-a-nuxt-project","Add to a Nuxt project",[179,180,181],"ol",{},[182,183,184],"li",{},"Install the NuxtHub module to your project:",[186,187,193],"pre",{"className":188,"code":189,"filename":190,"language":191,"meta":192,"style":192},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx nuxi module add hub\n","Terminal","bash","",[161,194,195],{"__ignoreMap":192},[196,197,200,204,208,211,214],"span",{"class":198,"line":199},"line",1,[196,201,203],{"class":202},"sBMFI","npx",[196,205,207],{"class":206},"sfazB"," nuxi",[196,209,210],{"class":206}," module",[196,212,213],{"class":206}," add",[196,215,216],{"class":206}," hub\n",[148,218,219,220,223,224,227,228,231],{},"This command will install ",[161,221,222],{},"@nuxthub\u002Fcore"," as dependency and add it to your ",[161,225,226],{},"modules"," section of your ",[161,229,230],{},"nuxt.config",".",[148,233,234],{},"That's it! You can now use NuxtHub features in your Nuxt project.",[236,237,238,239,242,243,246],"note",{},"NuxtHub will create a ",[161,240,241],{},".data"," directory in your project root, which contains the necessary configuration files and resources for the features to work. It will also add it to the ",[161,244,245],{},".gitignore"," file to avoid committing it to your repository.",[143,248,250],{"id":249},"options","Options",[148,252,253,254,257],{},"Configure options in your ",[161,255,256],{},"nuxt.config.ts"," as such:",[186,259,263],{"className":260,"code":261,"filename":256,"language":262,"meta":192,"style":192},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['@nuxthub\u002Fcore'],\n  hub: {\n    \u002F\u002F NuxtHub options\n  }\n})\n","ts",[161,264,265,286,312,323,330,336],{"__ignoreMap":192},[196,266,267,271,274,278,282],{"class":198,"line":199},[196,268,270],{"class":269},"s7zQu","export",[196,272,273],{"class":269}," default",[196,275,277],{"class":276},"s2Zo4"," defineNuxtConfig",[196,279,281],{"class":280},"sTEyZ","(",[196,283,285],{"class":284},"sMK4o","{\n",[196,287,289,293,296,299,302,304,306,309],{"class":198,"line":288},2,[196,290,292],{"class":291},"swJcz","  modules",[196,294,295],{"class":284},":",[196,297,298],{"class":280}," [",[196,300,301],{"class":284},"'",[196,303,222],{"class":206},[196,305,301],{"class":284},[196,307,308],{"class":280},"]",[196,310,311],{"class":284},",\n",[196,313,315,318,320],{"class":198,"line":314},3,[196,316,317],{"class":291},"  hub",[196,319,295],{"class":284},[196,321,322],{"class":284}," {\n",[196,324,326],{"class":198,"line":325},4,[196,327,329],{"class":328},"sHwdD","    \u002F\u002F NuxtHub options\n",[196,331,333],{"class":198,"line":332},5,[196,334,335],{"class":284},"  }\n",[196,337,339,342],{"class":198,"line":338},6,[196,340,341],{"class":284},"}",[196,343,344],{"class":280},")\n",[346,347,348,370,393,425,440],"field-group",{},[349,350,353,354,357,358,361,362,365,366,369],"field",{"name":351,"type":352},"blob","boolean | BlobConfig","Default to ",[161,355,356],{},"false"," - Enables blob storage to store static assets, such as images, videos and more. Set to ",[161,359,360],{},"true"," for auto-configuration based on your hosting provider (Cloudflare R2, Vercel Blob, AWS S3, etc.), or provide a ",[161,363,364],{},"BlobConfig"," object with ",[161,367,368],{},"driver"," and driver-specific options.",[349,371,353,374,376,377,380,381,384,385,387,388,365,391,369],{"name":372,"type":373},"cache","boolean | CacheConfig",[161,375,356],{}," - Enables cache storage to cache your server route responses or functions using Nitro's ",[161,378,379],{},"cachedEventHandler"," and ",[161,382,383],{},"cachedFunction",". Set to ",[161,386,360],{}," for auto-configuration based on your hosting provider, or provide a ",[161,389,390],{},"CacheConfig",[161,392,368],{},[349,394,353,397,399,400,403,404,407,408,411,412,365,415,403,418,420,421,424],{"name":395,"type":396},"db","'postgresql' | 'sqlite' | 'mysql' | DatabaseConfig",[161,398,356],{}," - Enables SQL database to store your application's data. Set to a dialect string (",[161,401,402],{},"'postgresql'",", ",[161,405,406],{},"'sqlite'",", or ",[161,409,410],{},"'mysql'",") for zero-config setup, or provide a ",[161,413,414],{},"DatabaseConfig",[161,416,417],{},"dialect",[161,419,368],{},", and ",[161,422,423],{},"connection"," details.",[349,426,353,429,431,432,434,435,365,438,369],{"name":427,"type":428},"kv","boolean | KVConfig",[161,430,356],{}," - Enables Key-Value storage to store JSON data. Set to ",[161,433,360],{}," for auto-configuration based on your hosting provider (Cloudflare KV, Vercel Redis, Deno KV), or provide a ",[161,436,437],{},"KVConfig",[161,439,368],{},[349,441,353,444,447],{"name":442,"type":443},"dir","string",[161,445,446],{},"'.data'"," - The directory used for storage (database, kv, cache, etc.) during local development.",[449,450,451,452,231],"tip",{"icon":33},"You're all set! Now, let's dive into ",[152,453,454],{"href":23},"deploying it",[456,457,458],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":192,"searchDepth":288,"depth":288,"links":460},[461,462,463],{"id":145,"depth":288,"text":146},{"id":176,"depth":288,"text":177},{"id":249,"depth":288,"text":250},"Learn how to create a NuxtHub project or add it to your current Nuxt project.","md",null,{},true,{"title":18,"description":464},"ptB-7TtFOmzQfadnLsa71MCgS86kJvOHgKkMUT2zVIc",[472,474],{"title":16,"path":12,"stem":13,"description":473,"children":-1},"NuxtHub helps you build and deploy full-stack Nuxt applications.",{"title":22,"path":23,"stem":24,"description":475,"children":-1},"Learn how to host a full-stack Nuxt application with minimal configuration.",1792441195427]