2022-11-25 23:54:43 +05:30
---
stage: Create
2023-06-20 00:43:36 +05:30
group: IDE
2022-11-25 23:54:43 +05:30
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
2023-07-09 08:55:56 +05:30
# Remote development (Beta) **(FREE)**
2022-11-25 23:54:43 +05:30
2023-06-20 00:43:36 +05:30
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95169) in GitLab 15.4 [with a flag](../../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default.
> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/371084) in GitLab 15.7.
> - [Enabled on self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115741) in GitLab 15.11.
2023-01-13 00:05:48 +05:30
FLAG:
2023-06-20 00:43:36 +05:30
On self-managed GitLab, by default this feature is available. To hide the feature, ask an administrator to [disable the feature flag ](../../../administration/feature_flags.md ) named `vscode_web_ide` . On GitLab.com, this feature is available. The feature is not ready for production use.
2023-01-13 00:05:48 +05:30
WARNING:
2023-07-09 08:55:56 +05:30
This feature is in [Beta ](../../../policy/alpha-beta-support.md#beta ) and subject to change without notice.
2023-01-13 00:05:48 +05:30
2023-07-09 08:55:56 +05:30
You can use remote development to write and compile code hosted on GitLab. With remote development, you can:
- Create a secure development environment in the cloud.
- Connect to that environment from your local machine through a web browser or client-based solution.
2022-11-25 23:54:43 +05:30
2023-06-20 00:43:36 +05:30
## Web IDE as a frontend
2022-11-25 23:54:43 +05:30
2023-07-09 08:55:56 +05:30
You can use the [Web IDE ](../web_ide/index.md ) to make, commit, and push changes to a project directly from your web browser.
2023-06-20 00:43:36 +05:30
This way, you can update any project without having to install any dependencies or clone any repositories locally.
2022-11-25 23:54:43 +05:30
2023-06-20 00:43:36 +05:30
The Web IDE, however, lacks a native runtime environment where you could compile code, run tests, or generate real-time feedback.
With remote development, you can use:
2022-11-25 23:54:43 +05:30
2023-06-20 00:43:36 +05:30
- The Web IDE as a frontend
- A separate machine as a backend runtime environment
2022-11-25 23:54:43 +05:30
2023-07-09 08:55:56 +05:30
For a complete IDE experience, connect the Web IDE to a development environment configured to run as a remote host. You can create this environment [inside ](../../workspace/index.md ) or [outside ](connect_machine.md ) of GitLab.
2022-11-25 23:54:43 +05:30
2023-06-20 00:43:36 +05:30
## Workspace
2022-11-25 23:54:43 +05:30
2023-07-09 08:55:56 +05:30
A [workspace ](../../workspace/index.md ) is a virtual sandbox environment for your code in GitLab that includes:
2022-11-25 23:54:43 +05:30
2023-06-20 00:43:36 +05:30
- A runtime environment
- Dependencies
- Configuration files
2022-11-25 23:54:43 +05:30
2023-06-20 00:43:36 +05:30
You can create a workspace from scratch or from a template that you can also customize.
2022-11-25 23:54:43 +05:30
2023-07-09 08:55:56 +05:30
When you configure and connect a workspace to the [Web IDE ](../web_ide/index.md ), you can:
2022-11-25 23:54:43 +05:30
2023-06-20 00:43:36 +05:30
- Edit files directly from the Web IDE and commit and push changes to GitLab.
- Use the Web IDE to run tests, debug code, and view real-time feedback.
2022-11-25 23:54:43 +05:30
2023-06-20 00:43:36 +05:30
## Manage a development environment
2022-11-25 23:54:43 +05:30
2023-06-20 00:43:36 +05:30
### Create a development environment
2022-11-25 23:54:43 +05:30
2023-06-20 00:43:36 +05:30
To create a development environment, run this command:
2022-11-25 23:54:43 +05:30
```shell
export CERTS_DIR="/home/ubuntu/.certbot/config/live/${DOMAIN}"
export PROJECTS_DIR="/home/ubuntu"
docker run -d \
--name my-environment \
-p 3443:3443 \
-v "${CERTS_DIR}/fullchain.pem:/gitlab-rd-web-ide/certs/fullchain.pem" \
-v "${CERTS_DIR}/privkey.pem:/gitlab-rd-web-ide/certs/privkey.pem" \
-v "${PROJECTS_DIR}:/projects" \
2023-05-27 22:25:52 +05:30
registry.gitlab.com/gitlab-org/remote-development/gitlab-rd-web-ide-docker:0.2-alpha \
2022-11-25 23:54:43 +05:30
--log-level warn --domain "${DOMAIN}" --ignore-version-mismatch
```
The new development environment starts automatically.
2023-06-20 00:43:36 +05:30
### Stop a development environment
To stop a running development environment, run this command:
2022-11-25 23:54:43 +05:30
```shell
docker container stop my-environment
```
2023-06-20 00:43:36 +05:30
### Start a development environment
To start a stopped development environment, run this command:
2022-11-25 23:54:43 +05:30
```shell
docker container start my-environment
```
2023-06-20 00:43:36 +05:30
The token changes every time you start the development environment.
2022-11-25 23:54:43 +05:30
2023-06-20 00:43:36 +05:30
### Remove a development environment
2022-11-25 23:54:43 +05:30
To remove a development environment:
2023-06-20 00:43:36 +05:30
1. [Stop the development environment ](#stop-a-development-environment ).
1. Run this command:
2022-11-25 23:54:43 +05:30
```shell
docker container rm my-environment
```