[{"data":1,"prerenderedAt":598},["ShallowReactive",2],{"navigation":3,"/docs/installation/install-npm-yarn":285,"/docs/installation/install-npm-yarn-surround":593},[4],{"title":5,"path":6,"stem":7,"children":8},"Introduction","/docs","docs/1.index",[9,10,36,53,70,83,100,121,138,155,176],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13,"children":14,"page":35},"Installation","/docs/installation","docs/1.installation",[15,19,23,27,31],{"title":16,"path":17,"stem":18},"Install to macOS","/docs/installation/install-macos","docs/1.installation/1.install-macos",{"title":20,"path":21,"stem":22},"Install to Windows","/docs/installation/install-windows","docs/1.installation/2.install-windows",{"title":24,"path":25,"stem":26},"Install to Linux","/docs/installation/install-linux","docs/1.installation/3.install-linux",{"title":28,"path":29,"stem":30},"Install via Composer","/docs/installation/install-composer","docs/1.installation/4.install-composer",{"title":32,"path":33,"stem":34},"Install via NPM/Yarn","/docs/installation/install-npm-yarn","docs/1.installation/5.install-npm-yarn",false,{"title":37,"path":38,"stem":39,"children":40,"page":35},"Community","/docs/community","docs/11.community",[41,45,49],{"title":42,"path":43,"stem":44},"Get Help","/docs/community/get-help","docs/11.community/1.get-help",{"title":46,"path":47,"stem":48},"Testing New Releases","/docs/community/testing","docs/11.community/2.testing",{"title":50,"path":51,"stem":52},"Contributing","/docs/community/contributing","docs/11.community/3.contributing",{"title":54,"path":55,"stem":56,"children":57,"page":35},"Getting Started","/docs/getting-started","docs/2.getting-started",[58,62,66],{"title":59,"path":60,"stem":61},"How Spin Works","/docs/getting-started/how-spin-works","docs/2.getting-started/1.how-spin-works",{"title":63,"path":64,"stem":65},"Create a New Project with Spin","/docs/getting-started/create-a-new-project-with-spin","docs/2.getting-started/2.create-a-new-project-with-spin",{"title":67,"path":68,"stem":69},"Add Spin to an Existing Project","/docs/getting-started/add-spin-to-an-existing-project","docs/2.getting-started/3.add-spin-to-an-existing-project",{"title":71,"path":72,"stem":73,"children":74,"page":35},"Development Environment","/docs/development-environment","docs/3.development-environment",[75,79],{"title":76,"path":77,"stem":78},"Starting Up Your Development Environment","/docs/development-environment/starting-up-your-development-environment","docs/3.development-environment/1.starting-up-your-development-environment",{"title":80,"path":81,"stem":82},"Running Commands in Development","/docs/development-environment/running-commands-in-development","docs/3.development-environment/2.running-commands-in-development",{"title":84,"path":85,"stem":86,"children":87,"page":35},"Server Configuration","/docs/server-configuration","docs/4.server-configuration",[88,92,96],{"title":89,"path":90,"stem":91},"Server Requirements","/docs/server-configuration/server-requirements","docs/4.server-configuration/1.server-requirements",{"title":93,"path":94,"stem":95},"Server Configuration Basics","/docs/server-configuration/server-configuration-basics","docs/4.server-configuration/2.server-configuration-basics",{"title":97,"path":98,"stem":99},".spin.yml Usage","/docs/server-configuration/spin-yml-usage","docs/4.server-configuration/3.spin-yml-usage",{"title":101,"path":102,"stem":103,"children":104,"page":35},"Providers","/docs/providers","docs/5.providers",[105,109,113,117],{"title":106,"path":107,"stem":108},"DigitalOcean","/docs/providers/digitalocean","docs/5.providers/0.digitalocean",{"title":110,"path":111,"stem":112},"Hetzner","/docs/providers/hetzner","docs/5.providers/0.hetzner",{"title":114,"path":115,"stem":116},"Vultr","/docs/providers/vultr","docs/5.providers/0.vultr",{"title":118,"path":119,"stem":120},"Use Any Host","/docs/providers/use-any-host","docs/5.providers/99.use-any-host",{"title":122,"path":123,"stem":124,"children":125,"page":35},"Deployment","/docs/deployment","docs/6.deployment",[126,130,134],{"title":127,"path":128,"stem":129},"Choosing a Deployment Strategy","/docs/deployment/choosing-a-deployment-strategy","docs/6.deployment/1.choosing-a-deployment-strategy",{"title":131,"path":132,"stem":133},"Automated Deployments with GitHub Actions","/docs/deployment/automated-deployments-with-github-actions","docs/6.deployment/2.automated-deployments-with-github-actions",{"title":135,"path":136,"stem":137},"Using \"spin deploy\"","/docs/deployment/using-spin-deploy","docs/6.deployment/3.using-spin-deploy",{"title":139,"path":140,"stem":141,"children":142,"page":35},"Server Access","/docs/server-access","docs/7.server-access",[143,147,151],{"title":144,"path":145,"stem":146},"Connecting to Your Server","/docs/server-access/connecting-to-your-server","docs/7.server-access/1.connecting-to-your-server",{"title":148,"path":149,"stem":150},"Troubleshooting Your Application","/docs/server-access/troubleshooting-your-application","docs/7.server-access/2.troubleshooting-your-application",{"title":152,"path":153,"stem":154},"Updating Your Server","/docs/server-access/updating-your-server","docs/7.server-access/3.updating-your-server",{"title":156,"path":157,"stem":158,"children":159,"page":35},"Advanced","/docs/advanced","docs/8.advanced",[160,164,168,172],{"title":161,"path":162,"stem":163},"Generating a Secure SSH Key","/docs/advanced/generating-a-secure-ssh-key","docs/8.advanced/2.generating-a-secure-ssh-key",{"title":165,"path":166,"stem":167},"Adding Other Services","/docs/advanced/adding-other-services","docs/8.advanced/3.adding-other-services",{"title":169,"path":170,"stem":171},"Create your own Spin Template","/docs/advanced/create-your-own-template","docs/8.advanced/99.create-your-own-template",{"title":173,"path":174,"stem":175},"Migrating from Spin v2 to v3","/docs/advanced/migrating-from-spin-v2-to-v3","docs/8.advanced/migrating-from-spin-v2-to-v3",{"title":177,"path":178,"stem":179,"children":180,"page":35},"Command Reference","/docs/command-reference","docs/9.command-reference",[181,185,189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281],{"title":182,"path":183,"stem":184},"base64","/docs/command-reference/base64","docs/9.command-reference/base64",{"title":186,"path":187,"stem":188},"build","/docs/command-reference/build","docs/9.command-reference/build",{"title":190,"path":191,"stem":192},"configure","/docs/command-reference/configure","docs/9.command-reference/configure",{"title":194,"path":195,"stem":196},"debug","/docs/command-reference/debug","docs/9.command-reference/debug",{"title":198,"path":199,"stem":200},"deploy","/docs/command-reference/deploy","docs/9.command-reference/deploy",{"title":202,"path":203,"stem":204},"down","/docs/command-reference/down","docs/9.command-reference/down",{"title":206,"path":207,"stem":208},"exec","/docs/command-reference/exec","docs/9.command-reference/exec",{"title":210,"path":211,"stem":212},"gh","/docs/command-reference/gh","docs/9.command-reference/gh",{"title":214,"path":215,"stem":216},"help","/docs/command-reference/help","docs/9.command-reference/help",{"title":218,"path":219,"stem":220},"init","/docs/command-reference/init","docs/9.command-reference/init",{"title":222,"path":223,"stem":224},"kill","/docs/command-reference/kill","docs/9.command-reference/kill",{"title":226,"path":227,"stem":228},"latest","/docs/command-reference/latest","docs/9.command-reference/latest",{"title":230,"path":231,"stem":232},"logs","/docs/command-reference/logs","docs/9.command-reference/logs",{"title":234,"path":235,"stem":236},"maintain","/docs/command-reference/maintain","docs/9.command-reference/maintain",{"title":238,"path":239,"stem":240},"mkpasswd","/docs/command-reference/mkpasswd","docs/9.command-reference/mkpasswd",{"title":242,"path":243,"stem":244},"new","/docs/command-reference/new","docs/9.command-reference/new",{"title":246,"path":247,"stem":248},"provision","/docs/command-reference/provision","docs/9.command-reference/provision",{"title":250,"path":251,"stem":252},"prune","/docs/command-reference/prune","docs/9.command-reference/prune",{"title":254,"path":255,"stem":256},"ps","/docs/command-reference/ps","docs/9.command-reference/ps",{"title":258,"path":259,"stem":260},"pull","/docs/command-reference/pull","docs/9.command-reference/pull",{"title":262,"path":263,"stem":264},"run","/docs/command-reference/run","docs/9.command-reference/run",{"title":266,"path":267,"stem":268},"stop","/docs/command-reference/stop","docs/9.command-reference/stop",{"title":270,"path":271,"stem":272},"up","/docs/command-reference/up","docs/9.command-reference/up",{"title":274,"path":275,"stem":276},"update","/docs/command-reference/update","docs/9.command-reference/update",{"title":278,"path":279,"stem":280},"vault","/docs/command-reference/vault","docs/9.command-reference/vault",{"title":282,"path":283,"stem":284},"version","/docs/command-reference/version","docs/9.command-reference/version",{"id":286,"title":32,"body":287,"canonical":584,"description":296,"extension":585,"layout":586,"meta":587,"navigation":590,"path":33,"seo":591,"stem":34,"__hash__":592},"docs/docs/1.installation/5.install-npm-yarn.md",{"type":288,"value":289,"toc":574},"minimark",[290,297,307,327,337,352,417,457,461,467,481,486,500,511,541,547,551,557,570],[291,292,293],"lead-p",{},[294,295,296],"p",{},"Spin can be installed using NPM or Yarn, two popular JavaScript package managers. This enables you to make Spin accessible without other developers doing any steps on their end.",[298,299,301,302,306],"h2",{"id":300},"add-spin-to-your-project-with-yarnnpm","Add ",[303,304,305],"code",{},"spin"," to your project with Yarn/NPM",[294,308,309,310,312,313,315,316],{},"Installing ",[303,311,305],{}," at the project level is a great way to deploy ",[303,314,305],{}," without much configuration from the user's end. ",[317,318,323,324,326],"a",{"href":319,"rel":320,"target":322},"https://www.npmjs.com/package/@serversideup/spin",[321],"nofollow","_blank","View ",[303,325,305],{}," on NPM →",[294,328,329,330,332,333],{},"We can use Docker to run install ",[303,331,305],{}," on your project. ",[334,335,336],"strong",{},"Run this command from the parent folder of your project.",[338,339,340],"note",{},[294,341,342,343,346,347],{},"The examples below are using ",[303,344,345],{},"node:latest",". Be sure to change the image name to match your version of Node that you're using for your project. ",[317,348,351],{"href":349,"rel":350,"target":322},"https://hub.docker.com/_/node/",[321],"See available versions →",[353,354,360],"pre",{"className":355,"code":356,"filename":357,"language":358,"meta":359,"style":359},"language-bash shiki shiki-themes material-theme-lighter github-dark github-dark","docker run --rm -v  $(pwd):/usr/app/src -w /usr/app/src/ node yarn add @serversideup/spin --dev\n","Install \"spin\" with Yarn + Docker","bash","",[303,361,362],{"__ignoreMap":359},[363,364,367,371,375,379,382,386,390,393,396,399,402,405,408,411,414],"span",{"class":365,"line":366},"line",1,[363,368,370],{"class":369},"soiBB","docker",[363,372,374],{"class":373},"s0vBq"," run",[363,376,378],{"class":377},"sSJ72"," --rm",[363,380,381],{"class":377}," -v",[363,383,385],{"class":384},"sG-J9","  $(",[363,387,389],{"class":388},"sUkpR","pwd",[363,391,392],{"class":384},")",[363,394,395],{"class":373},":/usr/app/src",[363,397,398],{"class":377}," -w",[363,400,401],{"class":373}," /usr/app/src/",[363,403,404],{"class":373}," node",[363,406,407],{"class":373}," yarn",[363,409,410],{"class":373}," add",[363,412,413],{"class":373}," @serversideup/spin",[363,415,416],{"class":377}," --dev\n",[353,418,421],{"className":355,"code":419,"filename":420,"language":358,"meta":359,"style":359},"docker run --rm -v  $(pwd):/usr/app/src -w /usr/app/src/ node npm install @serversideup/spin --dev\n","Install \"spin\" with NPM + Docker",[303,422,423],{"__ignoreMap":359},[363,424,425,427,429,431,433,435,437,439,441,443,445,447,450,453,455],{"class":365,"line":366},[363,426,370],{"class":369},[363,428,374],{"class":373},[363,430,378],{"class":377},[363,432,381],{"class":377},[363,434,385],{"class":384},[363,436,389],{"class":388},[363,438,392],{"class":384},[363,440,395],{"class":373},[363,442,398],{"class":377},[363,444,401],{"class":373},[363,446,404],{"class":373},[363,448,449],{"class":373}," npm",[363,451,452],{"class":373}," install",[363,454,413],{"class":373},[363,456,416],{"class":377},[298,458,460],{"id":459},"spin-is-installed","Spin is installed 🥳",[294,462,463,464,466],{},"You should now be able to access ",[303,465,305],{}," by running the command below.",[353,468,471],{"className":355,"code":469,"filename":470,"language":358,"meta":359,"style":359},"./node_modules/.bin/spin up\n","Run \"spin\" from your project",[303,472,473],{"__ignoreMap":359},[363,474,475,478],{"class":365,"line":366},[363,476,477],{"class":369},"./node_modules/.bin/spin",[363,479,480],{"class":373}," up\n",[482,483,485],"h3",{"id":484},"bonus-tip-use-an-alias","Bonus Tip: Use an alias",[294,487,488,489,491,492,495,496,499],{},"Rather than typing ",[303,490,477],{}," every time, you can add a \"smart alias\", which will check to see if it exists in your ",[303,493,494],{},"node_modules",", if not, it loads it from the ",[303,497,498],{},"vendor"," folder.",[294,501,502,503,506,507,510],{},"You can add the following below to your ",[303,504,505],{},"~/.bash_profile"," or your ",[303,508,509],{},"~/.zshrc",".",[353,512,515],{"className":355,"code":513,"filename":514,"language":358,"meta":359,"style":359},"alias spin='[ -f node_modules/.bin/spin ] && bash node_modules/.bin/spin || bash vendor/bin/spin'\n","Add to your shell profile (recommended)",[303,516,517],{"__ignoreMap":359},[363,518,519,523,527,531,535,538],{"class":365,"line":366},[363,520,522],{"class":521},"sFsEu","alias",[363,524,526],{"class":525},"sMo7A"," spin",[363,528,530],{"class":529},"sFfmW","=",[363,532,534],{"class":533},"sF_wb","'",[363,536,537],{"class":373},"[ -f node_modules/.bin/spin ] && bash node_modules/.bin/spin || bash vendor/bin/spin",[363,539,540],{"class":533},"'\n",[294,542,543,544,546],{},"You'll now be able to access ",[303,545,305],{}," from your project root directory.",[298,548,550],{"id":549},"initialize-your-project","Initialize Your Project",[294,552,553,554,510],{},"Once Spin is installed, you can follow the initialization wizard for your project by running ",[303,555,556],{},"spin init",[353,558,561],{"className":355,"code":559,"filename":560,"language":358,"meta":359,"style":359},"spin init\n","Initialize Spin with your project",[303,562,563],{"__ignoreMap":359},[363,564,565,567],{"class":365,"line":366},[363,566,305],{"class":369},[363,568,569],{"class":373}," init\n",[571,572,573],"style",{},"html pre.shiki code .soiBB, html code.shiki .soiBB{--shiki-light:#E2931D;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .s0vBq, html code.shiki .s0vBq{--shiki-light:#91B859;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .sSJ72, html code.shiki .sSJ72{--shiki-light:#91B859;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .sG-J9, html code.shiki .sG-J9{--shiki-light:#39ADB5;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sUkpR, html code.shiki .sUkpR{--shiki-light:#6182B8;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}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 .sFsEu, html code.shiki .sFsEu{--shiki-light:#9C3EDA;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .sMo7A, html code.shiki .sMo7A{--shiki-light:#90A4AE;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sFfmW, html code.shiki .sFfmW{--shiki-light:#39ADB5;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .sF_wb, html code.shiki .sF_wb{--shiki-light:#39ADB5;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}",{"title":359,"searchDepth":575,"depth":575,"links":576},2,[577,579,583],{"id":300,"depth":575,"text":578},"Add spin to your project with Yarn/NPM",{"id":459,"depth":575,"text":460,"children":580},[581],{"id":484,"depth":582,"text":485},3,{"id":549,"depth":575,"text":550},"https://serversideup.net/open-source/spin/docs/installation/install-npm-yarn","md","docs",{"head":588},{"title":589},"Install via NPM/Yarn - Spin by Server Side Up",true,{"title":32,"description":296},"bbCpS0nebDHvJzVb04DttYNSRHPNothS3GwHG1Jt_cc",[594,596],{"title":28,"path":29,"stem":30,"description":595,"children":-1},"Spin can be installed using Composer, a popular PHP package manager. This enables you to make Spin accessible without other developers doing any steps on their end.",{"title":42,"path":43,"stem":44,"description":597,"children":-1},"Learn how to get help with Spin.",1769465036879]