diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..75cbb64e --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +** +!release diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 072deab1..00000000 --- a/.editorconfig +++ /dev/null @@ -1,6 +0,0 @@ -root = true - -[*] -indent_style = space -trim_trailing_whitespace = true -indent_size = 2 \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 17b1e1d6..d9278d4b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,7 @@ language: minimal jobs: include: - name: Test + if: tag IS blank script: ./ci/image/run.sh "yarn && yarn vscode && ./ci/ci.sh" deploy: null - name: Linux Release diff --git a/README.md b/README.md index 4bdc10e7..d56251e3 100644 --- a/README.md +++ b/README.md @@ -44,9 +44,6 @@ Use [sshcode](https://github.com/codercom/sshcode) for a simple setup. 2. Unpack the downloaded file then run the binary. 3. In your browser navigate to `localhost:8080`. -- 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). - ## FAQ See [./doc/FAQ.md](./doc/FAQ.md). diff --git a/ci/release-image/Dockerfile b/ci/release-image/Dockerfile index 4fa4faf1..f394af52 100644 --- a/ci/release-image/Dockerfile +++ b/ci/release-image/Dockerfile @@ -33,4 +33,4 @@ RUN rm -rf /var/lib/apt/lists/* EXPOSE 8080 USER coder WORKDIR /home/coder -ENTRYPOINT ["dumb-init", "fixuid", "-q", "code-server", "--host=0.0.0.0", "--auth=none"] +ENTRYPOINT ["dumb-init", "fixuid", "-q", "code-server", "--host", "0.0.0.0", "."] diff --git a/ci/release-image/push.sh b/ci/release-image/push.sh index 4734a120..6baf7332 100755 --- a/ci/release-image/push.sh +++ b/ci/release-image/push.sh @@ -4,7 +4,7 @@ set -euo pipefail main() { cd "$(dirname "$0")/../.." - soruce ./ci/lib.sh + source ./ci/lib.sh set_version if [[ ${CI:-} ]]; then @@ -12,12 +12,10 @@ main() { fi imageTag="codercom/code-server:$VERSION" - latest="codercom/code-server:latest" - if [[ $TRAVIS_CPU_ARCH == "arm64" ]]; then + if [[ ${TRAVIS_CPU_ARCH:-} == "arm64" ]]; then imageTag+="-arm64" - latest="codercom/code-server:arm64" fi - docker build -t "$imageTag" -t "$latest" -f ./ci/release-image/Dockerfile + docker build -t "$imageTag" -f ./ci/release-image/Dockerfile . docker push codercom/code-server } diff --git a/ci/release.sh b/ci/release.sh index 84d4d179..32f9ea67 100755 --- a/ci/release.sh +++ b/ci/release.sh @@ -35,7 +35,7 @@ function main() { for binary in code-server*; do mkdir -p "../binary-upload" - local prefix="code-server-$code_server_version-" + local prefix="code-server-$VERSION-" local target="${binary#$prefix}" if [[ $target == "linux-x86_64" ]]; then echo "Copying $binary to ../binary-upload/latest-linux" @@ -43,7 +43,7 @@ function main() { fi local gcp_dir - gcp_dir="../binary-upload/releases/$code_server_version/$target" + gcp_dir="../binary-upload/releases/$VERSION/$target" mkdir -p "$gcp_dir" echo "Copying $binary to $gcp_dir/code-server" diff --git a/doc/FAQ.md b/doc/FAQ.md index 5c8588be..96bf7316 100644 --- a/doc/FAQ.md +++ b/doc/FAQ.md @@ -1,8 +1,30 @@ # FAQ +## Questions? + +Please file all questions and support requests at https://www.reddit.com/r/codeserver/ +The issue tracker is only for bugs. + ## What's the deal with extensions? -Unfortunately, the Microsoft VS Code Marketplace is +Unfortunately, the Microsoft VS Code Marketplace license prohibits use with any non Microsoft +product. + +See https://cdn.vsassets.io/v/M146_20190123.39/_content/Microsoft-Visual-Studio-Marketplace-Terms-of-Use.pdf + +> Marketplace Offerings are intended for use only with Visual Studio Products and Services +> and you may only install and use Marketplace Offerings with Visual Studio Products and Services. + +As a result, Coder has created its own marketplace for open source extensions. It works by scraping +GitHub for VS Code extensions and building them. It's not perfect but getting better by the day with +more and more extensions. + +Issue [https://github.com/cdr/code-server/issues/1299](#1299) is a big one in making the experience here +better by allowing the community to submit extensions and repos to avoid waiting until the scraper finds +an extension. + +If an extension does not work, try to grab its VSIX from its Github releases or build it yourself and +copy it to the extensions folder. ## How is this different from VS Code Online? @@ -34,16 +56,45 @@ 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? +## x86 releases? -32 bit releases have been +node has dropped support for x86 and so we decided to as well. See +[nodejs/build/issues/885](https://github.com/nodejs/build/issues/885). + +## Alpine builds? + +Just install `libc-dev` and code-server should work. ## 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. +If you want to run multiple code-server's on shared infrastructure, we recommend using virtual +machines with a VM per user. This will easily allow users to run a docker daemon. If you want +to use kubernetes, you'll definitely want to use [kubevirt](https://kubevirt.io) to give each +user a virtual machine instead of just a container. Docker in docker while supported requires +privileged containers which are a security risk in a multi tenant infrastructure. + +## Docker in code-server docker container? + +If you'd like to access docker inside of code-server, we'd recommend running a docker:dind container +and mounting in a /var/run directory to share between that and the code-server container. Install +the docker CLI in the code-server container and you should be able to access the daemon. + +In order to make volume mounts work, mount the home directory in the code-server container and the +dind container at the same path. i.e you'd volume mount a directory from the host to `/home/coder` +on both. This will allow any volume mounts in the home directory to work. Similar process +to make volume mounts in any other directory work. + +## Collaboration + +At the moment we have no plans for multi user collaboration on code-server but we understand this +is a heavily requested feature and will work on it when the time is right. ## How can I disable telemetry? Use the `--disable-telemetry` flag to completely disable telemetry. We use the data collected only to improve code-server. + +## Enterprise + +Visit [our enterprise page](https://coder.com) for more information about our +enterprise offerings. diff --git a/doc/assets/droplet.svg b/doc/assets/droplet.svg new file mode 100644 index 00000000..ecbb3f24 --- /dev/null +++ b/doc/assets/droplet.svg @@ -0,0 +1,24 @@ + + + + do-btn-blue-ghost + Created with Sketch. + + + + + + + + + + + + + + Create a Droplet + + + + +