This commit is contained in:
Anmol Sethi 2020-02-18 19:07:01 -05:00
parent 5681c87e33
commit b6aa0cbcba
No known key found for this signature in database
GPG Key ID: 8CEF1878FF10ADEB
3 changed files with 87 additions and 91 deletions

View File

@ -1,4 +1,4 @@
# code-server · [![MIT license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/cdr/code-server/blob/master/LICENSE) [!["Latest Release"](https://img.shields.io/github/release/cdr/code-server.svg)](https://github.com/cdr/code-server/releases/latest) [![Build Status](https://img.shields.io/travis/com/cdr/code-server/master)](https://github.com/cdr/code-server) # code-server
`code-server` is [VS Code](https://github.com/Microsoft/vscode) running on a `code-server` is [VS Code](https://github.com/Microsoft/vscode) running on a
remote server, accessible through the browser. remote server, accessible through the browser.
@ -16,12 +16,7 @@ docker run -it -p 127.0.0.1:8080:8080 -v "$PWD:/home/coder/project" codercom/cod
compilations, downloads, and more. Preserve battery life when you're on the go compilations, downloads, and more. Preserve battery life when you're on the go
since all intensive computation runs on your server. since all intensive computation runs on your server.
![Screenshot](/doc/assets/ide.gif) ![Example gif](/doc/assets/ide.gif)
## VS Code
- See [our VS Code readme](./src/vscode) for more information about how
code-server and VS Code work together.
## Getting Started ## Getting Started
@ -33,16 +28,11 @@ docker run -it -p 127.0.0.1:8080:8080 -v "$PWD:/home/coder/project" codercom/cod
- Secure connection over HTTPS or localhost (required for service workers and - Secure connection over HTTPS or localhost (required for service workers and
clipboard support). clipboard support).
- For Linux: GLIBC 2.17 or later and GLIBCXX 3.4.15 or later. - For Linux: GLIBC 2.17 or later and GLIBCXX 3.4.15 or later.
- Docker (for Docker versions of `code-server`).
### Run over SSH ### Run over SSH
Use [sshcode](https://github.com/codercom/sshcode) for a simple setup. Use [sshcode](https://github.com/codercom/sshcode) for a simple setup.
### Docker
See the Docker one-liner mentioned above. Dockerfile is at [/Dockerfile](/Dockerfile).
### Digital Ocean ### Digital Ocean
[![Create a Droplet](./doc/assets/droplet.svg)](https://marketplace.digitalocean.com/apps/code-server?action=deploy) [![Create a Droplet](./doc/assets/droplet.svg)](https://marketplace.digitalocean.com/apps/code-server?action=deploy)
@ -57,87 +47,11 @@ See the Docker one-liner mentioned above. Dockerfile is at [/Dockerfile](/Docker
- For self-hosting and other information see [doc/quickstart.md](doc/quickstart.md). - For self-hosting and other information see [doc/quickstart.md](doc/quickstart.md).
- For hosting on cloud platforms see [doc/deploy.md](doc/deploy.md). - For hosting on cloud platforms see [doc/deploy.md](doc/deploy.md).
### Build ## FAQ
- [VS Code prerequisites](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#prerequisites) See [./doc/FAQ.md](./doc/FAQ.md).
```shell
yarn
yarn build
node build/out/entry.js # You can run the built JavaScript with Node.
yarn binary # Or you can package it into a binary.
```
If changes are made to the patch and you've built previously you must manually
reset VS Code then run `yarn patch:apply`.
## Security
### Authentication
By default `code-server` enables password authentication using a randomly
generated password. You can set the `PASSWORD` environment variable to use your
own instead or use `--auth none` to disable password authentication.
Do not expose `code-server` to the open internet without some form of
authentication.
### Encrypting traffic with HTTPS
If you aren't doing SSL termination elsewhere you can directly give
`code-server` a certificate with `code-server --cert` followed by the path to
your certificate. Additionally, you can use certificate keys with `--cert-key`
followed by the path to your key. If you pass `--cert` without any path
`code-server` will generate a self-signed certificate.
If `code-server` has been passed a certificate it will also respond to HTTPS
requests and will redirect all HTTP requests to HTTPS. Otherwise it will respond
only to HTTP requests.
You can use [Let's Encrypt](https://letsencrypt.org/) to get an SSL certificate
for free.
Do not expose `code-server` to the open internet without SSL, whether built-in
or through a proxy.
## Future
- **Stay up to date!** Get notified about new releases of `code-server`.
![Screenshot](/doc/assets/release.gif)
- Electron and Chrome OS applications to bridge the gap between local<->remote.
## Telemetry
Use the `--disable-telemetry` flag to completely disable telemetry. We use the
data collected to improve code-server.
## Contributing
### Development
- [VS Code prerequisites](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#prerequisites)
```shell
yarn
yarn watch # Visit http://localhost:8080 once completed.
```
If you run into issues about a different version of Node being used, try running
`npm rebuild` in the VS Code directory.
If changes are made to the patch and you've built previously you must manually
reset VS Code then run `yarn patch:apply`.
## License
[MIT](LICENSE)
## Enterprise ## Enterprise
Visit [our enterprise page](https://coder.com) for more information about our Visit [our enterprise page](https://coder.com) for more information about our
enterprise offering. enterprise offerings.
## Commercialization
If you would like to commercialize code-server, please contact
contact@coder.com.

33
doc/CONTRIBUTING.md Normal file
View File

@ -0,0 +1,33 @@
# Contributing
## Development Workflow
- [VS Code prerequisites](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#prerequisites)
```shell
yarn
yarn vscode
yarn watch # Visit http://localhost:8080 once completed.
```
Any changes made to the source will be live reloaded.
If you run into issues about a different version of Node being used, try running
`npm rebuild` in the VS Code directory.
If changes are made to the patch and you've built previously you must manually
reset VS Code then run `yarn vscode:patch`.
Some docs are available at [../src/node/app](../src/node/app) on how code-server
works internally.
## Build
- [VS Code prerequisites](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#prerequisites)
```shell
yarn
yarn build
node build/out/entry.js # You can run the built JavaScript with Node.
yarn binary # Or you can package it into a binary.
```

49
doc/FAQ.md Normal file
View File

@ -0,0 +1,49 @@
# FAQ
## What's the deal with extensions?
Unfortunately, the Microsoft VS Code Marketplace is
## How is this different from VS Code Online?
VS Code Online is a closed source managed service by Microsoft and only runs on Azure.
code-server is open source and can be freely ran on any machine.
## How should I expose code-server to the internet?
By far the most secure method of using code-server is via
[sshcode](https://github.com/codercom/sshcode) as it runs code-server and then forwards
its port over SSH and requires no setup on your part other than having a working SSH server.
If you cannot use sshcode, then you will need to ensure there is some sort of authorization in
front of code-server and that you are using HTTPS to secure all connections.
By default when listening externally, code-server enables password authentication using a
randomly generated password so you can use that. You can set the `PASSWORD` environment variable
to use your own instead. If you want to handle authentication yourself, use `--auth none`
to disable password authentication.
For HTTPS, you can use a self signed certificate by passing in just `--cert` or pass in an existing
certificate by providing the path to `--cert` and the path to its key with `--cert-key`.
If `code-server` has been passed a certificate it will also respond to HTTPS
requests and will redirect all HTTP requests to HTTPS. Otherwise it will respond
only to HTTP requests.
You can use [Let's Encrypt](https://letsencrypt.org/) to get an SSL certificate
for free.
## Why are there x86 releases?
32 bit releases have been
## Multi Tenancy
If you want to run multiple code-server's on shared infrastructure, we recommend using
something like kubernetes and the code-server docker image.
## How can I disable telemetry?
Use the `--disable-telemetry` flag to completely disable telemetry. We use the
data collected only to improve code-server.