You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: packages/projects-docs/pages/learn/environment/vm.mdx
+28-25Lines changed: 28 additions & 25 deletions
Original file line number
Diff line number
Diff line change
@@ -1,30 +1,28 @@
1
1
---
2
2
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.
4
4
---
5
5
6
6
import { Callout } from'nextra-theme-docs'
7
7
8
8
# Environment
9
9
10
10
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.
12
12
13
13
| 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 |
28
26
29
27
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.
30
28
@@ -38,25 +36,30 @@ Note that, the first time you import a project to CodeSandbox, it can take longe
38
36
39
37
## Persistence
40
38
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.
42
44
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.
44
46
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 workspacefolder and some state in Docker (like volumes) for:
46
48
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.
48
51
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>
50
53
51
54
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.
52
55
53
56
## Node Modules
54
57
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.
56
59
57
60
## Environment configuration
58
61
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.
60
63
61
64
### Configuring NodeJS version
62
65
@@ -69,11 +72,11 @@ For example, to update NodeJS to v18, you can either create or update a `.devcon
69
72
}
70
73
```
71
74
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.
73
76
74
77
### Deno support
75
78
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:
0 commit comments