OpenVSCode Server
What is this?
This project provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. It's based on the very same architecture used by Gitpod or GitHub Codespaces at scale.
Why?
VS Code has traditionally been a desktop IDE built with web technologies. A few years back, people started patching it in order to run it in a remote context and to make it accessible through web browsers. These efforts have been complex and error prone, because many changes had to be made across the large code base of VS Code.
Luckily, in 2019 the VS Code team started to refactor its architecture to support a browser-based working mode. While this architecture has been adopted by Gitpod and GitHub, the important bits have not been open-sourced, until now. As a result, many people in the community still use the old, hard to maintain and error-prone approach.
At Gitpod, we've been asked a lot about how we do it. So we thought we might as well share the minimal set of changes needed so people can rely on the latest version of VS Code, have a straightforward upgrade path and low maintenance effort.
Getting started
Docker
- Start the server:
docker run -it --init -p 3000:3000 -v "$(pwd):/home/workspace:cached" gitpod/openvscode-server
- Visit localhost:3000.
Note: Feel free to use the nightly
tag to test the latest version, i.e. gitpod/openvscode-server:nightly
.
Custom Environment
- If you want to add dependencies to this Docker image, here is a template to help:
FROM gitpod/openvscode-server:latest USER root # to get permissions to install packages and such RUN # the installation process for software needed USER openvscode-server # to restore permissions for the web interface
- For additional possibilities, please consult the
Dockerfile
for OpenVSCode Server at https://github.com/gitpod-io/openvscode-releases/
Linux
- Download the latest release
- Untar and run the server:
tar -xzf openvscode-server-v${OPENVSCODE_SERVER_VERSION}.tar.gz cd openvscode-server-v${OPENVSCODE_SERVER_VERSION} ./server.sh
- Visit localhost:3000.
Note: You can use pre-releases to test nightly changes.
Deployment guides
Please refer to Guides to learn how to deploy OpenVSCode Server to your cloud provider of choice.
The scope of this project
This project only adds minimal bits required to run VS Code in a server scenario. We have no intention of changing VS Code in any way or to add additional features to VS Code itself. Please report feature requests, bug fixes, etc. in the upstream repository.
For any feature requests, bug reports, or contributions that are not specific to running VS Code in a server context, please go to Visual Studio Code - Open Source "OSS"
Documentation
All documentation is available in the docs
branch of this project.
Supporters
The project is supported by companies such as GitLab, VMware, Uber, SAP, Sourcegraph, RStudio, SUSE, Tabnine, Render and TypeFox.
Contributing
Thanks for your interest in contributing to the project 🙏. You can start a development environment with the following button:
To learn about the code structure and other topics related to contributing, please refer to the development docs.
Community & Feedback
To learn what others are up to and to provide feedback, please head over to the Discussions.
You can also follow us on Twitter @gitpod or come chat with us.
Legal
This project is not affiliated with Microsoft Corporation.