[{"data":1,"prerenderedAt":539},["ShallowReactive",2],{"navigation_docs":3,"-docs-registries-run":145,"-docs-registries-run-surround":534},[4,8,12,16,51,81,103],{"title":5,"path":6,"stem":7},"Introduction","\u002Fdocs\u002Fintroduction","docs\u002F1.introduction",{"title":9,"path":10,"stem":11},"Getting started","\u002Fdocs\u002Fgetting-started","docs\u002F2.getting-started",{"title":13,"path":14,"stem":15},"Environment variables","\u002Fdocs\u002Fenvironment-variables","docs\u002F3.environment-variables",{"title":17,"icon":18,"path":19,"stem":20,"children":21,"page":50},"Guide","i-lucide-book-open","\u002Fdocs\u002Fguide","docs\u002F4.guide",[22,26,30,34,38,42,46],{"title":23,"path":24,"stem":25},"Scaffold a project","\u002Fdocs\u002Fguide\u002Fscaffold","docs\u002F4.guide\u002F1.scaffold",{"title":27,"path":28,"stem":29},"Pin and manage templates","\u002Fdocs\u002Fguide\u002Fpin","docs\u002F4.guide\u002F2.pin",{"title":31,"path":32,"stem":33},"Update pinned templates","\u002Fdocs\u002Fguide\u002Fupdating","docs\u002F4.guide\u002F3.updating",{"title":35,"path":36,"stem":37},"Find templates","\u002Fdocs\u002Fguide\u002Fsearch","docs\u002F4.guide\u002F4.search",{"title":39,"path":40,"stem":41},"Manage registries","\u002Fdocs\u002Fguide\u002Fregistry","docs\u002F4.guide\u002F5.registry",{"title":43,"path":44,"stem":45},"Troubleshooting","\u002Fdocs\u002Fguide\u002Ftroubleshooting","docs\u002F4.guide\u002F6.troubleshooting",{"title":47,"path":48,"stem":49},"Build your first template","\u002Fdocs\u002Fguide\u002Fcreate-template","docs\u002F4.guide\u002F7.create-template",false,{"title":52,"icon":53,"path":54,"stem":55,"children":56,"page":50},"Templates","i-lucide-layout-template","\u002Fdocs\u002Ftemplates","docs\u002F5.templates",[57,61,65,69,73,77],{"title":58,"path":59,"stem":60},"Template anatomy","\u002Fdocs\u002Ftemplates\u002Fanatomy","docs\u002F5.templates\u002F1.anatomy",{"title":62,"path":63,"stem":64},"Template params","\u002Fdocs\u002Ftemplates\u002Fparams","docs\u002F5.templates\u002F2.params",{"title":66,"path":67,"stem":68},"Template rendering","\u002Fdocs\u002Ftemplates\u002Ftemplate-rendering","docs\u002F5.templates\u002F3.template-rendering",{"title":70,"path":71,"stem":72},"Hooks","\u002Fdocs\u002Ftemplates\u002Fhooks","docs\u002F5.templates\u002F4.hooks",{"title":74,"path":75,"stem":76},"Publish a template","\u002Fdocs\u002Ftemplates\u002Fpublish","docs\u002F5.templates\u002F5.publish",{"title":78,"path":79,"stem":80},"spin.toml","\u002Fdocs\u002Ftemplates\u002Fspin-toml","docs\u002F5.templates\u002F6.spin-toml",{"title":82,"icon":83,"path":84,"stem":85,"children":86,"page":50},"Registries","i-lucide-database","\u002Fdocs\u002Fregistries","docs\u002F6.registries",[87,91,95,99],{"title":88,"path":89,"stem":90},"Registry anatomy","\u002Fdocs\u002Fregistries\u002Fanatomy","docs\u002F6.registries\u002F1.anatomy",{"title":92,"path":93,"stem":94},"Template metadata file","\u002Fdocs\u002Fregistries\u002Ftemplate-metadata","docs\u002F6.registries\u002F2.template-metadata",{"title":96,"path":97,"stem":98},"Run a registry","\u002Fdocs\u002Fregistries\u002Frun","docs\u002F6.registries\u002F3.run",{"title":100,"path":101,"stem":102},"registry.toml","\u002Fdocs\u002Fregistries\u002Fregistry-toml","docs\u002F6.registries\u002F4.registry-toml",{"title":104,"icon":105,"path":106,"stem":107,"children":108,"page":50},"Commands","i-lucide-terminal","\u002Fdocs\u002Fcommands","docs\u002F7.commands",[109,113,117,121,125,129,133,137,141],{"title":110,"path":111,"stem":112},"spin new","\u002Fdocs\u002Fcommands\u002Fnew","docs\u002F7.commands\u002F1.new",{"title":114,"path":115,"stem":116},"spin add","\u002Fdocs\u002Fcommands\u002Fadd","docs\u002F7.commands\u002F2.add",{"title":118,"path":119,"stem":120},"spin list","\u002Fdocs\u002Fcommands\u002Flist","docs\u002F7.commands\u002F3.list",{"title":122,"path":123,"stem":124},"spin update","\u002Fdocs\u002Fcommands\u002Fupdate","docs\u002F7.commands\u002F4.update",{"title":126,"path":127,"stem":128},"spin remove","\u002Fdocs\u002Fcommands\u002Fremove","docs\u002F7.commands\u002F5.remove",{"title":130,"path":131,"stem":132},"spin search","\u002Fdocs\u002Fcommands\u002Fsearch","docs\u002F7.commands\u002F6.search",{"title":134,"path":135,"stem":136},"spin registry","\u002Fdocs\u002Fcommands\u002Fregistry","docs\u002F7.commands\u002F7.registry",{"title":138,"path":139,"stem":140},"spin init","\u002Fdocs\u002Fcommands\u002Finit","docs\u002F7.commands\u002F8.init",{"title":142,"path":143,"stem":144},"spin version","\u002Fdocs\u002Fcommands\u002Fversion","docs\u002F7.commands\u002F9.version",{"id":146,"title":96,"body":147,"description":527,"extension":528,"links":529,"meta":530,"navigation":531,"path":97,"seo":532,"stem":98,"__hash__":533},"docs\u002Fdocs\u002F6.registries\u002F3.run.md",{"type":148,"value":149,"toc":520},"minimark",[150,155,187,194,249,255,351,355,387,391,460,463,480,484,487,503,507,516],[151,152,154],"h2",{"id":153},"create-a-registry","Create a registry",[156,157,162],"pre",{"className":158,"code":159,"language":160,"meta":161,"style":161},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","mkdir my-registry\ncd my-registry\n","sh","",[163,164,165,178],"code",{"__ignoreMap":161},[166,167,170,174],"span",{"class":168,"line":169},"line",1,[166,171,173],{"class":172},"sBMFI","mkdir",[166,175,177],{"class":176},"sfazB"," my-registry\n",[166,179,181,185],{"class":168,"line":180},2,[166,182,184],{"class":183},"s2Zo4","cd",[166,186,177],{"class":176},[188,189,190,191,193],"p",{},"Create ",[163,192,100],{},":",[156,195,199],{"className":196,"code":197,"language":198,"meta":161,"style":161},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","id = \"my-registry\"\nname = \"My Registry\"\ndescription = \"Templates for my team\"\n","toml",[163,200,201,220,234],{"__ignoreMap":161},[166,202,203,207,211,214,217],{"class":168,"line":169},[166,204,206],{"class":205},"sTEyZ","id ",[166,208,210],{"class":209},"sMK4o","=",[166,212,213],{"class":209}," \"",[166,215,216],{"class":176},"my-registry",[166,218,219],{"class":209},"\"\n",[166,221,222,225,227,229,232],{"class":168,"line":180},[166,223,224],{"class":205},"name ",[166,226,210],{"class":209},[166,228,213],{"class":209},[166,230,231],{"class":176},"My Registry",[166,233,219],{"class":209},[166,235,237,240,242,244,247],{"class":168,"line":236},3,[166,238,239],{"class":205},"description ",[166,241,210],{"class":209},[166,243,213],{"class":209},[166,245,246],{"class":176},"Templates for my team",[166,248,219],{"class":209},[188,250,190,251,254],{},[163,252,253],{},"templates\u002F"," with a metadata file per template:",[156,256,258],{"className":196,"code":257,"language":198,"meta":161,"style":161},"# templates\u002Fgo-cli.toml\nid = \"go-cli\"\nname = \"Go CLI\"\ndescription = \"Minimal Go CLI starter\"\nsource = \"https:\u002F\u002Fgithub.com\u002Fexample\u002Fgo-cli-template.git\"\nlanguage = \"go\"\ntype = \"cli\"\n",[163,259,260,266,279,292,306,321,336],{"__ignoreMap":161},[166,261,262],{"class":168,"line":169},[166,263,265],{"class":264},"sHwdD","# templates\u002Fgo-cli.toml\n",[166,267,268,270,272,274,277],{"class":168,"line":180},[166,269,206],{"class":205},[166,271,210],{"class":209},[166,273,213],{"class":209},[166,275,276],{"class":176},"go-cli",[166,278,219],{"class":209},[166,280,281,283,285,287,290],{"class":168,"line":236},[166,282,224],{"class":205},[166,284,210],{"class":209},[166,286,213],{"class":209},[166,288,289],{"class":176},"Go CLI",[166,291,219],{"class":209},[166,293,295,297,299,301,304],{"class":168,"line":294},4,[166,296,239],{"class":205},[166,298,210],{"class":209},[166,300,213],{"class":209},[166,302,303],{"class":176},"Minimal Go CLI starter",[166,305,219],{"class":209},[166,307,309,312,314,316,319],{"class":168,"line":308},5,[166,310,311],{"class":205},"source ",[166,313,210],{"class":209},[166,315,213],{"class":209},[166,317,318],{"class":176},"https:\u002F\u002Fgithub.com\u002Fexample\u002Fgo-cli-template.git",[166,320,219],{"class":209},[166,322,324,327,329,331,334],{"class":168,"line":323},6,[166,325,326],{"class":205},"language ",[166,328,210],{"class":209},[166,330,213],{"class":209},[166,332,333],{"class":176},"go",[166,335,219],{"class":209},[166,337,339,342,344,346,349],{"class":168,"line":338},7,[166,340,341],{"class":205},"type ",[166,343,210],{"class":209},[166,345,213],{"class":209},[166,347,348],{"class":176},"cli",[166,350,219],{"class":209},[151,352,354],{"id":353},"test-locally","Test locally",[156,356,358],{"className":158,"code":357,"language":160,"meta":161,"style":161},"spin registry add my-registry .\u002Fmy-registry\nspin search go\n",[163,359,360,377],{"__ignoreMap":161},[166,361,362,365,368,371,374],{"class":168,"line":169},[166,363,364],{"class":172},"spin",[166,366,367],{"class":176}," registry",[166,369,370],{"class":176}," add",[166,372,373],{"class":176}," my-registry",[166,375,376],{"class":176}," .\u002Fmy-registry\n",[166,378,379,381,384],{"class":168,"line":180},[166,380,364],{"class":172},[166,382,383],{"class":176}," search",[166,385,386],{"class":176}," go\n",[151,388,390],{"id":389},"publish-as-a-git-repo","Publish as a git repo",[156,392,394],{"className":158,"code":393,"language":160,"meta":161,"style":161},"git init\ngit add .\ngit commit -m \"init registry\"\ngit remote add origin https:\u002F\u002Fgithub.com\u002Fexample\u002Fmy-spin-registry.git\ngit push -u origin main\n",[163,395,396,404,413,430,445],{"__ignoreMap":161},[166,397,398,401],{"class":168,"line":169},[166,399,400],{"class":172},"git",[166,402,403],{"class":176}," init\n",[166,405,406,408,410],{"class":168,"line":180},[166,407,400],{"class":172},[166,409,370],{"class":176},[166,411,412],{"class":176}," .\n",[166,414,415,417,420,423,425,428],{"class":168,"line":236},[166,416,400],{"class":172},[166,418,419],{"class":176}," commit",[166,421,422],{"class":176}," -m",[166,424,213],{"class":209},[166,426,427],{"class":176},"init registry",[166,429,219],{"class":209},[166,431,432,434,437,439,442],{"class":168,"line":294},[166,433,400],{"class":172},[166,435,436],{"class":176}," remote",[166,438,370],{"class":176},[166,440,441],{"class":176}," origin",[166,443,444],{"class":176}," https:\u002F\u002Fgithub.com\u002Fexample\u002Fmy-spin-registry.git\n",[166,446,447,449,452,455,457],{"class":168,"line":308},[166,448,400],{"class":172},[166,450,451],{"class":176}," push",[166,453,454],{"class":176}," -u",[166,456,441],{"class":176},[166,458,459],{"class":176}," main\n",[188,461,462],{},"Users can then register it:",[156,464,466],{"className":158,"code":465,"language":160,"meta":161,"style":161},"spin registry add my-registry https:\u002F\u002Fgithub.com\u002Fexample\u002Fmy-spin-registry.git\n",[163,467,468],{"__ignoreMap":161},[166,469,470,472,474,476,478],{"class":168,"line":169},[166,471,364],{"class":172},[166,473,367],{"class":176},[166,475,370],{"class":176},[166,477,373],{"class":176},[166,479,444],{"class":176},[151,481,483],{"id":482},"update-the-registry","Update the registry",[188,485,486],{},"Push changes to the git repo, then tell users to update:",[156,488,490],{"className":158,"code":489,"language":160,"meta":161,"style":161},"spin registry update my-registry\n",[163,491,492],{"__ignoreMap":161},[166,493,494,496,498,501],{"class":168,"line":169},[166,495,364],{"class":172},[166,497,367],{"class":176},[166,499,500],{"class":176}," update",[166,502,177],{"class":176},[151,504,506],{"id":505},"validation","Validation",[188,508,509,511,512,515],{},[163,510,364],{}," skips invalid template metadata files during search. Use ",[163,513,514],{},"spin registry list"," to see how many templates each registry contributes.",[517,518,519],"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .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 .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":161,"searchDepth":180,"depth":180,"links":521},[522,523,524,525,526],{"id":153,"depth":180,"text":154},{"id":353,"depth":180,"text":354},{"id":389,"depth":180,"text":390},{"id":482,"depth":180,"text":483},{"id":505,"depth":180,"text":506},"You can run a registry from any git repo or local directory that follows the registry layout.","md",null,{},true,{"title":96,"description":527},"qRGPWt-gKHhc3Pxf3GCodV5Qsue0Uf1pmW0B99It15w",[535,537],{"title":92,"path":93,"stem":94,"description":536,"children":-1},"Each template in a registry is described by a file under templates\u002F\u003Cid>.toml.",{"title":100,"path":101,"stem":102,"description":538,"children":-1},"A registry is a directory that contains a registry.toml file and a templates\u002F subdirectory. Registries are registered with spin registry add \u003Calias> \u003Csource>.",1787755180240]