Skip to content

Commit bb0e927

Browse files
authored
chore: update information about VM persistence (#251)
* chore: update information about VM persistence * chore: update instructions for technical accuracy
1 parent 531ea86 commit bb0e927

File tree

1 file changed

+28
-25
lines changed
  • packages/projects-docs/pages/learn/environment

1 file changed

+28
-25
lines changed

packages/projects-docs/pages/learn/environment/vm.mdx

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,28 @@
11
---
22
title: VM Configuration & Persistence
3-
description: The specs of our VMs and how we persist files.
3+
description: The specs of CodeSandbox VMs and how we persist files.
44
---
55

66
import { Callout } from 'nextra-theme-docs'
77

88
# Environment
99

1010
CodeSandbox repositories and Devboxes run on [virtual machines](https://codesandbox.io/blog/how-we-clone-a-running-vm-in-2-seconds). Each branch and Devbox gets its own virtual machine (VM). The size of the VM depends on the settings configured in the [workspace portal](https://codesandbox.io/t/vm_settings).
11-
VM resource consist of vCPU, RAM and memory. The vCPU and RAM specs are grouped in VM tiers of various sizes. However, the memory is set according to the subscription.
11+
VM resources consist of vCPU, RAM and storage. The vCPU and RAM specs are grouped in VM tiers of various sizes. However, the storage is set according to the subscription.
1212

1313
| VM size | CPU | RAM |
14-
| ------ | -------- | ------ |
15-
| Nano | 2 cores | 4 GB |
16-
| Micro | 4 cores | 8 GB |
17-
| Small | 8 cores | 16 GB |
18-
| Medium | 16 cores | 32 GB |
19-
| Large | 32 cores | 64 GB |
20-
| XLarge | 64 cores | 128 GB |
21-
22-
23-
| Subscription | Memory |
24-
| ------ | --------- |
25-
| Free | 20 GB |
26-
| Pro | 50 GB |
27-
14+
| ------- | -------- | ------ |
15+
| Nano | 2 cores | 4 GB |
16+
| Micro | 4 cores | 8 GB |
17+
| Small | 8 cores | 16 GB |
18+
| Medium | 16 cores | 32 GB |
19+
| Large | 32 cores | 64 GB |
20+
| XLarge | 64 cores | 128 GB |
21+
22+
| Subscription | Storage |
23+
| ------------ | ------- |
24+
| Free | 20 GB |
25+
| Pro | 50 GB |
2826

2927
If you require storage that goes beyond our Pro plan defaults, please select 'Pro Subscriptions' on our support form and [get in touch](https://codesandbox.io/support). Our team can adjust your limits to suit your project.
3028

@@ -38,25 +36,30 @@ Note that, the first time you import a project to CodeSandbox, it can take longe
3836

3937
## Persistence
4038

41-
Everything you save in `/project` is guaranteed to be persisted between reboots, hibernations and forks. Every file change outside of `/project` will usually be persisted, but there is a chance that those changes will be cleared.
39+
We use [Dev Containers](https://codesandbox.io/docs/learn/environment/devcontainers) by default for all repositories and Devboxes. Your project is under `/workspaces/workspace` (the default workspace folder) and your home folder is under `/root`. Under the hood, the paths are in `/project`.
40+
41+
<Callout>The workspace folder is not always `/workspaces/workspace`; it depends on the Dev Container configuration.</Callout>
42+
43+
Everything in your workspace is guaranteed to persist between reboots, hibernations and forks. We persist the workspace folder and the Docker engine state, like images, volumes, etc.
4244

43-
Your project folder lives in `/project/<repo-name>`, your home folder lives in `/project/home/<username>`. Your home folder is inaccessible for other users.
45+
If your branch or Devbox has not been accessed for a certain period (explained below), we delete the contents of your workspace. However, we back up uncommitted changes to repositories and all code in Devboxes (other than the ones in `.gitignore`). This means that you will never lose your work, even if we delete the workspace folder after the standard period of inactivity.
4446

45-
<Callout>If your project uses [Dev Containers](https://codesandbox.io/docs/learn/environment/devcontainers) (which is the default now), the paths differ a bit, as they are mounted inside the container. Your project is under `/workspaces/workspace`, and your home folder is under `/root`. Under the hood the paths are still in `/project` though.</Callout>
47+
Overall, we persist the workspace folder and some state in Docker (like volumes) for:
4648

47-
If your branch has not been accessed for 31 days, we delete the contents of `/project`. This means that the next time you start this branch again, we will reinitialize `/project` by doing a fresh clone.
49+
- 8 days of inactivity for projects belonging to Free workspaces.
50+
- 15 days of inactivity for projects belonging to Pro workspaces.
4851

49-
For any uncommitted work we make a backup. This backup is never deleted. All your uncommitted work is restored when you open a branch where the `/project` folder is deleted. This means that you will never lose your work, even if we delete `/project` after 31 days of inactivity.
52+
<Callout>In case your project has a database that needs to retain data across restarts, we recommend putting the data in a git ignored directory in the workspace or a named Docker volume.</Callout>
5053

5154
Memory snapshots (which allow instant resume of VMs) will be cleaned up after 7 to 31 days of inactivity. There is no lost work from cleaning up memory snapshots.
5255

5356
## Node Modules
5457

55-
The `node_modules` folder is globally ignored. You can override this behaviour by adding `!node_modules` in your own project `.gitignore` file. While this will add `node_modules` folders to git, they won't be displayed in the UI.
58+
The `node_modules` folder is globally ignored. You can override this behavior by adding `!node_modules` in your own project `.gitignore` file. While this will add `node_modules` folders to git, they won't be displayed in the UI.
5659

5760
## Environment configuration
5861

59-
You can configure the environment of your VM with [Devcontainers](https://codesandbox.io/docs/learn/environment/devcontainers). To do this, create `.devcontainer/devcontainer.json` file in the root of the repository. After you've saved the file, you should be prompted with a notification to restart the container.
62+
You can configure the environment of your VM with [Dev Containers](https://codesandbox.io/docs/learn/environment/devcontainers). To do this, create `.devcontainer/devcontainer.json` file in the root of the repository. After you've saved the file, you should be prompted with a notification to restart the container.
6063

6164
### Configuring NodeJS version
6265

@@ -69,11 +72,11 @@ For example, to update NodeJS to v18, you can either create or update a `.devcon
6972
}
7073
```
7174

72-
We're using [Devcontainers](https://codesandbox.io/docs/learn/environment/devcontainers) to configure the environment.
75+
We're using [Dev Containers](https://codesandbox.io/docs/learn/environment/devcontainers) to configure the environment.
7376

7477
### Deno support
7578

76-
If we detect a `deno.json` file in your sandbox or repository during boot, we'll automatically enable the Deno LSP (which provides autocompletions) instead of the TypeScript LSP. You can also force this by creating a file called `.codesandbox/features.json` and inserting these contents:
79+
If we detect a `deno.json` file in your Sandbox or repository during boot, we'll automatically enable the Deno LSP (which provides autocompletions) instead of the TypeScript LSP. You can also force this by creating a file called `.codesandbox/features.json` and inserting these contents:
7780

7881
```json
7982
{

0 commit comments

Comments
 (0)