[{"data":1,"prerenderedAt":1106},["ShallowReactive",2],{"navigation":3,"/docs/command-reference/deploy":285,"/docs/command-reference/deploy-surround":1101},[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":198,"body":287,"canonical":1091,"description":1092,"extension":1093,"layout":1094,"meta":1095,"navigation":1098,"path":199,"seo":1099,"stem":200,"__hash__":1100},"docs/docs/9.command-reference/deploy.md",{"type":288,"value":289,"toc":1070},"minimark",[290,297,302,402,406,417,423,427,430,445,448,463,466,500,503,507,510,615,619,625,728,732,735,867,874,880,907,933,944,951,957,962,968,972,975,1023,1027,1030,1045,1049,1052,1056,1059,1063,1066],[291,292,293],"lead-p",{},[294,295,296],"p",{},"Quickly and easily deploy your application to a server without the hassle of setting up CI/CD pipelines. Before running this command, make sure you have everything configured and a supported server online with any host of your choice.",[298,299,301],"h2",{"id":300},"usage","Usage",[303,304,310],"pre",{"className":305,"code":306,"filename":307,"language":308,"meta":309,"style":309},"language-bash shiki shiki-themes material-theme-lighter github-dark github-dark","spin deploy [ -c|--compose-file \u003Ccompose-file> -p|--port \u003Cport> -u|--user \u003Cuser> ] \u003Cenvironment>\n","Usage for \"spin deploy\"","bash","",[311,312,313],"code",{"__ignoreMap":309},[314,315,318,322,326,330,334,338,341,344,347,350,353,356,358,361,363,366,369,371,374,376,379,381,384,387,389,392,394,397,399],"span",{"class":316,"line":317},"line",1,[314,319,321],{"class":320},"soiBB","spin",[314,323,325],{"class":324},"s0vBq"," deploy",[314,327,329],{"class":328},"sMo7A"," [ ",[314,331,333],{"class":332},"sSJ72","-c",[314,335,337],{"class":336},"sFfmW","|",[314,339,340],{"class":320},"--compose-file",[314,342,343],{"class":336}," \u003C",[314,345,346],{"class":324},"compose-fil",[314,348,349],{"class":328},"e",[314,351,352],{"class":336},">",[314,354,355],{"class":332}," -p",[314,357,337],{"class":336},[314,359,360],{"class":320},"--port",[314,362,343],{"class":336},[314,364,365],{"class":324},"por",[314,367,368],{"class":328},"t",[314,370,352],{"class":336},[314,372,373],{"class":332}," -u",[314,375,337],{"class":336},[314,377,378],{"class":320},"--user",[314,380,343],{"class":336},[314,382,383],{"class":324},"use",[314,385,386],{"class":328},"r",[314,388,352],{"class":336},[314,390,391],{"class":324}," ]",[314,393,343],{"class":336},[314,395,396],{"class":324},"environmen",[314,398,368],{"class":328},[314,400,401],{"class":336},">\n",[298,403,405],{"id":404},"before-getting-started","Before getting started",[294,407,408,409,412,413,416],{},"Be sure you have \"provisioned\" your server before running this command. If you haven't, you can do so by running ",[311,410,411],{},"spin provision"," before running ",[311,414,415],{},"spin deploy",".",[294,418,419],{},[420,421,422],"a",{"href":94},"Learn how to prepare a server →",[298,424,426],{"id":425},"example-deployment-command","Example Deployment Command",[294,428,429],{},"To deploy your application to the production environment, you can use the following command:",[303,431,434],{"className":305,"code":432,"filename":433,"language":308,"meta":309,"style":309},"spin deploy production\n","Deploy to Production",[311,435,436],{"__ignoreMap":309},[314,437,438,440,442],{"class":316,"line":317},[314,439,321],{"class":320},[314,441,325],{"class":324},[314,443,444],{"class":324}," production\n",[294,446,447],{},"To deploy to a staging environment, specify the environment name:",[303,449,452],{"className":305,"code":450,"filename":451,"language":308,"meta":309,"style":309},"spin deploy staging\n","Deploy to Staging",[311,453,454],{"__ignoreMap":309},[314,455,456,458,460],{"class":316,"line":317},[314,457,321],{"class":320},[314,459,325],{"class":324},[314,461,462],{"class":324}," staging\n",[294,464,465],{},"You can also provide custom Docker Compose files and SSH options:",[303,467,470],{"className":305,"code":468,"filename":469,"language":308,"meta":309,"style":309},"spin deploy staging --compose-file custom-compose.yml --user myuser --port 2222\n","Custom Deployment Options",[311,471,472],{"__ignoreMap":309},[314,473,474,476,478,481,484,487,490,493,496],{"class":316,"line":317},[314,475,321],{"class":320},[314,477,325],{"class":324},[314,479,480],{"class":324}," staging",[314,482,483],{"class":332}," --compose-file",[314,485,486],{"class":324}," custom-compose.yml",[314,488,489],{"class":332}," --user",[314,491,492],{"class":324}," myuser",[314,494,495],{"class":332}," --port",[314,497,499],{"class":498},"s_k96"," 2222\n",[294,501,502],{},"This comprehensive process ensures that your application is built, pushed, and deployed efficiently to your server.",[298,504,506],{"id":505},"options","Options",[294,508,509],{},"The following options are available to set when running this command.",[511,512,513,532],"table",{},[514,515,516],"thead",{},[517,518,519,523,526,529],"tr",{},[520,521,522],"th",{},"Option",[520,524,525],{},"Short",[520,527,528],{},"Default",[520,530,531],{},"Description",[533,534,535,555,574,594],"tbody",{},[517,536,537,542,546,552],{},[538,539,540],"td",{},[311,541,340],{},[538,543,544],{},[311,545,333],{},[538,547,548,549],{},"By default, we look for two files ",[311,550,551],{},"docker-compose.yml, docker-compose.prod.yml",[538,553,554],{},"The name of the compose files. You can provide many of these options to combine many files.",[517,556,557,561,566,571],{},[538,558,559],{},[311,560,360],{},[538,562,563],{},[311,564,565],{},"-p",[538,567,568],{},[311,569,570],{},"22",[538,572,573],{},"The port to SSH into the server with.",[517,575,576,581,586,591],{},[538,577,578],{},[311,579,580],{},"--upgrade",[538,582,583],{},[311,584,585],{},"-U",[538,587,588],{},[311,589,590],{},"false",[538,592,593],{},"Force the upgrade of the Ansible collection.",[517,595,596,600,605,612],{},[538,597,598],{},[311,599,378],{},[538,601,602],{},[311,603,604],{},"-u",[538,606,607,608,611],{},"The username of your HOST machine (run ",[311,609,610],{},"whoami"," in a new terminal)",[538,613,614],{},"The user to SSH into the server with.",[298,616,618],{"id":617},"change-options-with-environment-variables","Change Options with Environment Variables",[294,620,621,622,624],{},"You can also modify the behavior of the ",[311,623,415],{}," command by setting environment variables:",[511,626,627,638],{},[514,628,629],{},[517,630,631,634,636],{},[520,632,633],{},"Environment Variable",[520,635,528],{},[520,637,531],{},[533,639,640,655,669,684,698,713],{},[517,641,642,647,652],{},[538,643,644],{},[311,645,646],{},"SPIN_BUILD_PLATFORM",[538,648,649],{},[311,650,651],{},"linux/amd64",[538,653,654],{},"The platform to build the Docker image with.",[517,656,657,662,666],{},[538,658,659],{},[311,660,661],{},"SPIN_BUILD_TAGS",[538,663,664],{},[311,665,226],{},[538,667,668],{},"The tags to use when building the Docker image.",[517,670,671,676,681],{},[538,672,673],{},[311,674,675],{},"SPIN_INVENTORY_FILE",[538,677,678],{},[311,679,680],{},"/etc/ansible/collections/ansible_collections/serversideup/spin/plugins/inventory/spin-dynamic-inventory.sh",[538,682,683],{},"The inventory file or dynamic inventory script to use for the deployment.",[517,685,686,691,695],{},[538,687,688],{},[311,689,690],{},"SPIN_PROJECT_NAME",[538,692,693],{},[311,694,321],{},[538,696,697],{},"The name of the project to use for the deployment.",[517,699,700,705,710],{},[538,701,702],{},[311,703,704],{},"SPIN_REGISTRY_PORT",[538,706,707],{},[311,708,709],{},"5080",[538,711,712],{},"The port to use on your local machine for the temporary registry.",[517,714,715,720,725],{},[538,716,717],{},[311,718,719],{},"SPIN_TRAEFIK_CONFIG_FILE",[538,721,722],{},[311,723,724],{},"./.infrastructure/conf/traefik/prod/traefik.yml",[538,726,727],{},"The Traefik configuration file to use for the deployment.",[298,729,731],{"id":730},"environment-variables-available-for-compose-files","Environment Variables Available For Compose Files",[294,733,734],{},"The following environment variables are available to use in your compose files after running this command.",[511,736,737,749],{},[514,738,739],{},[517,740,741,744,747],{},[520,742,743],{},"Variable",[520,745,746],{},"Example",[520,748,531],{},[533,750,751,785,811,826,846],{},[517,752,753,758,767],{},[538,754,755],{},[311,756,757],{},"SPIN_IMAGE_*",[538,759,760,763,764],{},[311,761,762],{},"localhost:5080/dockerfile:latest"," or ",[311,765,766],{},"localhost:5080/dockerfile.php:latest",[538,768,769,770,773,774,777,778,773,781,784],{},"Automatically generated for each Dockerfile in the project directory. The variable name is derived from the Dockerfile name (e.g., ",[311,771,772],{},"SPIN_IMAGE_DOCKERFILE"," derives from ",[311,775,776],{},"Dockerfile",", ",[311,779,780],{},"SPIN_IMAGE_DOCKERFILE_PHP",[311,782,783],{},"Dockerfile.php","), and the value contains the full image name including registry, image name (based on Dockerfile name), and tag. These variables can be used in Docker Compose files to reference the built images.",[517,786,787,792,797],{},[538,788,789],{},[311,790,791],{},"SPIN_MD5_HASH_*",[538,793,794],{},[311,795,796],{},"abcdef123456",[538,798,799,800,803,804,807,808],{},"The MD5 Hash value of all configs under ",[311,801,802],{},".infrastructure/conf",". For example, ",[311,805,806],{},".infrastructure/conf/traefik/dev/traefik.yml","'s MD5 value will be stored in ",[311,809,810],{},"SPIN_MD5_HASH_TRAEFIK_YML",[517,812,813,818,823],{},[538,814,815],{},[311,816,817],{},"SPIN_DEPLOYMENT_ENVIRONMENT",[538,819,820],{},[311,821,822],{},"production",[538,824,825],{},"The environment you are deploying to.",[517,827,828,835,840],{},[538,829,830,831,834],{},"Anything from your ",[311,832,833],{},".env"," file",[538,836,837],{},[311,838,839],{},"DB_PASSWORD",[538,841,842,843,845],{},"Any environment variables you have set in your ",[311,844,833],{}," file.",[517,847,848,853,858],{},[538,849,850],{},[311,851,852],{},"SPIN_APP_DOMAIN",[538,854,855],{},[311,856,857],{},"example.com",[538,859,860,861,864,865,845],{},"This variable is created from ",[311,862,863],{},"APP_URL"," and extracts the app domain. This is helpful for frameworks like Laravel when we load up the ",[311,866,833],{},[298,868,870,871,873],{"id":869},"using-different-env-files-per-environment","Using different ",[311,872,833],{}," files per environment",[294,875,876,877,879],{},"By default, everything runs off the ",[311,878,833],{}," file. This is great for local development, but it can be a challenge if you want to deploy to multiple environments from the same folder.",[294,881,882,883,885,886,889,890,893,894,897,898,900,901,897,904,906],{},"To solve this, you can create ",[311,884,833],{}," files for each environment you want to deploy to. For example, you can create ",[311,887,888],{},".env.production"," and ",[311,891,892],{},".env.staging"," files. When you run ",[311,895,896],{},"spin deploy production",", the ",[311,899,888],{}," file will be used. When you run ",[311,902,903],{},"spin deploy staging",[311,905,892],{}," file will be used.",[908,909,910],"note",{},[294,911,912,913,897,915,918,919,921,922,929,930,932],{},"This approach is highly reliant on the framework you're using. For example, when you run ",[311,914,896],{},[311,916,917],{},"APP_ENV"," variable will be set to ",[311,920,822],{},". ",[420,923,928],{"href":924,"rel":925,"target":927},"https://laravel.com/docs/11.x/configuration#additional-environment-files",[926],"nofollow","_blank","Laravel is intelligent enough"," to know to use the ",[311,931,888],{}," file. If you're using a different framework, you might need to adjust your configuration to use this approach.",[294,934,935,936,939,940,943],{},"Be sure to add ",[311,937,938],{},".env.*"," files to your ",[311,941,942],{},".gitignore"," file so they are not committed to your repository.",[298,945,947,948,950],{"id":946},"what-happens-when-you-run-spin-deploy","What happens when you run ",[311,949,415],{},"?",[294,952,953,954,956],{},"Running the ",[311,955,415],{}," command automates the process of deploying your application to your server. Here's a breakdown of the steps it performs:",[958,959,961],"h3",{"id":960},"loads-environment-variables","Loads Environment Variables",[294,963,964,965,967],{},"If a ",[311,966,833],{}," file exists in your project directory, the script loads the environment variables defined in it.",[958,969,971],{"id":970},"sets-default-values","Sets Default Values",[294,973,974],{},"The script sets default values for various deployment parameters, which can be overridden by environment variables:",[976,977,978,984,989,995,1001,1006,1012,1018],"ul",{},[979,980,981,983],"li",{},[311,982,704],{},": Port for the local Docker registry (default is 5080).",[979,985,986,988],{},[311,987,646],{},": Platform for building the Docker image (default is \"linux/amd64\").",[979,990,991,994],{},[311,992,993],{},"SPIN_BUILD_IMAGE_PREFIX",": Prefix for the Docker image name (default is \"localhost:\u003Cregistry_port>\").",[979,996,997,1000],{},[311,998,999],{},"SPIN_BUILD_TAG",": Tag for the Docker image (default is \"latest\").",[979,1002,1003,1005],{},[311,1004,675],{},": Path to the Ansible inventory file or dynamic inventory script (default is \"/etc/ansible/collections/ansible_collections/serversideup/spin/plugins/inventory/spin-dynamic-inventory.sh\").",[979,1007,1008,1011],{},[311,1009,1010],{},"SPIN_SSH_PORT",": SSH port for connecting to the server.",[979,1013,1014,1017],{},[311,1015,1016],{},"SPIN_SSH_USER",": SSH user for connecting to the server (default is \"deploy\").",[979,1019,1020,1022],{},[311,1021,690],{},": Name of the project (default is \"spin\").",[958,1024,1026],{"id":1025},"checks-for-dockerfiles","Checks for Dockerfiles",[294,1028,1029],{},"If Dockerfiles are found in the current directory, the script performs the following steps:",[976,1031,1032,1035,1042],{},[979,1033,1034],{},"Starts a local Docker registry if one is not already running.",[979,1036,1037,1038,1041],{},"Builds a Docker image using ",[311,1039,1040],{},"docker buildx",", tagging it with the appropriate name and platform.",[979,1043,1044],{},"Pushes the built Docker image to the local registry.",[958,1046,1048],{"id":1047},"sets-up-ssh-tunnel","Sets Up SSH Tunnel",[294,1050,1051],{},"The script establishes an SSH tunnel to the Docker registry on the target server to facilitate secure communication.",[958,1053,1055],{"id":1054},"deploys-the-docker-stack","Deploys the Docker Stack",[294,1057,1058],{},"The script uses Docker Compose to deploy the Docker stack on the target server, utilizing the specified Docker Compose files. It validates the deployment by checking the exit status of the Docker command.",[958,1060,1062],{"id":1061},"cleans-up","Cleans Up",[294,1064,1065],{},"The script cleans up by stopping the local Docker registry and terminating the SSH tunnel.",[1067,1068,1069],"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 .sMo7A, html code.shiki .sMo7A{--shiki-light:#90A4AE;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sSJ72, html code.shiki .sSJ72{--shiki-light:#91B859;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .sFfmW, html code.shiki .sFfmW{--shiki-light:#39ADB5;--shiki-default:#F97583;--shiki-dark:#F97583}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 .s_k96, html code.shiki .s_k96{--shiki-light:#F76D47;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}",{"title":309,"searchDepth":1071,"depth":1071,"links":1072},2,[1073,1074,1075,1076,1077,1078,1079,1081],{"id":300,"depth":1071,"text":301},{"id":404,"depth":1071,"text":405},{"id":425,"depth":1071,"text":426},{"id":505,"depth":1071,"text":506},{"id":617,"depth":1071,"text":618},{"id":730,"depth":1071,"text":731},{"id":869,"depth":1071,"text":1080},"Using different .env files per environment",{"id":946,"depth":1071,"text":1082,"children":1083},"What happens when you run spin deploy?",[1084,1086,1087,1088,1089,1090],{"id":960,"depth":1085,"text":961},3,{"id":970,"depth":1085,"text":971},{"id":1025,"depth":1085,"text":1026},{"id":1047,"depth":1085,"text":1048},{"id":1054,"depth":1085,"text":1055},{"id":1061,"depth":1085,"text":1062},"https://serversideup.net/open-source/spin/docs/command-reference/deploy","Command reference for \"spin deploy\"","md","docs",{"head":1096},{"title":1097},"deploy | Command Reference - Spin by Server Side Up",true,{"title":198,"description":1092},"zCDI9aEKX1BwCiXViNPWQGxLEQO4BeHSBKedJhHthyk",[1102,1104],{"title":194,"path":195,"stem":196,"description":1103,"children":-1},"Command reference for \"spin debug\"",{"title":202,"path":203,"stem":204,"description":1105,"children":-1},"Command reference for \"spin down\"",1769465040745]