From 1be0577b22b5f58c4a83ba49a136600d907c3f57 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 17 Apr 2019 11:38:02 -0500 Subject: [PATCH 01/14] Initial commit --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 547c336c1ca7..f76c8984ac09 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,18 @@ Quickstart guides for [Google Cloud](doc/admin/install/google_cloud.md), [AWS](d How to [secure your setup](/doc/security/ssl.md). +### Build + +1. Clone the code-server [repository](https://github.com/codercom/code-server.git) +2. `cd` into `code-server` +3. Run `yarn` +4. Run `yarn task build:server:binary` +5. To run without building the binary use `yarn start` + +> You can rebuild specific portions of the app with the following: +> - bootstrap-fork: `yarn task build:bootstrap:fork` +> + ## Development ### Known Issues From d291d106b3b50bcdf1ef23830014c88f72bbff07 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 17 Apr 2019 12:36:11 -0500 Subject: [PATCH 02/14] Require 10.15.1 in package.json, make build.md, add link to main readme --- README.md | 13 ++----------- doc/self-hosted/build.md | 0 package.json | 6 +++++- 3 files changed, 7 insertions(+), 12 deletions(-) create mode 100644 doc/self-hosted/build.md diff --git a/README.md b/README.md index f76c8984ac09..6706de5f4998 100644 --- a/README.md +++ b/README.md @@ -46,17 +46,8 @@ Quickstart guides for [Google Cloud](doc/admin/install/google_cloud.md), [AWS](d How to [secure your setup](/doc/security/ssl.md). -### Build - -1. Clone the code-server [repository](https://github.com/codercom/code-server.git) -2. `cd` into `code-server` -3. Run `yarn` -4. Run `yarn task build:server:binary` -5. To run without building the binary use `yarn start` - -> You can rebuild specific portions of the app with the following: -> - bootstrap-fork: `yarn task build:bootstrap:fork` -> +### Build instructions +Please visit our [build guide](/doc/self-hosted/build.md) for steps on how to build the binary ## Development diff --git a/doc/self-hosted/build.md b/doc/self-hosted/build.md new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/package.json b/package.json index 8ef3c956af45..136bfc40e4f3 100644 --- a/package.json +++ b/package.json @@ -66,5 +66,9 @@ "node-pty": "0.8.1", "spdlog": "0.8.1", "webpack-merge": "^4.2.1" - } + }, + "engines": { + "node": ">=10.15.1" + }, + "engineStrict": true } From 224f765fc2db5cd2f243631d8220e78c9aa880be Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 17 Apr 2019 13:43:03 -0500 Subject: [PATCH 03/14] Add all yarn tasks to build guide --- doc/self-hosted/build.md | 59 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/doc/self-hosted/build.md b/doc/self-hosted/build.md index e69de29bb2d1..a6f2a297f260 100644 --- a/doc/self-hosted/build.md +++ b/doc/self-hosted/build.md @@ -0,0 +1,59 @@ +# Build instructions for code-server 🏗️ + +code-server has several yarn tasks for building the entire binary or specific portions of the app. This guide provides steps to do the aforementioned tasks. Coder recommends having Node 10.15.1+ installed. +> Yarn installation: https://yarnpkg.com/lang/en/docs/install + +### Build the binary + +1. Clone the [repository](https://github.com/codercom/code-server.git) +2. `cd` into `code-server` +3. Run `yarn` +4. Run `yarn task build:server:binary` + > Binary will be placed in `packages/server` named after the platform and architecture (`cli-darwin-x64`) + +### Run without building +1. Clone the [repository](https://github.com/codercom/code-server.git) +2. `cd` into `code-server` +3. Run `yarn` +4. Run `yarn start` + > *If you run into issues with websocket disconnects, run with `yarn start --no-auth`* + +### Build Tasks + +- **bootstrap-fork**: Forks VS Code sub-processes such as the shared process, extension host, searcher, and watcher + ```bash + yarn task build:bootstrap:fork + ``` +- **binary package**: Packages existing built files with [nbin](https://github.com/codercom/nbin) + ```bash + yarn task build:server:binary:package + ``` +- **binary copy**: Copies all existing built files into a single directory + ```bash + yarn task build:server:binary:copy + ``` +- **app browser**: Builds the login page for authenticated servers + ```bash + yarn task build:app:browser + ``` +- **web**: Builds the VS Code editor + ```bash + yarn task build:web + ``` +- **vscode install**: Downloads and extracts the correct VS Code version. If the version exists, runs `git reset --hard` + ```bash + yarn task vscode:install + ``` +- **vscode patch**: Patches VS Code for the browser + ```bash + yarn task vscode:patch + ``` + > *VS Code must be downloaded and extracted first with the `vscode:install`* +- **package**: Packages code-server for release in `.gz` and `.zip` format + ```bash + yarn task package + ``` +- **bundle**: Runs all yarn task with the exception of `package` + ```bash + yarn task build:server:bundle + ``` \ No newline at end of file From d66be2b73884720a62ddbcac1ee6cb219dba1fa7 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 17 Apr 2019 13:48:24 -0500 Subject: [PATCH 04/14] Add windows note --- README.md | 4 ++-- doc/self-hosted/build.md | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6706de5f4998..214322df2f5a 100644 --- a/README.md +++ b/README.md @@ -46,8 +46,8 @@ Quickstart guides for [Google Cloud](doc/admin/install/google_cloud.md), [AWS](d How to [secure your setup](/doc/security/ssl.md). -### Build instructions -Please visit our [build guide](/doc/self-hosted/build.md) for steps on how to build the binary +## Build instructions +Please visit our [build guide](/doc/self-hosted/build.md) for steps on how to build the binary. ## Development diff --git a/doc/self-hosted/build.md b/doc/self-hosted/build.md index a6f2a297f260..4a71849644ac 100644 --- a/doc/self-hosted/build.md +++ b/doc/self-hosted/build.md @@ -1,6 +1,8 @@ # Build instructions for code-server 🏗️ code-server has several yarn tasks for building the entire binary or specific portions of the app. This guide provides steps to do the aforementioned tasks. Coder recommends having Node 10.15.1+ installed. + +**NOTE:** Windows compatibility is in the works > Yarn installation: https://yarnpkg.com/lang/en/docs/install ### Build the binary From f87290e1bdb8e971c196b5ce0e16fd4aa8bd72b0 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 17 Apr 2019 13:51:45 -0500 Subject: [PATCH 05/14] Remove deprecated flag --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 136bfc40e4f3..e01adaf2aaf9 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,5 @@ }, "engines": { "node": ">=10.15.1" - }, - "engineStrict": true + } } From 32faeef804de31ee19943e7e011db4ecf51d6cfb Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 17 Apr 2019 14:01:27 -0500 Subject: [PATCH 06/14] Fix typo --- doc/self-hosted/build.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/doc/self-hosted/build.md b/doc/self-hosted/build.md index 4a71849644ac..eb27cbb5901c 100644 --- a/doc/self-hosted/build.md +++ b/doc/self-hosted/build.md @@ -6,7 +6,6 @@ code-server has several yarn tasks for building the entire binary or specific po > Yarn installation: https://yarnpkg.com/lang/en/docs/install ### Build the binary - 1. Clone the [repository](https://github.com/codercom/code-server.git) 2. `cd` into `code-server` 3. Run `yarn` @@ -24,7 +23,7 @@ code-server has several yarn tasks for building the entire binary or specific po - **bootstrap-fork**: Forks VS Code sub-processes such as the shared process, extension host, searcher, and watcher ```bash - yarn task build:bootstrap:fork + yarn task build:bootstrap-fork ``` - **binary package**: Packages existing built files with [nbin](https://github.com/codercom/nbin) ```bash From 04c69ac5fef8c020c26ae8c1a079c13e7bab0844 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 17 Apr 2019 16:44:45 -0500 Subject: [PATCH 07/14] Add no-auth to start command --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e01adaf2aaf9..d0d42c3b176c 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "build:rules": "cd ./rules && tsc -p .", "packages:install": "cd ./packages && yarn", "postinstall": "npm-run-all --parallel packages:install build:rules", - "start": "cd ./packages/server && yarn start", + "start": "cd ./packages/server && yarn start --no-auth", "task": "ts-node -r tsconfig-paths/register build/tasks.ts", "test": "cd ./packages && yarn test" }, From 82e22dc12ec0615de698490c70274caa74dbe52d Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 17 Apr 2019 16:52:06 -0500 Subject: [PATCH 08/14] Remove uncommon commands, typo --- README.md | 2 +- doc/self-hosted/build.md | 19 +------------------ 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 214322df2f5a..2a45034b559d 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ Quickstart guides for [Google Cloud](doc/admin/install/google_cloud.md), [AWS](d How to [secure your setup](/doc/security/ssl.md). -## Build instructions +## Build Instructions Please visit our [build guide](/doc/self-hosted/build.md) for steps on how to build the binary. ## Development diff --git a/doc/self-hosted/build.md b/doc/self-hosted/build.md index eb27cbb5901c..6594d120c9b6 100644 --- a/doc/self-hosted/build.md +++ b/doc/self-hosted/build.md @@ -13,11 +13,7 @@ code-server has several yarn tasks for building the entire binary or specific po > Binary will be placed in `packages/server` named after the platform and architecture (`cli-darwin-x64`) ### Run without building -1. Clone the [repository](https://github.com/codercom/code-server.git) -2. `cd` into `code-server` -3. Run `yarn` -4. Run `yarn start` - > *If you run into issues with websocket disconnects, run with `yarn start --no-auth`* +Running from the binary is possible with `yarn-start` after you have built the binary at least once. This is required for bootstrap-fork and built in extensions to work properly. ### Build Tasks @@ -29,10 +25,6 @@ code-server has several yarn tasks for building the entire binary or specific po ```bash yarn task build:server:binary:package ``` -- **binary copy**: Copies all existing built files into a single directory - ```bash - yarn task build:server:binary:copy - ``` - **app browser**: Builds the login page for authenticated servers ```bash yarn task build:app:browser @@ -41,15 +33,6 @@ code-server has several yarn tasks for building the entire binary or specific po ```bash yarn task build:web ``` -- **vscode install**: Downloads and extracts the correct VS Code version. If the version exists, runs `git reset --hard` - ```bash - yarn task vscode:install - ``` -- **vscode patch**: Patches VS Code for the browser - ```bash - yarn task vscode:patch - ``` - > *VS Code must be downloaded and extracted first with the `vscode:install`* - **package**: Packages code-server for release in `.gz` and `.zip` format ```bash yarn task package From 9482073ed8c9402d64725ac14ca13b92aa6a1cda Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 17 Apr 2019 16:56:23 -0500 Subject: [PATCH 09/14] Add requirements section --- doc/self-hosted/build.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/self-hosted/build.md b/doc/self-hosted/build.md index 6594d120c9b6..b2280ce4c01e 100644 --- a/doc/self-hosted/build.md +++ b/doc/self-hosted/build.md @@ -1,9 +1,11 @@ # Build instructions for code-server 🏗️ -code-server has several yarn tasks for building the entire binary or specific portions of the app. This guide provides steps to do the aforementioned tasks. Coder recommends having Node 10.15.1+ installed. +code-server has several yarn tasks for building the entire binary or specific portions of the app. This guide provides steps to do the aforementioned tasks. **NOTE:** Windows compatibility is in the works -> Yarn installation: https://yarnpkg.com/lang/en/docs/install + +### Requirements +- Node 10.15.1+: https://nodejs.org/en/download/releases/ ### Build the binary 1. Clone the [repository](https://github.com/codercom/code-server.git) From ebd152f39ece59e9d0fdf8a6fc7458b2bf107a3f Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Wed, 17 Apr 2019 16:59:14 -0500 Subject: [PATCH 10/14] Fix headers --- doc/self-hosted/build.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/self-hosted/build.md b/doc/self-hosted/build.md index b2280ce4c01e..e7f0cf7d270d 100644 --- a/doc/self-hosted/build.md +++ b/doc/self-hosted/build.md @@ -1,4 +1,4 @@ -# Build instructions for code-server 🏗️ +# Building instructions for code-server 🏗️ code-server has several yarn tasks for building the entire binary or specific portions of the app. This guide provides steps to do the aforementioned tasks. @@ -7,7 +7,7 @@ code-server has several yarn tasks for building the entire binary or specific po ### Requirements - Node 10.15.1+: https://nodejs.org/en/download/releases/ -### Build the binary +## Build the binary 1. Clone the [repository](https://github.com/codercom/code-server.git) 2. `cd` into `code-server` 3. Run `yarn` From 603ebaec46eccffc957c3a0658d46bc8121ab3ea Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 18 Apr 2019 09:56:28 -0500 Subject: [PATCH 11/14] Add updated password entry asset --- doc/assets/password_entry.png | Bin 0 -> 24869 bytes doc/self-hosted/index.md | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 doc/assets/password_entry.png diff --git a/doc/assets/password_entry.png b/doc/assets/password_entry.png new file mode 100644 index 0000000000000000000000000000000000000000..29e34024705dfb4dc56a9781d53a7a722102328d GIT binary patch literal 24869 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 QQ}jpgiZQklb1nS;0Q?C)5C8xG literal 0 HcmV?d00001 diff --git a/doc/self-hosted/index.md b/doc/self-hosted/index.md index c3ee6a998d1f..e16bd82cb74c 100644 --- a/doc/self-hosted/index.md +++ b/doc/self-hosted/index.md @@ -21,7 +21,8 @@ It takes just a few minutes to get your own self-hosted server running. If you'v 2. Double click the executable to run in the current directory 3. Copy the password that appears in the cli 4. In your browser navigate to `localhost:8443` -5. Paste the password from the cli into the login window +5. Paste the password from the cli into the login window + > NOTE: Be careful with your password as sharing it will grant those users access to your server's file system ### Things To Know @@ -116,4 +117,4 @@ OPTIONS *Important:* For more details about Apache reverse proxy configuration checkout the [documentation](https://httpd.apache.org/docs/current/mod/mod_proxy.html) - especially the [Securing your Server](https://httpd.apache.org/docs/current/mod/mod_proxy.html#access) section ### Help - Use `code-server -h` or `code-server --help` to view the usage for the cli. This is also shown at the beginning of this section. + Use `code-server --help` to view the usage for the cli. This is also shown at the beginning of this section. From 549b99e164c5252cdf111bf6f4a5e4a702862bac Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 18 Apr 2019 09:58:00 -0500 Subject: [PATCH 12/14] Revert image change --- doc/self-hosted/index.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/doc/self-hosted/index.md b/doc/self-hosted/index.md index e16bd82cb74c..c3ee6a998d1f 100644 --- a/doc/self-hosted/index.md +++ b/doc/self-hosted/index.md @@ -21,8 +21,7 @@ It takes just a few minutes to get your own self-hosted server running. If you'v 2. Double click the executable to run in the current directory 3. Copy the password that appears in the cli 4. In your browser navigate to `localhost:8443` -5. Paste the password from the cli into the login window - +5. Paste the password from the cli into the login window > NOTE: Be careful with your password as sharing it will grant those users access to your server's file system ### Things To Know @@ -117,4 +116,4 @@ OPTIONS *Important:* For more details about Apache reverse proxy configuration checkout the [documentation](https://httpd.apache.org/docs/current/mod/mod_proxy.html) - especially the [Securing your Server](https://httpd.apache.org/docs/current/mod/mod_proxy.html#access) section ### Help - Use `code-server --help` to view the usage for the cli. This is also shown at the beginning of this section. + Use `code-server -h` or `code-server --help` to view the usage for the cli. This is also shown at the beginning of this section. From 397970503cb2d701c57ebcdf16b36eb05d32a634 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Mon, 22 Apr 2019 13:31:41 -0500 Subject: [PATCH 13/14] Remove redundant and unecessary information --- README.md | 4 ++-- doc/self-hosted/build.md | 9 ++------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 2a45034b559d..fbe992e8656a 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ See docker oneliner mentioned above. Dockerfile is at [/Dockerfile](/Dockerfile) > You will be prompted to enter the password shown in the CLI `code-server` should now be running at https://localhost:8443. - > code-server uses a self-signed SSL certificate that may prompt your browser to ask you some additional questions before you proceed. Please [read here](doc/self-hosted/index.md) for more information. + > code-server uses a self-signed SSL certificate that may prompt your browser to ask you some additional questions before you proceed. [Read here](doc/self-hosted/index.md) for more information. For detailed instructions and troubleshooting, see the [self-hosted quick start guide](doc/self-hosted/index.md). @@ -47,7 +47,7 @@ Quickstart guides for [Google Cloud](doc/admin/install/google_cloud.md), [AWS](d How to [secure your setup](/doc/security/ssl.md). ## Build Instructions -Please visit our [build guide](/doc/self-hosted/build.md) for steps on how to build the binary. +Visit our [build guide](/doc/self-hosted/build.md) for steps on how to build the binary. ## Development diff --git a/doc/self-hosted/build.md b/doc/self-hosted/build.md index e7f0cf7d270d..68ddd4012a36 100644 --- a/doc/self-hosted/build.md +++ b/doc/self-hosted/build.md @@ -1,22 +1,17 @@ -# Building instructions for code-server 🏗️ - -code-server has several yarn tasks for building the entire binary or specific portions of the app. This guide provides steps to do the aforementioned tasks. +# Building 🏗️ **NOTE:** Windows compatibility is in the works ### Requirements - Node 10.15.1+: https://nodejs.org/en/download/releases/ -## Build the binary +## Steps 1. Clone the [repository](https://github.com/codercom/code-server.git) 2. `cd` into `code-server` 3. Run `yarn` 4. Run `yarn task build:server:binary` > Binary will be placed in `packages/server` named after the platform and architecture (`cli-darwin-x64`) -### Run without building -Running from the binary is possible with `yarn-start` after you have built the binary at least once. This is required for bootstrap-fork and built in extensions to work properly. - ### Build Tasks - **bootstrap-fork**: Forks VS Code sub-processes such as the shared process, extension host, searcher, and watcher From bd133a769641a347768df7b6c046e94c5f8ec4b3 Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Mon, 22 Apr 2019 14:46:31 -0500 Subject: [PATCH 14/14] update usage in quick start guide, remove unused asset --- doc/assets/password_entry.png | Bin 24869 -> 0 bytes doc/self-hosted/index.md | 24 +++++++++++++----------- 2 files changed, 13 insertions(+), 11 deletions(-) delete mode 100644 doc/assets/password_entry.png diff --git a/doc/assets/password_entry.png b/doc/assets/password_entry.png deleted file mode 100644 index 29e34024705dfb4dc56a9781d53a7a722102328d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24869 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 QQ}jpgiZQklb1nS;0Q?C)5C8xG diff --git a/doc/self-hosted/index.md b/doc/self-hosted/index.md index c3ee6a998d1f..866347858ad3 100644 --- a/doc/self-hosted/index.md +++ b/doc/self-hosted/index.md @@ -41,17 +41,19 @@ ARGUMENTS WORKDIR [default: (directory to binary)] Specify working dir OPTIONS - -d, --data-dir=data-dir - -h, --host=host [default: 0.0.0.0] - -o, --open Open in browser on startup - -p, --port=port [default: 8443] Port to bind on - -v, --version show CLI version - --allow-http - --cert=cert - --cert-key=cert-key - --help show CLI help - --no-auth - --password=password + --cert + --cert-key + -e, --extensions-dir Set the root path for extensions. + -d --user-data-dir Specifies the directory that user data is kept in, useful when running as root. + --data-dir DEPRECATED: Use '--user-data-dir' instead. Customize where user-data is stored. + -h, --host Customize the hostname. (default: "0.0.0.0") + -o, --open Open in the browser on startup. + -p, --port Port to bind on. (default: 8443) + -N, --no-auth Start without requiring authentication. + -H, --allow-http Allow http connections. + -P, --password DEPRECATED: Use the PASSWORD environment variable instead. Specify a password for authentication. + --disable-telemetry Disables ALL telemetry. + --install-extension Install an extension by its ID. ``` ### Data Directory