code-server/README.md

164 lines
6.4 KiB
Markdown
Raw Normal View History

2019-08-01 05:08:37 +07:00
# 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)
2019-01-08 07:46:19 +07:00
`code-server` is [VS Code](https://github.com/Microsoft/vscode) running on a
remote server, accessible through the browser.
2019-03-06 08:45:21 +07:00
2019-03-07 09:59:43 +07:00
Try it out:
2019-09-27 21:39:29 +07:00
2019-03-07 09:59:43 +07:00
```bash
2019-09-18 00:27:32 +07:00
docker run -it -p 127.0.0.1:8080:8080 -v "${HOME}/.local/share/code-server:/home/coder/.local/share/code-server" -v "$PWD:/home/coder/project" codercom/code-server:v2
2019-03-07 09:59:43 +07:00
```
2019-08-01 05:08:37 +07:00
- **Consistent environment:** Code on your Chromebook, tablet, and laptop with a
consistent dev environment. develop more easily for Linux if you have a
Windows or Mac, and pick up where you left off when switching workstations.
- **Server-powered:** Take advantage of large cloud servers to speed up tests,
compilations, downloads, and more. Preserve battery life when you're on the go
since all intensive computation runs on your server.
2019-07-22 22:21:15 +07:00
![Screenshot](/doc/assets/ide.gif)
## Getting Started
### Requirements
- Minimum GLIBC version of 2.17 and a minimum version of GLIBCXX of 3.4.15.
- This is the main requirement for building Visual Studio Code. We cannot go lower than this.
- A 64-bit host with at least 1GB RAM and 2 cores.
2019-09-27 21:39:29 +07:00
- 1 core hosts would work but not optimally.
- Docker (for Docker versions of `code-server`).
2019-04-20 08:20:31 +07:00
### Run over SSH
2019-09-27 21:39:29 +07:00
2019-04-20 08:22:00 +07:00
Use [sshcode](https://github.com/codercom/sshcode) for a simple setup.
2019-04-20 08:20:31 +07:00
2019-03-07 09:59:43 +07:00
### Docker
2019-09-27 21:39:29 +07:00
2019-08-01 05:08:37 +07:00
See the Docker one-liner mentioned above. Dockerfile is at [/Dockerfile](/Dockerfile).
2019-03-07 09:59:43 +07:00
To debug Golang using the
[ms-vscode-go extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go),
you need to add `--security-opt seccomp=unconfined` to your `docker run`
arguments when launching code-server with Docker. See
[#725](https://github.com/cdr/code-server/issues/725) for details.
2019-09-13 22:17:27 +07:00
### Digital Ocean
2019-09-27 21:39:29 +07:00
2019-09-13 22:17:27 +07:00
[![Create a Droplet](./doc/assets/droplet.svg)](https://marketplace.digitalocean.com/apps/code-server?action=deploy)
### Binaries
2019-09-27 21:39:29 +07:00
2019-08-01 05:08:37 +07:00
1. [Download a binary](https://github.com/cdr/code-server/releases). (Linux and
2019-09-27 21:39:29 +07:00
OS X supported. Windows coming soon)
2. Unpack the downloaded file then run the binary.
2019-08-08 23:21:45 +07:00
3. In your browser navigate to `localhost:8080`.
2019-01-08 07:46:19 +07:00
- 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).
### Build
2019-09-27 21:39:29 +07:00
2019-10-19 07:10:55 +07:00
```shell
export OUT=/path/to/output/build # Optional if only building. Required if also developing.
yarn build ${vscodeVersion} ${codeServerVersion} # See travis.yml for the VS Code version to use.
# The code-server version can be anything you want.
node ~/path/to/output/build/out/vs/server/main.js # You can run the built JavaScript with Node.
yarn binary ${vscodeVersion} ${codeServerVersion} # Or you can package it into a binary.
```
2019-07-02 23:33:27 +07:00
## Known Issues
2019-09-27 21:39:29 +07:00
- Creating custom VS Code extensions and debugging them doesn't work.
- Extension profiling and tips are currently disabled.
## Future
2019-09-27 21:39:29 +07:00
- **Stay up to date!** Get notified about new releases of code-server.
![Screenshot](/doc/assets/release.gif)
- Windows support.
2019-03-15 05:32:18 +07:00
- Electron and Chrome OS applications to bridge the gap between local<->remote.
- Run VS Code unit tests against our builds to ensure features work as expected.
## Extensions
2019-09-27 21:39:29 +07:00
code-server does not provide access to the official
[Visual Studio Marketplace](https://marketplace.visualstudio.com/vscode). 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 extension’s 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.
## Telemetry
2019-09-27 21:39:29 +07:00
Use the `--disable-telemetry` flag to completely disable telemetry. We use the
data collected to improve code-server.
## Contributing
2019-09-27 21:39:29 +07:00
2019-07-17 02:57:02 +07:00
### Development
2019-09-27 21:39:29 +07:00
```shell
2019-07-17 02:57:02 +07:00
git clone https://github.com/microsoft/vscode
cd vscode
2019-10-19 07:10:55 +07:00
git checkout ${vscodeVersion} # See travis.yml for the version to use.
yarn
2019-07-17 02:57:02 +07:00
git clone https://github.com/cdr/code-server src/vs/server
cd src/vs/server
yarn
2019-10-19 07:10:55 +07:00
yarn patch:apply
2019-07-17 02:57:02 +07:00
yarn watch
# Wait for the initial compilation to complete (it will say "Finished compilation").
2019-07-20 06:45:13 +07:00
# Run the next command in another shell.
yarn start
2019-08-08 23:21:45 +07:00
# Visit http://localhost:8080
2019-07-17 02:57:02 +07:00
```
If you run into issues about a different version of Node being used, try running
`npm rebuild` in the VS Code directory and ignore the error at the end from
`vscode-ripgrep`.
2019-07-17 02:57:02 +07:00
### Upgrading VS Code
2019-09-27 21:39:29 +07:00
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.
2019-01-08 07:46:19 +07:00
2019-07-17 02:57:02 +07:00
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.
2019-01-08 07:46:19 +07:00
Our changes include:
2019-09-27 21:39:29 +07:00
- Change the remote schema to `code-server`.
2019-08-01 05:08:37 +07:00
- 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 and get the initial log level
from the server.
- Add an upload service for use in editor windows and the explorer along with a
file prefix to ignore for temporary files created during upload.
- Make changing the display language work.
- Make hiding or toggling the menu bar possible.
2019-08-01 05:08:37 +07:00
- Make it possible for us to load code on the client.
- Modify the build process to include our code.
2019-07-17 02:57:02 +07:00
## License
2019-09-27 21:39:29 +07:00
[MIT](LICENSE)
2019-01-08 07:46:19 +07:00
## Enterprise
2019-09-27 21:39:29 +07:00
Visit [our enterprise page](https://coder.com/enterprise) for more information
about our enterprise offering.
## Commercialization
2019-09-27 21:39:29 +07:00
If you would like to commercialize code-server, please contact
contact@coder.com.