|
| 1 | +--- |
| 2 | +title: Disaster recovery for Codespaces |
| 3 | +intro: 'This article describes guidance for a disaster recovery scenario, when a whole region experiences an outage due to major natural disaster or widespread service interruption.' |
| 4 | +versions: |
| 5 | + free-pro-team: '*' |
| 6 | +topics: |
| 7 | + - Codespaces |
| 8 | +--- |
| 9 | + |
| 10 | +We work hard to make sure that {% data variables.product.prodname_codespaces %} is always available to you. However, forces beyond our control sometimes impact the service in ways that can cause unplanned service disruptions. |
| 11 | + |
| 12 | +Although disaster recovery scenarios are rare occurrences, we recommend that you prepare for the possibility that there is an outage of an entire region. If an entire region experiences a service disruption, the locally redundant copies of your data would be temporarily unavailable. |
| 13 | + |
| 14 | +The following guidance provides options on how to handle service disruption to the entire region where your codespace is deployed. |
| 15 | + |
| 16 | +{% note %} |
| 17 | + |
| 18 | +**Note:** You can reduce the potential impact of service-wide outages by pushing to remote repositories frequently. |
| 19 | + |
| 20 | +{% endnote %} |
| 21 | + |
| 22 | +## Option 1: Wait for recovery |
| 23 | + |
| 24 | +In this case, no action on your part is required. Know that we are working diligently to restore service availability. |
| 25 | + |
| 26 | +Check our [Discussions page](https://github.com/github/feedback/discussions/categories/codespaces-feedback) for any updates on service interruptions. Soon, you'll be able to see the current service status on the [Status Dashboard](https://www.githubstatus.com/). |
| 27 | + |
| 28 | +## Option 2: Clone the repository locally or edit in the browser |
| 29 | + |
| 30 | +While {% data variables.product.prodname_codespaces %} provides the benefit of a pre-configured developer environmnent, your source code should always be accessible through the repository hosted on {% data variables.product.prodname_dotcom_the_website %}. In the event of a {% data variables.product.prodname_codespaces %} outage, you can still clone the repository locally or edit files in the {% data variables.product.company_short %} browser editor. For more information, see [Editing files in your repository](/github/managing-files-in-a-repository/managing-files-on-github/editing-files-in-your-repository). |
| 31 | + |
| 32 | +While this option does not configure a development environment for you, it will allow you to make changes to your source code as needed while you wait for the service disruption to resolve. |
| 33 | + |
| 34 | +## Option 3: Use Remote-Containers and Docker for a local containerized environment |
| 35 | + |
| 36 | +If your repository has a `devcontainer.json`, consider using the [Remote-Containers extension](https://code.visualstudio.com/docs/remote/containers#_quick-start-open-a-git-repository-or-github-pr-in-an-isolated-container-volume) in Visual Studio Code to build and attach to a local development container for your repository. The setup time for this option will vary depending on your local specifications and the complexity of your dev container setup. |
| 37 | + |
| 38 | +{% note %} |
| 39 | + |
| 40 | +**Note:** Be sure your local setup meets the [minimum requirements](https://code.visualstudio.com/docs/remote/containers#_system-requirements) before attempting this option. |
| 41 | + |
| 42 | +{% endnote %} |
| 43 | + |
| 44 | +## Coming soon: Create a new codespace in another region |
| 45 | + |
| 46 | +{% note %} |
| 47 | + |
| 48 | +**Note:** This option is not yet available in {% data variables.product.prodname_codespaces %} |
| 49 | + |
| 50 | +{% endnote %} |
| 51 | + |
| 52 | +You'll soon be able to specify the region when you create a codespace. When this option becomes available, we suggest you recreate your codespace in an unaffected region to continue working in the case of a regional outage. This new codespace will have all of the changes as of your last push to {% data variables.product.prodname_dotcom %}. |
| 53 | + |
| 54 | +You can optimize recovery time in by configuring a `devcontainer.json` in the project's repository, which allows you to define the tools, runtimes, frameworks, editor settings, extensions, and other configuration necessary to restore the development environment automatically. See [Configuring Codespace for your project](/codespaces/setting-up-your-codespace/configuring-codespaces-for-your-project). |
0 commit comments