code-server/src/node/app
Anmol Sethi 5accf3fe5f
Add basic rate limiting to login endpoint
Closes #1320
2020-04-28 14:21:08 -04:00
..
README.md Add connection type to websocket query parameters 2020-03-05 15:49:37 -06:00
api.ts Create helper for determining if route is the root 2020-04-02 13:40:26 -05:00
bin.ts Move VS Code to the root 2020-03-02 12:55:34 -06:00
dashboard.ts Create helper for determining if route is the root 2020-04-02 13:40:26 -05:00
login.ts Add basic rate limiting to login endpoint 2020-04-28 14:21:08 -04:00
proxy.ts Move proxy logic into main HTTP server 2020-04-02 13:40:29 -05:00
static.ts Make client-side extensions work at any base 2020-03-16 12:04:09 -05:00
update.ts Improve request error handling 2020-04-17 15:16:10 -05:00
vscode.ts Allow specifying a workspace on the command line 2020-04-16 11:56:46 -05:00

README.md

Implementation of VS Code remote/web for use in code-server.

Docker

To debug Golang in VS Code using the ms-vscode-go extension, you need to add --security-opt seccomp=unconfined to your docker run arguments when launching code-server with Docker. See #725 for details.

Known Issues

  • Creating custom VS Code extensions and debugging them doesn't work.
  • Extension profiling and tips are currently disabled.

Extensions

code-server does not provide access to the official Visual Studio Marketplace. Instead, Coder has created a custom extension marketplace that we manage for open-source extensions. If you want to use an extension with code-server that we do not have in our marketplace please look for a release in the extensions repository, contact us to see if we have one in the works or, if you build an extension locally from open source, you can copy it to the extensions folder. If you build one locally from open-source please contribute it to the project and let us know so we can give you props! If you have your own custom marketplace, it is possible to point code-server to it by setting the SERVICE_URL and ITEM_URL environment variables.

Development: upgrading VS Code

We patch VS Code to provide and fix some functionality. As the web portion of VS Code matures, we'll be able to shrink and maybe even entirely eliminate our patch. In the meantime, however, upgrading the VS Code version requires ensuring that the patch still applies and has the intended effects.

If functionality doesn't depend on code from VS Code then it should be moved into code-server otherwise it should be in the patch.

To generate a new patch, stage all the changes you want to be included in the patch in the VS Code source, then run yarn patch:generate in this directory.

Our changes include:

  • Allow multiple extension directories (both user and built-in).
  • Modify the loader, websocket, webview, service worker, and asset requests to use the URL of the page as a base (and TLS if necessary for the websocket).
  • Send client-side telemetry through the server.
  • Make changing the display language work.
  • Make it possible for us to load code on the client.
  • Make extensions work in the browser.
  • Fix getting permanently disconnected when you sleep or hibernate for a while.
  • Make it possible to automatically update the binary.
  • Add connection type to web socket query parameters.

Future

  • Run VS Code unit tests against our builds to ensure features work as expected.