[{"data":1,"prerenderedAt":741},["ShallowReactive",2],{"navigation":3,"/docs/installation/install-linux":285,"/docs/installation/install-linux-surround":736},[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":24,"body":287,"canonical":727,"description":728,"extension":729,"layout":730,"meta":731,"navigation":676,"path":25,"seo":734,"stem":26,"__hash__":735},"docs/docs/1.installation/3.install-linux.md",{"type":288,"value":289,"toc":715},"minimark",[290,302,307,310,316,321,324,393,397,410,436,460,473,477,483,499,503,506,522,530,536,539,568,580,585,589,595,604,645,652,692,696,699,711],[291,292,293],"lead-p",{},[294,295,296,297,301],"p",{},"Spin is able to run on any Linux machine that supports Docker. Getting started is as simple as installing Docker, then running a single command to install ",[298,299,300],"code",{},"spin",".",[303,304,306],"h2",{"id":305},"prerequisites","Prerequisites",[294,308,309],{},"You must have a working installation of Docker.",[311,312,313],"note",{},[294,314,315],{},"Most Docker documentation will push you to install \"Docker Desktop\" on your Linux machine. This is completely unnecessary in our opinion. Instead of \"Docker Desktop\", we suggest installing the \"Docker Engine\" instead.",[317,318,320],"h3",{"id":319},"install-docker-engine","Install Docker Engine",[294,322,323],{},"Install \"Docker Engine\" following the official installation instructions:",[325,326,327,338,352,359,366,373,379,386],"ul",{},[328,329,330],"li",{},[331,332,337],"a",{"href":333,"rel":334,"target":336},"https://docs.docker.com/engine/install/centos/",[335],"nofollow","_blank","CentOS",[328,339,340,345,346,351],{},[331,341,344],{"href":342,"rel":343,"target":336},"https://docs.docker.com/engine/install/debian/",[335],"Debian"," (NOT for Ubuntu. Go ",[331,347,350],{"href":348,"rel":349,"target":336},"https://docs.docker.com/engine/install/ubuntu/",[335],"here"," for Ubuntu)",[328,353,354],{},[331,355,358],{"href":356,"rel":357,"target":336},"https://docs.docker.com/engine/install/fedora/",[335],"Fedora",[328,360,361],{},[331,362,365],{"href":363,"rel":364,"target":336},"https://docs.docker.com/engine/install/rhel/",[335],"RHEL",[328,367,368],{},[331,369,372],{"href":370,"rel":371,"target":336},"https://docs.docker.com/engine/install/sles/",[335],"SLES",[328,374,375],{},[331,376,378],{"href":348,"rel":377,"target":336},[335],"Ubuntu",[328,380,381],{},[331,382,385],{"href":383,"rel":384,"target":336},"https://docs.docker.com/engine/install/raspberry-pi-os/",[335],"Raspbian",[328,387,388],{},[331,389,392],{"href":390,"rel":391,"target":336},"https://docs.docker.com/engine/install/binaries/",[335],"Binaries",[317,394,396],{"id":395},"configure-docker-permissions","Configure Docker permissions",[294,398,399,400,405,406,409],{},"Using the ",[331,401,404],{"href":402,"rel":403,"target":336},"https://docs.docker.com/engine/install/linux-postinstall/",[335],"post-installation instructions defined by Docker",", be sure to add your current user to the ",[298,407,408],{},"docker"," group if you want to be able to run Docker without root privileges.",[411,412,418],"pre",{"className":413,"code":414,"filename":415,"language":416,"meta":417,"style":417},"language-bash shiki shiki-themes material-theme-lighter github-dark github-dark","sudo groupadd docker\n","Create the \"docker\" group","bash","",[298,419,420],{"__ignoreMap":417},[421,422,425,429,433],"span",{"class":423,"line":424},"line",1,[421,426,428],{"class":427},"soiBB","sudo",[421,430,432],{"class":431},"s0vBq"," groupadd",[421,434,435],{"class":431}," docker\n",[411,437,440],{"className":413,"code":438,"filename":439,"language":416,"meta":417,"style":417},"sudo usermod -aG docker $USER\n","Add your current user to the \"docker\" group.",[298,441,442],{"__ignoreMap":417},[421,443,444,446,449,453,456],{"class":423,"line":424},[421,445,428],{"class":427},[421,447,448],{"class":431}," usermod",[421,450,452],{"class":451},"sSJ72"," -aG",[421,454,455],{"class":431}," docker",[421,457,459],{"class":458},"sMo7A"," $USER\n",[411,461,464],{"className":413,"code":462,"filename":463,"language":416,"meta":417,"style":417},"newgrp docker\n","Activate the changes to groups.",[298,465,466],{"__ignoreMap":417},[421,467,468,471],{"class":423,"line":424},[421,469,470],{"class":427},"newgrp",[421,472,435],{"class":431},[317,474,476],{"id":475},"ensure-docker-is-working","Ensure Docker is working",[294,478,479,480,301],{},"To test you have a working version of Docker, you can run their \"hello world\" container. ",[298,481,482],{},"docker version",[411,484,487],{"className":413,"code":485,"filename":486,"language":416,"meta":417,"style":417},"docker run hello-world\n","Run a \"hello world\" container to ensure Docker works correctly",[298,488,489],{"__ignoreMap":417},[421,490,491,493,496],{"class":423,"line":424},[421,492,408],{"class":427},[421,494,495],{"class":431}," run",[421,497,498],{"class":431}," hello-world\n",[317,500,502],{"id":501},"check-your-docker-compose-version","Check your Docker Compose Version",[294,504,505],{},"Spin is set to run the latest version of Docker Compose (Version 2).",[411,507,510],{"className":413,"code":508,"filename":509,"language":416,"meta":417,"style":417},"docker compose version\n","Check your Docker Compose version",[298,511,512],{"__ignoreMap":417},[421,513,514,516,519],{"class":423,"line":424},[421,515,408],{"class":427},[421,517,518],{"class":431}," compose",[421,520,521],{"class":431}," version\n",[294,523,524,525],{},"If you do not see version 2.x installed, you'll need to update. ",[331,526,529],{"href":527,"rel":528,"target":336},"https://docs.docker.com/compose/cli-command/#install-on-linux",[335]," How to Install Docker Compose V2 →",[303,531,533,534],{"id":532},"download-and-install-spin","Download and install ",[298,535,300],{},[294,537,538],{},"Run the installer with this simple command in your terminal",[411,540,543],{"className":413,"code":541,"filename":542,"language":416,"meta":417,"style":417},"bash -c \"$(curl -fsSL https://raw.githubusercontent.com/serversideup/spin/main/tools/install.sh)\"\n","Install Spin (no root permissions required)",[298,544,545],{"__ignoreMap":417},[421,546,547,549,552,556,559,562,565],{"class":423,"line":424},[421,548,416],{"class":427},[421,550,551],{"class":451}," -c",[421,553,555],{"class":554},"sF_wb"," \"$(",[421,557,558],{"class":427},"curl",[421,560,561],{"class":451}," -fsSL",[421,563,564],{"class":431}," https://raw.githubusercontent.com/serversideup/spin/main/tools/install.sh",[421,566,567],{"class":554},")\"\n",[294,569,570,571,575,576,579],{},"The above script will install spin at the ",[572,573,574],"em",{},"user"," level in ",[298,577,578],{},"~/.spin",", using less than 300KB of storage.",[311,581,582],{},[294,583,584],{},"Spin will prompt you if you want Spin to modify your PATH variable. If you press \"Yes\" follow the instructions on the screen. If you press \"No\" you will need to manually add Spin to your PATH.",[303,586,588],{"id":587},"configuring-your-path-variable-manually","Configuring your PATH variable manually",[294,590,591,592,594],{},"If you did not add ",[298,593,300],{}," to your PATH during the installation, you can manually add it to your PATH by adding this to your shell profile:",[311,596,597],{},[294,598,599,600,603],{},"Run ",[298,601,602],{},"echo $0"," in your terminal to figure out which shell you are using.",[411,605,608],{"className":413,"code":606,"filename":607,"language":416,"meta":417,"style":417},"# Add this to `~/.zshrc` or `~/.bash_profile`\nexport PATH=\"$HOME/.spin/bin:$PATH\"\n","Add spin to your path",[298,609,610,616],{"__ignoreMap":417},[421,611,612],{"class":423,"line":424},[421,613,615],{"class":614},"sutJx","# Add this to `~/.zshrc` or `~/.bash_profile`\n",[421,617,619,623,626,630,633,636,639,642],{"class":423,"line":618},2,[421,620,622],{"class":621},"sFsEu","export",[421,624,625],{"class":458}," PATH",[421,627,629],{"class":628},"sFfmW","=",[421,631,632],{"class":554},"\"",[421,634,635],{"class":458},"$HOME",[421,637,638],{"class":431},"/.spin/bin:",[421,640,641],{"class":458},"$PATH",[421,643,644],{"class":554},"\"\n",[294,646,647,648,651],{},"In order to apply the changes to your current terminal session, you will need to run the ",[298,649,650],{},"source"," command.",[411,653,656],{"className":413,"code":654,"filename":655,"language":416,"meta":417,"style":417},"# If you're using ZSH\nsource ~/.zshrc\n\n# If you're using Bash\nsource ~/.bash_profile\n","Use the \"source\" command to apply your profile changes immediately",[298,657,658,663,671,678,684],{"__ignoreMap":417},[421,659,660],{"class":423,"line":424},[421,661,662],{"class":614},"# If you're using ZSH\n",[421,664,665,668],{"class":423,"line":618},[421,666,650],{"class":667},"sUkpR",[421,669,670],{"class":431}," ~/.zshrc\n",[421,672,674],{"class":423,"line":673},3,[421,675,677],{"emptyLinePlaceholder":676},true,"\n",[421,679,681],{"class":423,"line":680},4,[421,682,683],{"class":614},"# If you're using Bash\n",[421,685,687,689],{"class":423,"line":686},5,[421,688,650],{"class":667},[421,690,691],{"class":431}," ~/.bash_profile\n",[303,693,695],{"id":694},"validate-its-working","Validate it's working",[294,697,698],{},"You should be able to run this and get a result 🥳",[411,700,703],{"className":413,"code":701,"filename":702,"language":416,"meta":417,"style":417},"spin version\n","Confirm spin is working correctly by getting the version",[298,704,705],{"__ignoreMap":417},[421,706,707,709],{"class":423,"line":424},[421,708,300],{"class":427},[421,710,521],{"class":431},[712,713,714],"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 .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 .sSJ72, html code.shiki .sSJ72{--shiki-light:#91B859;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .sMo7A, html code.shiki .sMo7A{--shiki-light:#90A4AE;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sF_wb, html code.shiki .sF_wb{--shiki-light:#39ADB5;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .sFsEu, html code.shiki .sFsEu{--shiki-light:#9C3EDA;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .sFfmW, html code.shiki .sFfmW{--shiki-light:#39ADB5;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .sUkpR, html code.shiki .sUkpR{--shiki-light:#6182B8;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}",{"title":417,"searchDepth":618,"depth":618,"links":716},[717,723,725,726],{"id":305,"depth":618,"text":306,"children":718},[719,720,721,722],{"id":319,"depth":673,"text":320},{"id":395,"depth":673,"text":396},{"id":475,"depth":673,"text":476},{"id":501,"depth":673,"text":502},{"id":532,"depth":618,"text":724},"Download and install spin",{"id":587,"depth":618,"text":588},{"id":694,"depth":618,"text":695},"https://serversideup.net/open-source/spin/docs/installation/install-linux","Learn how to install Spin on Linux.","md","docs",{"head":732},{"title":733},"Install to Linux - Spin by Server Side Up",{"title":24,"description":728},"ughNwHWouvEJ0slBvW9-8NJbLmNDKWVrCnZ6zl3vqM4",[737,739],{"title":20,"path":21,"stem":22,"description":738,"children":-1},"Learn how to install Spin on Windows using the Linux Subsystem.",{"title":28,"path":29,"stem":30,"description":740,"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.",1769465036879]