[{"data":1,"prerenderedAt":1570},["ShallowReactive",2],{"navigation":3,"/docs/providers/digitalocean":285,"/docs/providers/digitalocean-surround":1565},[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":106,"body":287,"canonical":1556,"description":1557,"extension":1558,"layout":1559,"meta":1560,"navigation":534,"path":107,"seo":1563,"stem":108,"__hash__":1564},"docs/docs/5.providers/0.digitalocean.md",{"type":288,"value":289,"toc":1541},"minimark",[290,297,302,305,315,319,325,334,341,344,350,353,376,382,385,390,480,489,499,573,577,588,592,598,604,707,711,714,820,823,901,906,921,1066,1070,1080,1087,1419,1423,1426,1432,1493,1497,1500,1517,1520,1525,1529,1532,1537],[291,292,293],"lead-p",{},[294,295,296],"p",{},"DigitalOcean is one of the most popular cloud VPS providers in the development community. Many tools and services are built to support it.",[298,299,301],"h2",{"id":300},"create-an-account","Create an account",[294,303,304],{},"The first step is to create an account with DigitalOcean. You can do this by going to their website and clicking the \"Sign Up\" button. With the link below, they offer $200 in credits. This is an affiliate link, meaning we get a small kickback if you sign up, but this doesn't affect our recommendations.",[294,306,307],{},[308,309,314],"a",{"href":310,"rel":311,"target":313},"https://m.do.co/c/f3bad4b927ca",[312],"nofollow","_blank","Sign Up with DigitalOcean →",[298,316,318],{"id":317},"create-an-api-token","Create an API token",[320,321,322],"note",{},[294,323,324],{},"This API token is very powerful and should be treated as a secret. Do not share this token and treat it like you would a password.",[294,326,327,328,333],{},"To create an API token, you'll need to sign in to the ",[308,329,332],{"href":330,"rel":331,"target":313},"https://cloud.digitalocean.com/",[312],"DigitalOcean Console",". On the left sidebar, click on the \"API\" section.",[294,335,336],{},[337,338],"img",{"alt":339,"src":340},"Go to DigitalOcean API","/images/docs/digitalocean/api-sidebar.png",[294,342,343],{},"On the API page, click the \"Generate New Token\" button.",[294,345,346],{},[337,347],{"alt":348,"src":349},"Generate DigitalOcean API Token","/images/docs/digitalocean/generate-token.png",[294,351,352],{},"You can set a number of settings for the token:",[354,355,356,364,370],"ul",{},[357,358,359,363],"li",{},[360,361,362],"strong",{},"Name",": Set this to something descriptive.",[357,365,366,369],{},[360,367,368],{},"Expiration",": Set how long the token should be valid for. The shorter the value, the more secure, but the more often you'll need to generate a new token.",[357,371,372,375],{},[360,373,374],{},"Scopes",": Select \"Custom Scopes\" for the most secure option.",[294,377,378],{},[337,379],{"alt":380,"src":381},"DigitalOcean API Token Scopes","/images/docs/digitalocean/token-scopes.png",[294,383,384],{},"If you choose \"Custom Scopes\", you can select the following permissions:",[320,386,387],{},[294,388,389],{},"The \"Full Access\" scope is the easiest option, but it gives the token access to everything. Choose what makes the most sense for your use case. Use the custom scopes below for the most secure option.",[391,392,393,408],"table",{},[394,395,396],"thead",{},[397,398,399,403,405],"tr",{},[400,401,402],"th",{},"Access Level",[400,404,374],{},[400,406,407],{},"Details",[409,410,411,433,444,455,466],"tbody",{},[397,412,413,417,420],{},[414,415,416],"td",{},"Fully Scoped Access",[414,418,419],{},"10 scopes",[414,421,422,423,426,427,429,430,432],{},"- firewall (4): create, read, update, delete",[424,425],"br",{},"- regions (1): read",[424,428],{},"- sizes (1): read",[424,431],{},"- ssh_key (4): create, read, update, delete",[397,434,435,438,441],{},[414,436,437],{},"Create Access",[414,439,440],{},"4 scopes",[414,442,443],{},"project / tag / image / droplet",[397,445,446,449,452],{},[414,447,448],{},"Read Access",[414,450,451],{},"5 scopes",[414,453,454],{},"snapshot / project / tag / image / droplet",[397,456,457,460,463],{},[414,458,459],{},"Update Access",[414,461,462],{},"3 scopes",[414,464,465],{},"project / image / droplet",[397,467,468,473,478],{},[414,469,470],{},[360,471,472],{},"Total Custom Scopes",[414,474,475],{},[360,476,477],{},"22 scopes",[414,479],{},[298,481,483,484,488],{"id":482},"place-the-token-in-your-spinyml-file","Place the token in your ",[485,486,487],"code",{},".spin.yml"," file",[294,490,491,492,494,495,498],{},"In your ",[485,493,487],{}," file, you'll find a ",[485,496,497],{},"providers"," section where you can add your DigitalOcean API token.",[500,501,507],"pre",{"className":502,"code":503,"filename":504,"language":505,"meta":506,"style":506},"language-yaml shiki shiki-themes material-theme-lighter github-dark github-dark","##############################################################\n# 👇 Providers - You must set at least one provider\n##############################################################\n\nproviders:\n  - name: digitalocean\n    api_token: abc123def456ghi789jkl012mno345pqr678stu901vwx234yz\n",".spin.yml configure providers","yaml","",[485,508,509,518,524,529,536,546,562],{"__ignoreMap":506},[510,511,514],"span",{"class":512,"line":513},"line",1,[510,515,517],{"class":516},"sutJx","##############################################################\n",[510,519,521],{"class":512,"line":520},2,[510,522,523],{"class":516},"# 👇 Providers - You must set at least one provider\n",[510,525,527],{"class":512,"line":526},3,[510,528,517],{"class":516},[510,530,532],{"class":512,"line":531},4,[510,533,535],{"emptyLinePlaceholder":534},true,"\n",[510,537,539,542],{"class":512,"line":538},5,[510,540,497],{"class":541},"sqIbZ",[510,543,545],{"class":544},"sG-J9",":\n",[510,547,549,552,555,558],{"class":512,"line":548},6,[510,550,551],{"class":544},"  -",[510,553,554],{"class":541}," name",[510,556,557],{"class":544},":",[510,559,561],{"class":560},"s0vBq"," digitalocean\n",[510,563,565,568,570],{"class":512,"line":564},7,[510,566,567],{"class":541},"    api_token",[510,569,557],{"class":544},[510,571,572],{"class":560}," abc123def456ghi789jkl012mno345pqr678stu901vwx234yz\n",[298,574,576],{"id":575},"set-as-do_api_token-environment-variable","Set as DO_API_TOKEN environment variable",[294,578,579,580,583,584,587],{},"If you prefer to set the token as an environment variable, you can also set the ",[485,581,582],{},"DO_API_TOKEN"," variable in your ",[485,585,586],{},".env"," file, secrets manager, or wherever you store your environment variables.",[298,589,591],{"id":590},"configure-users","Configure users",[294,593,594,595,597],{},"Make sure you configure your system users in your ",[485,596,487],{}," file.",[294,599,600],{},[308,601,603],{"href":602},"/docs/server-configuration/spin-yml-usage#users","Learn more about users →",[500,605,608],{"className":502,"code":606,"filename":607,"language":505,"meta":506,"style":506},"##############################################################\n# 👇 Users - You must set at least one user\n##############################################################\n\nusers:\n  - username: alice\n    name: Alice Smith\n    groups: ['sudo']\n    authorized_keys:\n      - public_key: \"ssh-ed25519 AAAAC3NzaC1lmyfakeublickeyMVIzwQXBzxxD9b8Erd1FKVvu alice\"\n","Example users configuration in .spin.yml",[485,609,610,614,619,623,627,634,646,656,679,687],{"__ignoreMap":506},[510,611,612],{"class":512,"line":513},[510,613,517],{"class":516},[510,615,616],{"class":512,"line":520},[510,617,618],{"class":516},"# 👇 Users - You must set at least one user\n",[510,620,621],{"class":512,"line":526},[510,622,517],{"class":516},[510,624,625],{"class":512,"line":531},[510,626,535],{"emptyLinePlaceholder":534},[510,628,629,632],{"class":512,"line":538},[510,630,631],{"class":541},"users",[510,633,545],{"class":544},[510,635,636,638,641,643],{"class":512,"line":548},[510,637,551],{"class":544},[510,639,640],{"class":541}," username",[510,642,557],{"class":544},[510,644,645],{"class":560}," alice\n",[510,647,648,651,653],{"class":512,"line":564},[510,649,650],{"class":541},"    name",[510,652,557],{"class":544},[510,654,655],{"class":560}," Alice Smith\n",[510,657,659,662,664,667,671,674,676],{"class":512,"line":658},8,[510,660,661],{"class":541},"    groups",[510,663,557],{"class":544},[510,665,666],{"class":544}," [",[510,668,670],{"class":669},"sF_wb","'",[510,672,673],{"class":560},"sudo",[510,675,670],{"class":669},[510,677,678],{"class":544},"]\n",[510,680,682,685],{"class":512,"line":681},9,[510,683,684],{"class":541},"    authorized_keys",[510,686,545],{"class":544},[510,688,690,693,696,698,701,704],{"class":512,"line":689},10,[510,691,692],{"class":544},"      -",[510,694,695],{"class":541}," public_key",[510,697,557],{"class":544},[510,699,700],{"class":669}," \"",[510,702,703],{"class":560},"ssh-ed25519 AAAAC3NzaC1lmyfakeublickeyMVIzwQXBzxxD9b8Erd1FKVvu alice",[510,705,706],{"class":669},"\"\n",[298,708,710],{"id":709},"configuring-a-digitalocean-hardware-profile","Configuring a DigitalOcean hardware profile",[294,712,713],{},"By default we set you up with a very cost-effective hardware profile to get up and running quickly.",[500,715,718],{"className":502,"code":716,"filename":717,"language":505,"meta":506,"style":506},"##############################################################\n# 🤖 Hardware Profiles\n##############################################################\n\nhardware_profiles:\n  # DigitalOcean\n  - name: digitalocean_1c_1gb_ubuntu2404\n    provider: digitalocean\n    profile_config:\n      region: nyc3\n      size: s-1vcpu-1gb\n      image: ubuntu-24-04-x64\n      backups: true\n",".spin.yml default Hardware Profiles",[485,719,720,724,729,733,737,744,749,760,769,776,786,797,808],{"__ignoreMap":506},[510,721,722],{"class":512,"line":513},[510,723,517],{"class":516},[510,725,726],{"class":512,"line":520},[510,727,728],{"class":516},"# 🤖 Hardware Profiles\n",[510,730,731],{"class":512,"line":526},[510,732,517],{"class":516},[510,734,735],{"class":512,"line":531},[510,736,535],{"emptyLinePlaceholder":534},[510,738,739,742],{"class":512,"line":538},[510,740,741],{"class":541},"hardware_profiles",[510,743,545],{"class":544},[510,745,746],{"class":512,"line":548},[510,747,748],{"class":516},"  # DigitalOcean\n",[510,750,751,753,755,757],{"class":512,"line":564},[510,752,551],{"class":544},[510,754,554],{"class":541},[510,756,557],{"class":544},[510,758,759],{"class":560}," digitalocean_1c_1gb_ubuntu2404\n",[510,761,762,765,767],{"class":512,"line":658},[510,763,764],{"class":541},"    provider",[510,766,557],{"class":544},[510,768,561],{"class":560},[510,770,771,774],{"class":512,"line":681},[510,772,773],{"class":541},"    profile_config",[510,775,545],{"class":544},[510,777,778,781,783],{"class":512,"line":689},[510,779,780],{"class":541},"      region",[510,782,557],{"class":544},[510,784,785],{"class":560}," nyc3\n",[510,787,789,792,794],{"class":512,"line":788},11,[510,790,791],{"class":541},"      size",[510,793,557],{"class":544},[510,795,796],{"class":560}," s-1vcpu-1gb\n",[510,798,800,803,805],{"class":512,"line":799},12,[510,801,802],{"class":541},"      image",[510,804,557],{"class":544},[510,806,807],{"class":560}," ubuntu-24-04-x64\n",[510,809,811,814,816],{"class":512,"line":810},13,[510,812,813],{"class":541},"      backups",[510,815,557],{"class":544},[510,817,819],{"class":818},"sMrrN"," true\n",[294,821,822],{},"You can uncomment the defaults we give you or create/modify your own hardware profile.",[391,824,825,838],{},[394,826,827],{},[397,828,829,832,835],{},[400,830,831],{},"Profile Config",[400,833,834],{},"Description",[400,836,837],{},"API Reference",[409,839,840,853,865,882],{},[397,841,842,847,850],{},[414,843,844],{},[485,845,846],{},"region",[414,848,849],{},"The data center and location you want to deploy your server to (pick the closest one to your customers).",[414,851,852],{},"See below for common examples.",[397,854,855,860,863],{},[414,856,857],{},[485,858,859],{},"size",[414,861,862],{},"The type of server.",[414,864,852],{},[397,866,867,872,875],{},[414,868,869],{},[485,870,871],{},"image",[414,873,874],{},"The image to use for the server.",[414,876,877],{},[308,878,881],{"href":879,"rel":880,"target":313},"https://docs.digitalocean.com/reference/api/api-reference/#tag/Images",[312],"DigitalOcean Images",[397,883,884,889,892],{},[414,885,886],{},[485,887,888],{},"backups",[414,890,891],{},"Whether to enable snapshot backups for the server (may add 20% to the monthly price).",[414,893,894,895,900],{},"Learn more about ",[308,896,899],{"href":897,"rel":898,"target":313},"https://www.digitalocean.com/products/backups",[312],"DigitalOcean snapshot backups",".",[902,903,905],"h3",{"id":904},"common-region-values","Common Region Values",[294,907,908,909,911,912,915,916,900],{},"The ",[485,910,846],{}," value is the ",[485,913,914],{},"slug"," of the region. You can find the full list of regions ",[308,917,920],{"href":918,"rel":919,"target":313},"https://docs.digitalocean.com/reference/api/api-reference/#tag/Regions",[312],"here",[391,922,923,936],{},[394,924,925],{},[397,926,927,930,933],{},[400,928,929],{},"Location",[400,931,932],{},"Country",[400,934,935],{},"Value",[409,937,938,951,963,975,988,1001,1014,1027,1040,1053],{},[397,939,940,943,946],{},[414,941,942],{},"New York 1",[414,944,945],{},"USA",[414,947,948],{},[485,949,950],{},"nyc1",[397,952,953,956,958],{},[414,954,955],{},"New York 3",[414,957,945],{},[414,959,960],{},[485,961,962],{},"nyc3",[397,964,965,968,970],{},[414,966,967],{},"San Francisco 3",[414,969,945],{},[414,971,972],{},[485,973,974],{},"sfo3",[397,976,977,980,983],{},[414,978,979],{},"Amsterdam 3",[414,981,982],{},"Netherlands",[414,984,985],{},[485,986,987],{},"ams3",[397,989,990,993,996],{},[414,991,992],{},"Singapore 1",[414,994,995],{},"Singapore",[414,997,998],{},[485,999,1000],{},"sgp1",[397,1002,1003,1006,1009],{},[414,1004,1005],{},"London 1",[414,1007,1008],{},"UK",[414,1010,1011],{},[485,1012,1013],{},"lon1",[397,1015,1016,1019,1022],{},[414,1017,1018],{},"Frankfurt 1",[414,1020,1021],{},"Germany",[414,1023,1024],{},[485,1025,1026],{},"fra1",[397,1028,1029,1032,1035],{},[414,1030,1031],{},"Toronto 1",[414,1033,1034],{},"Canada",[414,1036,1037],{},[485,1038,1039],{},"tor1",[397,1041,1042,1045,1048],{},[414,1043,1044],{},"Bangalore 1",[414,1046,1047],{},"India",[414,1049,1050],{},[485,1051,1052],{},"blr1",[397,1054,1055,1058,1061],{},[414,1056,1057],{},"Sydney 1",[414,1059,1060],{},"Australia",[414,1062,1063],{},[485,1064,1065],{},"syd1",[902,1067,1069],{"id":1068},"common-size-values","Common Size Values",[320,1071,1072],{},[294,1073,1074,1075,900],{},"Make sure your server type is supported in the region you choose. Also, some of the pricing may change so be sure to check the latest pricing on the ",[308,1076,1079],{"href":1077,"rel":1078,"target":313},"https://www.digitalocean.com/pricing/droplets",[312],"DigitalOcean Droplet Pricing Page",[294,1081,1082,1083,900],{},"You can find the full list of server types ",[308,1084,920],{"href":1085,"rel":1086,"target":313},"https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes",[312],[391,1088,1089,1113],{},[394,1090,1091],{},[397,1092,1093,1096,1099,1102,1105,1108,1111],{},[400,1094,1095],{},"Server Type",[400,1097,1098],{},"vCPUs",[400,1100,1101],{},"RAM",[400,1103,1104],{},"Storage",[400,1106,1107],{},"Traffic",[400,1109,1110],{},"Monthly Price (USD)",[400,1112,834],{},[409,1114,1115,1134,1159,1180,1200,1223,1246,1269,1289,1308,1327,1348,1371,1395],{},[397,1116,1117,1122,1124,1126,1128,1130,1132],{},[414,1118,1119],{},[360,1120,1121],{},"Basic Droplets",[414,1123],{},[414,1125],{},[414,1127],{},[414,1129],{},[414,1131],{},[414,1133],{},[397,1135,1136,1141,1144,1147,1150,1153,1156],{},[414,1137,1138],{},[485,1139,1140],{},"s-1vcpu-1gb",[414,1142,1143],{},"1",[414,1145,1146],{},"1GB",[414,1148,1149],{},"25GB",[414,1151,1152],{},"1TB",[414,1154,1155],{},"$6.00",[414,1157,1158],{},"Basic",[397,1160,1161,1166,1168,1170,1172,1174,1177],{},[414,1162,1163],{},[485,1164,1165],{},"s-1vcpu-1gb-amd",[414,1167,1143],{},[414,1169,1146],{},[414,1171,1149],{},[414,1173,1152],{},[414,1175,1176],{},"$7.00",[414,1178,1179],{},"Basic AMD",[397,1181,1182,1187,1189,1191,1193,1195,1197],{},[414,1183,1184],{},[485,1185,1186],{},"s-1vcpu-1gb-intel",[414,1188,1143],{},[414,1190,1146],{},[414,1192,1149],{},[414,1194,1152],{},[414,1196,1176],{},[414,1198,1199],{},"Basic Intel",[397,1201,1202,1207,1209,1212,1215,1218,1221],{},[414,1203,1204],{},[485,1205,1206],{},"s-1vcpu-2gb",[414,1208,1143],{},[414,1210,1211],{},"2GB",[414,1213,1214],{},"50GB",[414,1216,1217],{},"2TB",[414,1219,1220],{},"$12.00",[414,1222,1158],{},[397,1224,1225,1230,1233,1235,1238,1241,1244],{},[414,1226,1227],{},[485,1228,1229],{},"s-2vcpu-2gb",[414,1231,1232],{},"2",[414,1234,1211],{},[414,1236,1237],{},"60GB",[414,1239,1240],{},"3TB",[414,1242,1243],{},"$18.00",[414,1245,1158],{},[397,1247,1248,1253,1255,1258,1261,1264,1267],{},[414,1249,1250],{},[485,1251,1252],{},"s-2vcpu-4gb",[414,1254,1232],{},[414,1256,1257],{},"4GB",[414,1259,1260],{},"80GB",[414,1262,1263],{},"4TB",[414,1265,1266],{},"$24.00",[414,1268,1158],{},[397,1270,1271,1276,1278,1280,1282,1284,1287],{},[414,1272,1273],{},[485,1274,1275],{},"s-2vcpu-4gb-amd",[414,1277,1232],{},[414,1279,1257],{},[414,1281,1260],{},[414,1283,1263],{},[414,1285,1286],{},"$28.00",[414,1288,1179],{},[397,1290,1291,1296,1298,1300,1302,1304,1306],{},[414,1292,1293],{},[485,1294,1295],{},"s-2vcpu-4gb-intel",[414,1297,1232],{},[414,1299,1257],{},[414,1301,1260],{},[414,1303,1263],{},[414,1305,1286],{},[414,1307,1199],{},[397,1309,1310,1315,1317,1319,1321,1323,1325],{},[414,1311,1312],{},[360,1313,1314],{},"CPU-Optimized Droplets",[414,1316],{},[414,1318],{},[414,1320],{},[414,1322],{},[414,1324],{},[414,1326],{},[397,1328,1329,1334,1336,1338,1340,1342,1345],{},[414,1330,1331],{},[485,1332,1333],{},"c-2",[414,1335,1232],{},[414,1337,1257],{},[414,1339,1149],{},[414,1341,1263],{},[414,1343,1344],{},"$42.00",[414,1346,1347],{},"CPU-Optimized",[397,1349,1350,1355,1358,1361,1363,1366,1369],{},[414,1351,1352],{},[485,1353,1354],{},"c-4",[414,1356,1357],{},"4",[414,1359,1360],{},"8GB",[414,1362,1214],{},[414,1364,1365],{},"5TB",[414,1367,1368],{},"$84.00",[414,1370,1347],{},[397,1372,1373,1378,1381,1384,1387,1390,1393],{},[414,1374,1375],{},[485,1376,1377],{},"c-8",[414,1379,1380],{},"8",[414,1382,1383],{},"16GB",[414,1385,1386],{},"100GB",[414,1388,1389],{},"6TB",[414,1391,1392],{},"$168.00",[414,1394,1347],{},[397,1396,1397,1402,1405,1408,1411,1414,1417],{},[414,1398,1399],{},[485,1400,1401],{},"c-16",[414,1403,1404],{},"16",[414,1406,1407],{},"32GB",[414,1409,1410],{},"200GB",[414,1412,1413],{},"7TB",[414,1415,1416],{},"$336.00",[414,1418,1347],{},[298,1420,1422],{"id":1421},"configure-your-server","Configure your server",[294,1424,1425],{},"By default, we give you defaults to get up and running quickly, but you might want to make some changes.",[294,1427,1428],{},[308,1429,1431],{"href":1430},"/docs/server-configuration/spin-yml-usage#servers","Learn more about server configuration →",[500,1433,1436],{"className":502,"code":1434,"filename":1435,"language":505,"meta":506,"style":506},"##############################################################\n# 👇 Servers - You must set at least one server\n##############################################################\n\nservers:\n  - server_name: ubuntu-1gb-nyc-1\n    environment: production\n    hardware_profile: digitalocean_1c_1gb_ubuntu2404\n","Example server configuration in .spin.yml",[485,1437,1438,1442,1447,1451,1455,1462,1474,1484],{"__ignoreMap":506},[510,1439,1440],{"class":512,"line":513},[510,1441,517],{"class":516},[510,1443,1444],{"class":512,"line":520},[510,1445,1446],{"class":516},"# 👇 Servers - You must set at least one server\n",[510,1448,1449],{"class":512,"line":526},[510,1450,517],{"class":516},[510,1452,1453],{"class":512,"line":531},[510,1454,535],{"emptyLinePlaceholder":534},[510,1456,1457,1460],{"class":512,"line":538},[510,1458,1459],{"class":541},"servers",[510,1461,545],{"class":544},[510,1463,1464,1466,1469,1471],{"class":512,"line":548},[510,1465,551],{"class":544},[510,1467,1468],{"class":541}," server_name",[510,1470,557],{"class":544},[510,1472,1473],{"class":560}," ubuntu-1gb-nyc-1\n",[510,1475,1476,1479,1481],{"class":512,"line":564},[510,1477,1478],{"class":541},"    environment",[510,1480,557],{"class":544},[510,1482,1483],{"class":560}," production\n",[510,1485,1486,1489,1491],{"class":512,"line":658},[510,1487,1488],{"class":541},"    hardware_profile",[510,1490,557],{"class":544},[510,1492,759],{"class":560},[298,1494,1496],{"id":1495},"provision-your-server","Provision your server",[294,1498,1499],{},"Once you have everything ready, you can provision your server(s) by running this simple command:",[500,1501,1506],{"className":1502,"code":1503,"filename":1504,"language":1505,"meta":506,"style":506},"language-bash shiki shiki-themes material-theme-lighter github-dark github-dark","spin provision\n","Provision your server(s)","bash",[485,1507,1508],{"__ignoreMap":506},[510,1509,1510,1514],{"class":512,"line":513},[510,1511,1513],{"class":1512},"soiBB","spin",[510,1515,1516],{"class":560}," provision\n",[294,1518,1519],{},"This command will create your server(s) with DigitalOcean and configure your server(s) to be ready for deployment. There are many more options available when provisioning your server(s). To learn more see the guide below:",[294,1521,1522],{},[308,1523,1524],{"href":247},"Learn more about \"spin provision\" →",[298,1526,1528],{"id":1527},"getting-ready-for-deployment","Getting ready for deployment",[294,1530,1531],{},"Now that you have a server ready, you'll want to learn how to get ready for deployment. Next steps are to choose a deployment strategy.",[294,1533,1534],{},[308,1535,1536],{"href":128},"Learn which deployment strategy is right for you →",[1538,1539,1540],"style",{},"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 .sqIbZ, html code.shiki .sqIbZ{--shiki-light:#E53935;--shiki-default:#85E89D;--shiki-dark:#85E89D}html pre.shiki code .sG-J9, html code.shiki .sG-J9{--shiki-light:#39ADB5;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}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 .sF_wb, html code.shiki .sF_wb{--shiki-light:#39ADB5;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .sMrrN, html code.shiki .sMrrN{--shiki-light:#FF5370;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .soiBB, html code.shiki .soiBB{--shiki-light:#E2931D;--shiki-default:#B392F0;--shiki-dark:#B392F0}",{"title":506,"searchDepth":520,"depth":520,"links":1542},[1543,1544,1545,1547,1548,1549,1553,1554,1555],{"id":300,"depth":520,"text":301},{"id":317,"depth":520,"text":318},{"id":482,"depth":520,"text":1546},"Place the token in your .spin.yml file",{"id":575,"depth":520,"text":576},{"id":590,"depth":520,"text":591},{"id":709,"depth":520,"text":710,"children":1550},[1551,1552],{"id":904,"depth":526,"text":905},{"id":1068,"depth":526,"text":1069},{"id":1421,"depth":520,"text":1422},{"id":1495,"depth":520,"text":1496},{"id":1527,"depth":520,"text":1528},"https://serversideup.net/open-source/spin/docs/providers/digitalocean","Learn how to create a server with DigitalOcean.","md","docs",{"head":1561},{"title":1562},"Create a Server with DigitalOcean - Spin by Server Side Up",{"title":106,"description":1557},"jepbnWTGwMnP42aNmhdFC0jZoc2R6twIzcyuNtPcBPk",[1566,1568],{"title":97,"path":98,"stem":99,"description":1567,"children":-1},"Learn how to use the .spin.yml file to configure your servers with Spin.",{"title":110,"path":111,"stem":112,"description":1569,"children":-1},"Learn how to create a server with Hetzner.",1769465038472]