|
1 |
| -# Visual Studio Code - Open Source ("Code - OSS") |
2 |
| -[](https://github.com/microsoft/vscode/issues?q=is%3Aopen+is%3Aissue+label%3Afeature-request+sort%3Areactions-%2B1-desc) |
3 |
| -[](https://github.com/microsoft/vscode/issues?utf8=✓&q=is%3Aissue+is%3Aopen+label%3Abug) |
4 |
| -[](https://gitter.im/Microsoft/vscode) |
| 1 | +# OpenVSCode Server |
5 | 2 |
|
6 |
| -## The Repository |
| 3 | +[](https://gitpod.io/from-referrer) |
| 4 | +[](https://github.com/gitpod-io/openvscode-server/blob/main/LICENSE.txt) |
| 5 | +[](https://www.gitpod.io/chat) |
7 | 6 |
|
8 |
| -This repository ("`Code - OSS`") is where we (Microsoft) develop the [Visual Studio Code](https://code.visualstudio.com) product together with the community. Not only do we work on code and issues here, we also publish our [roadmap](https://github.com/microsoft/vscode/wiki/Roadmap), [monthly iteration plans](https://github.com/microsoft/vscode/wiki/Iteration-Plans), and our [endgame plans](https://github.com/microsoft/vscode/wiki/Running-the-Endgame). This source code is available to everyone under the standard [MIT license](https://github.com/microsoft/vscode/blob/main/LICENSE.txt). |
| 7 | +## What is this? |
9 | 8 |
|
10 |
| -## Visual Studio Code |
| 9 | +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](https://www.gitpod.io) or [GitHub Codespaces](https://github.com) at scale. |
11 | 10 |
|
12 |
| -<p align="center"> |
13 |
| - <img alt="VS Code in action" src="https://user-images.githubusercontent.com/35271042/118224532-3842c400-b438-11eb-923d-a5f66fa6785a.png"> |
14 |
| -</p> |
| 11 | +<img width="1624" alt="Screenshot 2021-09-02 at 08 39 26" src="https://user-images.githubusercontent.com/372735/131794918-d6602646-4d67-435b-88fe-620a3cc0a3aa.png"> |
15 | 12 |
|
16 |
| -[Visual Studio Code](https://code.visualstudio.com) is a distribution of the `Code - OSS` repository with Microsoft specific customizations released under a traditional [Microsoft product license](https://code.visualstudio.com/License/). |
| 13 | +## Why? |
17 | 14 |
|
18 |
| -[Visual Studio Code](https://code.visualstudio.com) combines the simplicity of a code editor with what developers need for their core edit-build-debug cycle. It provides comprehensive code editing, navigation, and understanding support along with lightweight debugging, a rich extensibility model, and lightweight integration with existing tools. |
| 15 | +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. |
19 | 16 |
|
20 |
| -Visual Studio Code is updated monthly with new features and bug fixes. You can download it for Windows, macOS, and Linux on [Visual Studio Code's website](https://code.visualstudio.com/Download). To get the latest releases every day, install the [Insiders build](https://code.visualstudio.com/insiders). |
| 17 | +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. |
21 | 18 |
|
22 |
| -## Contributing |
| 19 | +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. |
| 20 | + |
| 21 | +## Getting started |
| 22 | + |
| 23 | +### Docker |
| 24 | + |
| 25 | +- Start the server: |
| 26 | +```bash |
| 27 | +docker run -it --init -p 3000:3000 -v "$(pwd):/home/workspace:cached" gitpod/openvscode-server |
| 28 | +``` |
| 29 | +- Visit [localhost:3000](http://localhost:3000). |
| 30 | + |
| 31 | +_Note_: Feel free to use the `nightly` tag to test the latest version, i.e. `gitpod/openvscode-server:nightly`. |
23 | 32 |
|
24 |
| -There are many ways in which you can participate in this project, for example: |
| 33 | +#### Custom Environment |
| 34 | +- If you want to add dependencies to this Docker image, here is a template to help: |
| 35 | + ```Dockerfile |
25 | 36 |
|
26 |
| -* [Submit bugs and feature requests](https://github.com/microsoft/vscode/issues), and help us verify as they are checked in |
27 |
| -* Review [source code changes](https://github.com/microsoft/vscode/pulls) |
28 |
| -* Review the [documentation](https://github.com/microsoft/vscode-docs) and make pull requests for anything from typos to additional and new content |
| 37 | + FROM gitpod/openvscode-server:latest |
29 | 38 |
|
30 |
| -If you are interested in fixing issues and contributing directly to the code base, |
31 |
| -please see the document [How to Contribute](https://github.com/microsoft/vscode/wiki/How-to-Contribute), which covers the following: |
| 39 | + USER root # to get permissions to install packages and such |
| 40 | + RUN # the installation process for software needed |
| 41 | + USER openvscode-server # to restore permissions for the web interface |
32 | 42 |
|
33 |
| -* [How to build and run from source](https://github.com/microsoft/vscode/wiki/How-to-Contribute) |
34 |
| -* [The development workflow, including debugging and running tests](https://github.com/microsoft/vscode/wiki/How-to-Contribute#debugging) |
35 |
| -* [Coding guidelines](https://github.com/microsoft/vscode/wiki/Coding-Guidelines) |
36 |
| -* [Submitting pull requests](https://github.com/microsoft/vscode/wiki/How-to-Contribute#pull-requests) |
37 |
| -* [Finding an issue to work on](https://github.com/microsoft/vscode/wiki/How-to-Contribute#where-to-contribute) |
38 |
| -* [Contributing to translations](https://aka.ms/vscodeloc) |
| 43 | + ``` |
| 44 | +- For additional possibilities, please consult the `Dockerfile` for OpenVSCode Server at https://github.com/gitpod-io/openvscode-releases/ |
39 | 45 |
|
40 |
| -## Feedback |
| 46 | +### Linux |
41 | 47 |
|
42 |
| -* Ask a question on [Stack Overflow](https://stackoverflow.com/questions/tagged/vscode) |
43 |
| -* [Request a new feature](CONTRIBUTING.md) |
44 |
| -* Upvote [popular feature requests](https://github.com/microsoft/vscode/issues?q=is%3Aopen+is%3Aissue+label%3Afeature-request+sort%3Areactions-%2B1-desc) |
45 |
| -* [File an issue](https://github.com/microsoft/vscode/issues) |
46 |
| -* Follow [@code](https://twitter.com/code) and let us know what you think! |
| 48 | +- [Download the latest release](https://github.com/gitpod-io/openvscode-server/releases/latest) |
| 49 | +- Untar and run the server: |
| 50 | +```bash |
| 51 | +tar -xzf openvscode-server-v${OPENVSCODE_SERVER_VERSION}.tar.gz |
| 52 | +cd openvscode-server-v${OPENVSCODE_SERVER_VERSION} |
| 53 | +./server.sh |
| 54 | +``` |
| 55 | +- Visit [localhost:3000](http://localhost:3000). |
47 | 56 |
|
48 |
| -See our [wiki](https://github.com/microsoft/vscode/wiki/Feedback-Channels) for a description of each of these channels and information on some other available community-driven channels. |
| 57 | +_Note_: You can use [pre-releases](https://github.com/gitpod-io/openvscode-server/releases) to test nightly changes. |
49 | 58 |
|
50 |
| -## Related Projects |
| 59 | +### Deployment guides |
51 | 60 |
|
52 |
| -Many of the core components and extensions to VS Code live in their own repositories on GitHub. For example, the [node debug adapter](https://github.com/microsoft/vscode-node-debug) and the [mono debug adapter](https://github.com/microsoft/vscode-mono-debug) have their own repositories. For a complete list, please visit the [Related Projects](https://github.com/microsoft/vscode/wiki/Related-Projects) page on our [wiki](https://github.com/microsoft/vscode/wiki). |
| 61 | +Please refer to [Guides](https://github.com/gitpod-io/openvscode-server/tree/docs/guides) to learn how to deploy OpenVSCode Server to your cloud provider of choice. |
53 | 62 |
|
54 |
| -## Bundled Extensions |
| 63 | +## The scope of this project |
55 | 64 |
|
56 |
| -VS Code includes a set of built-in extensions located in the [extensions](extensions) folder, including grammars and snippets for many languages. Extensions that provide rich language support (code completion, Go to Definition) for a language have the suffix `language-features`. For example, the `json` extension provides coloring for `JSON` and the `json-language-features` provides rich language support for `JSON`. |
| 65 | +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. |
57 | 66 |
|
58 |
| -## Development Container |
| 67 | +> **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"](https://github.com/microsoft/vscode)** |
59 | 68 |
|
60 |
| -This repository includes a Visual Studio Code Remote - Containers / GitHub Codespaces development container. |
| 69 | +## Documentation |
| 70 | + |
| 71 | +All documentation is available in [the `docs` branch](https://github.com/gitpod-io/openvscode-server/tree/docs) of this project. |
| 72 | + |
| 73 | +## Supporters |
| 74 | + |
| 75 | +The project is supported by companies such as [GitLab](https://gitlab.com/), [VMware](https://www.vmware.com/), [Uber](https://www.uber.com/), [SAP](https://www.sap.com/), [Sourcegraph](https://sourcegraph.com/), [RStudio](https://www.rstudio.com/), [SUSE](https://rancher.com/), [Tabnine](https://www.tabnine.com/), [Render](https://render.com/) and [TypeFox](https://www.typefox.io/). |
| 76 | + |
| 77 | +## Contributing |
61 | 78 |
|
62 |
| -- For [Remote - Containers](https://aka.ms/vscode-remote/download/containers), use the **Remote-Containers: Clone Repository in Container Volume...** command which creates a Docker volume for better disk I/O on macOS and Windows. |
63 |
| -- For Codespaces, install the [Github Codespaces](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces) extension in VS Code, and use the **Codespaces: Create New Codespace** command. |
| 79 | +Thanks for your interest in contributing to the project 🙏. You can start a development environment with the following button: |
64 | 80 |
|
65 |
| -Docker / the Codespace should have at least **4 Cores and 6 GB of RAM (8 GB recommended)** to run full build. See the [development container README](.devcontainer/README.md) for more information. |
| 81 | +[](https://gitpod.io/from-referrer) |
66 | 82 |
|
67 |
| -## Code of Conduct |
| 83 | +To learn about the code structure and other topics related to contributing, please refer to the [development docs](https://github.com/gitpod-io/openvscode-server/blob/docs/development.md). |
68 | 84 |
|
69 |
| -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. |
| 85 | +## Community & Feedback |
70 | 86 |
|
71 |
| -## License |
| 87 | +To learn what others are up to and to provide feedback, please head over to the [Discussions](https://github.com/gitpod-io/openvscode-server/discussions). |
72 | 88 |
|
73 |
| -Copyright (c) Microsoft Corporation. All rights reserved. |
| 89 | +You can also follow us on Twitter [@gitpod](https://twitter.com/gitpod) or come [chat with us](https://www.gitpod.io/chat). |
74 | 90 |
|
75 |
| -Licensed under the [MIT](LICENSE.txt) license. |
| 91 | +## Legal |
| 92 | +This project is not affiliated with Microsoft Corporation. |
0 commit comments