[{"data":1,"prerenderedAt":314},["ShallowReactive",2],{"navigation_docs_en":3,"-en-guide-deployment":88,"-en-guide-deployment-surround":309},[4,18,51],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Getting Started","\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[9,13],{"title":10,"path":11,"stem":12},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F1.getting-started\u002F1.introduction",{"title":14,"path":15,"stem":16},"Installation & Setup","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F1.getting-started\u002F2.installation",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Guide","\u002Fen\u002Fguide","en\u002F2.guide",[23,27,31,35,39,43,47],{"title":24,"path":25,"stem":26},"Contextual Editing","\u002Fen\u002Fguide\u002Fcontextual-editing","en\u002F2.guide\u002F1.contextual-editing",{"title":28,"path":29,"stem":30},"Preview Mode","\u002Fen\u002Fguide\u002Fpreview-mode","en\u002F2.guide\u002F2.preview-mode",{"title":32,"path":33,"stem":34},"Tina Cloud & Editing Modes","\u002Fen\u002Fguide\u002Ftina-cloud","en\u002F2.guide\u002F3.tina-cloud",{"title":36,"path":37,"stem":38},"Nuxt Content Compatibility","\u002Fen\u002Fguide\u002Fnuxt-content","en\u002F2.guide\u002F4.nuxt-content",{"title":40,"path":41,"stem":42},"Media","\u002Fen\u002Fguide\u002Fmedia","en\u002F2.guide\u002F5.media",{"title":44,"path":45,"stem":46},"Advanced Rich-Text","\u002Fen\u002Fguide\u002Frich-text-advanced","en\u002F2.guide\u002F6.rich-text-advanced",{"title":48,"path":49,"stem":50},"Deployment","\u002Fen\u002Fguide\u002Fdeployment","en\u002F2.guide\u002F7.deployment",{"title":52,"path":53,"stem":54,"children":55,"page":17},"Api","\u002Fen\u002Fapi","en\u002F3.api",[56,60,64,68,72,76,80,84],{"title":57,"path":58,"stem":59},"useTina()","\u002Fen\u002Fapi\u002Fuse-tina","en\u002F3.api\u002F1.use-tina",{"title":61,"path":62,"stem":63},"useTinaBridge()","\u002Fen\u002Fapi\u002Fuse-tina-bridge","en\u002F3.api\u002F2.use-tina-bridge",{"title":65,"path":66,"stem":67},"useTinaPreview()","\u002Fen\u002Fapi\u002Fuse-tina-preview","en\u002F3.api\u002F3.use-tina-preview",{"title":69,"path":70,"stem":71},"\u003CTinaProvider>","\u002Fen\u002Fapi\u002Ftina-provider","en\u002F3.api\u002F4.tina-provider",{"title":73,"path":74,"stem":75},"\u003CTinaMarkdown>","\u002Fen\u002Fapi\u002Ftina-markdown","en\u002F3.api\u002F5.tina-markdown",{"title":77,"path":78,"stem":79},"\u003CTinaMermaid>","\u002Fen\u002Fapi\u002Ftina-mermaid","en\u002F3.api\u002F6.tina-mermaid",{"title":81,"path":82,"stem":83},"Module Configuration","\u002Fen\u002Fapi\u002Fconfiguration","en\u002F3.api\u002F7.configuration",{"title":85,"path":86,"stem":87},"Field Types","\u002Fen\u002Fapi\u002Ffield-types","en\u002F3.api\u002F8.field-types",{"id":89,"title":48,"body":90,"description":302,"extension":303,"links":304,"meta":305,"navigation":306,"path":49,"seo":307,"stem":50,"__hash__":308},"docs_en\u002Fen\u002F2.guide\u002F7.deployment.md",{"type":91,"value":92,"toc":297},"minimark",[93,114,119,133,164,180,184,187,211,214,234,250,254,293],[94,95,97],"div",{"dataTinaFieldWarning":96},"",[98,99,100,104,105,109,110,113],"p",{},[101,102,103],"strong",{},"Not independently verified against a live deploy."," This guide is based on how ",[106,107,108],"code",{},"tinacms build"," \u002F ",[106,111,112],{},"nuxt build"," behave locally, plus standard hosting-provider conventions: not a confirmed production deploy of an app using this module. If a step turns out wrong when you try it, let us know so this page can be corrected.",[115,116,118],"h2",{"id":117},"build-command","Build command",[98,120,121,122,125,126,128,129,132],{},"Unlike dev (",[106,123,124],{},"tinacms dev -c \"nuxt dev\"",", which always runs in local mode), a production build needs ",[106,127,108],{}," (not ",[106,130,131],{},"dev",") so the admin gets built as a static bundle that connects to Tina Cloud, instead of local mode:",[134,135,139],"pre",{"className":136,"code":137,"language":138,"meta":96,"style":96},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","tinacms build && nuxt build\n","bash",[106,140,141],{"__ignoreMap":96},[142,143,146,150,154,158,161],"span",{"class":144,"line":145},"line",1,[142,147,149],{"class":148},"sBMFI","tinacms",[142,151,153],{"class":152},"sfazB"," build",[142,155,157],{"class":156},"sMK4o"," &&",[142,159,160],{"class":148}," nuxt",[142,162,163],{"class":152}," build\n",[98,165,166,168,169,172,173,176,177,179],{},[106,167,108],{}," generates ",[106,170,171],{},"tina\u002F__generated__\u002Fclient.ts"," (used by your server routes) and the production admin bundle (served from ",[106,174,175],{},"public\u002Fadmin\u002F","), then ",[106,178,112],{}," builds the Nuxt app itself.",[115,181,183],{"id":182},"environment-variables","Environment variables",[98,185,186],{},"Set these on your hosting provider (production and preview environments):",[134,188,192],{"className":189,"code":190,"language":191,"meta":96,"style":96},"language-env shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","NUXT_TINA_CLIENT_ID=\nNUXT_TINA_TOKEN=\nNUXT_TINA_BRANCH=main\n","env",[106,193,194,199,205],{"__ignoreMap":96},[142,195,196],{"class":144,"line":145},[142,197,198],{},"NUXT_TINA_CLIENT_ID=\n",[142,200,202],{"class":144,"line":201},2,[142,203,204],{},"NUXT_TINA_TOKEN=\n",[142,206,208],{"class":144,"line":207},3,[142,209,210],{},"NUXT_TINA_BRANCH=main\n",[98,212,213],{},"If you're also using Cloudinary:",[134,215,217],{"className":189,"code":216,"language":191,"meta":96,"style":96},"NUXT_TINA_CLOUDINARY_CLOUD_NAME=\nNUXT_TINA_CLOUDINARY_API_KEY=\nNUXT_TINA_CLOUDINARY_API_SECRET=\n",[106,218,219,224,229],{"__ignoreMap":96},[142,220,221],{"class":144,"line":145},[142,222,223],{},"NUXT_TINA_CLOUDINARY_CLOUD_NAME=\n",[142,225,226],{"class":144,"line":201},[142,227,228],{},"NUXT_TINA_CLOUDINARY_API_KEY=\n",[142,230,231],{"class":144,"line":207},[142,232,233],{},"NUXT_TINA_CLOUDINARY_API_SECRET=\n",[98,235,236,237,242,243,245,246,249],{},"See ",[238,239,241],"a",{"href":240},"\u002Fguide\u002Fmedia","Media & Cloudinary"," for the full picture: Cloudinary needs a couple more env vars beyond these, read by the ",[106,244,149],{}," CLI and by ",[106,247,248],{},"next-tinacms-cloudinary"," under their own naming conventions.",[115,251,253],{"id":252},"what-to-check-on-a-real-deploy","What to check on a real deploy",[255,256,257,268,279],"ul",{},[258,259,260,261,264,265,267],"li",{},"That ",[106,262,263],{},"\u002Fadmin\u002Findex.html"," is served correctly as a static asset from ",[106,266,175],{}," in your hosting provider's environment.",[258,269,270,271,274,275,278],{},"That the Tina Cloud login actually appears (not \"local mode\"), that's the main signal a production build is configured correctly, the same thing verified locally in ",[238,272,32],{"href":273},"\u002Fguide\u002Ftina-cloud"," via ",[106,276,277],{},"nuxi preview",", but not yet on a real hosting provider.",[258,280,281,282,285,286,288,289,292],{},"If you're deploying inside a monorepo (module + app in the same repo, or ",[106,283,284],{},"tina\u002Fconfig.ts"," outside the app's root), your provider's root directory \u002F build command settings likely need adjusting so ",[106,287,284],{}," and ",[106,290,291],{},"content\u002F"," are reachable from the build step.",[294,295,296],"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 pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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);}",{"title":96,"searchDepth":201,"depth":201,"links":298},[299,300,301],{"id":117,"depth":201,"text":118},{"id":182,"depth":201,"text":183},{"id":252,"depth":201,"text":253},"Building a production admin, and what to set on your hosting provider.","md",null,{},true,{"title":48,"description":302},"me5bO8Y7LqrRZWwcquIGvlTkbJlL56lpEqiL4PdDb-o",[310,312],{"title":44,"path":45,"stem":46,"description":311,"children":-1},"Mermaid diagrams and custom templates in a rich-text field, plus one gotcha about the parser.",{"title":57,"path":58,"stem":59,"description":313,"children":-1},"API reference for the useTina() composable.",1789757558048]