[{"data":1,"prerenderedAt":477},["ShallowReactive",2],{"navigation":3,"/docs/server-configuration/server-configuration-basics":285,"/docs/server-configuration/server-configuration-basics-surround":472},[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":93,"body":287,"canonical":462,"description":463,"extension":464,"layout":465,"meta":466,"navigation":469,"path":94,"seo":470,"stem":95,"__hash__":471},"docs/docs/4.server-configuration/2.server-configuration-basics.md",{"type":288,"value":289,"toc":452},"minimark",[290,297,302,305,321,324,328,353,360,364,375,378,385,406,411,415,427,430],[291,292,293],"lead-p",{},[294,295,296],"p",{},"Spin ensures your application can be 100% replicated from development to production without any vendor lock-in. Spin also gives you the flexibility to choose if you want Spin to manage your servers or not.",[298,299,301],"h2",{"id":300},"important-spin-doesnt-need-to-manage-your-servers-if-you-dont-want-it-to","👉 Important: Spin doesn't need to manage your servers if you don't want it to",[294,303,304],{},"It's kind of weird to start a document to talk about how NOT to use a feature, but we want to show the flexibility that Spin gives you. If you're satisfied with your current hosting provider, you don't need to use Spin to manage your servers. You can easily configure your PaaS to use the same Dockerfiles that you're using in development with Spin. You'll just need to reference your PaaS's own documentation on how to do this.",[294,306,307,308,312,313,316,317,320],{},"All you need to do is delete the ",[309,310,311],"code",{},".spin.yml"," and any ",[309,314,315],{},"docker-compose.*.yml"," files that you don't want and ",[309,318,319],{},"spin up"," will still work perfectly fine.",[294,322,323],{},"If you prefer to not have any vendor lock-in from a PaaS provider and you're interested in the full control of your own servers, keep reading! Spin will give you the power of a PaaS without the restriction of running your application on a specific platform.",[298,325,327],{"id":326},"how-servers-work-with-spin","How servers work with Spin",[294,329,330,331,333,334,337,338,346,347,352],{},"Spin places all of its configuration in the ",[309,332,311],{}," file. This file is used to configure your servers, users, connections to providers, and more.\nWhen you run ",[309,335,336],{},"spin provision",", Spin will pull down ",[339,340,345],"a",{"href":341,"rel":342,"target":344},"https://github.com/serversideup/docker-ansible/",[343],"nofollow","_blank","our Ansible Docker image"," and use the ",[339,348,351],{"href":349,"rel":350,"target":344},"https://github.com/serversideup/ansible-collection-spin",[343],"Spin Ansible Collection"," to configure your providers and servers.",[294,354,355],{},[356,357],"img",{"alt":358,"src":359},"Spin Provision Diagram","/images/docs/whats-spin/spin-provision.png",[298,361,363],{"id":362},"connect-a-provider-or-bring-your-own-server","Connect a provider or bring your own server",[294,365,366,367,370,371,374],{},"You can see our ever expanding list of providers on the left sidebar. If you'd like to use a provider that isn't listed, you can easily ",[339,368,369],{"href":119},"use your own server",". This means you can run Spin on any host that meets the ",[339,372,373],{"href":90},"Spin Server Requirements",", including big cloud providers down to an old computer running in your grandmother's basement 🤠.",[294,376,377],{},"If you connect a provider via an API token, you'll get added benefits of automated server creation, backups, firewalls, and more.",[298,379,381,382,384],{"id":380},"the-spinyml-file","The ",[309,383,311],{}," file",[294,386,387,388,390,391,394,395,398,399,401,402,405],{},"The main configuration file for using servers with Spin is the ",[309,389,311],{}," file. Whenever you run ",[309,392,393],{},"spin new"," or ",[309,396,397],{},"spin init",", this file is created. By default, the ",[309,400,311],{}," file is not included in your Git repository. You could think of it as an ",[309,403,404],{},".env"," file for your servers. The file can contain sensitive information, so be sure to keep it secure.",[294,407,408],{},[339,409,410],{"href":98},"Learn how to use the .spin.yml file →",[298,412,414],{"id":413},"provision-your-server-on-any-host","Provision your server on any host",[294,416,417,418,420,421,423,424,426],{},"Once you have your ",[309,419,311],{}," file configured, we can use ",[309,422,336],{}," to provision your server on any host that meets the ",[339,425,373],{"href":90},".",[294,428,429],{},"Pick the provider you'd like to use to learn more:",[431,432,433,438,442,447],"ul",{},[434,435,436],"li",{},[339,437,110],{"href":111},[434,439,440],{},[339,441,114],{"href":115},[434,443,444],{},[339,445,446],{"href":107},"Digital Ocean",[434,448,449],{},[339,450,451],{"href":119},"Any other host",{"title":453,"searchDepth":454,"depth":454,"links":455},"",2,[456,457,458,459,461],{"id":300,"depth":454,"text":301},{"id":326,"depth":454,"text":327},{"id":362,"depth":454,"text":363},{"id":380,"depth":454,"text":460},"The .spin.yml file",{"id":413,"depth":454,"text":414},"https://serversideup.net/open-source/spin/docs/server-configuration/server-configuration-basics","Learn how to configure your servers with Spin.","md","docs",{"head":467},{"title":468},"Server Configuration Basics - Spin by Server Side Up",true,{"title":93,"description":463},"-qXRJ560ZTUvYXiItlsZ75pneXsEGzXpEfXwZA3AL28",[473,475],{"title":89,"path":90,"stem":91,"description":474,"children":-1},"Learn the requirements for running Spin.",{"title":97,"path":98,"stem":99,"description":476,"children":-1},"Learn how to use the .spin.yml file to configure your servers with Spin.",1769465036887]