code-server/docs/install.md
2021-02-25 12:20:44 -06:00

7.8 KiB

Install

This document demonstrates how to install code-server on various distros and operating systems.

Upgrading

When upgrading you can just install the new version over the old one. code-server maintains all user data in ~/.local/share/code-server so that it is preserved in between installations.

install.sh

We have a script to install code-server for Linux, macOS and FreeBSD.

It tries to use the system package manager if possible.

First run to print out the install process:

curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run

Now to actually install:

curl -fsSL https://code-server.dev/install.sh | sh

The script will print out how to run and start using code-server.

If you believe an install script used with curl | sh is insecure, please give this wonderful blogpost by sandstorm.io a read.

If you'd still prefer manual installation despite the below detection reference and --dry-run then continue on for docs on manual installation. The install.sh script runs the exact same commands presented in the rest of this document.

Flags

  • --dry-run to echo the commands for the install process without running them.
  • --method to choose the installation method.
    • --method=detect to detect the package manager but fallback to --method=standalone.
    • --method=standalone to install a standalone release archive into ~/.local.
  • --prefix=/usr/local to install a standalone release archive system wide.
  • --version=X.X.X to install version X.X.X instead of latest.
  • --help to see full usage docs.

Detection Reference

  • For Debian, Ubuntu and Raspbian it will install the latest deb package.

  • For Fedora, CentOS, RHEL and openSUSE it will install the latest rpm package.

  • For Arch Linux it will install the AUR package.

  • For any unrecognized Linux operating system it will install the latest standalone release into ~/.local.

    • Add ~/.local/bin to your $PATH to run code-server.
  • For macOS it will install the Homebrew package.

    • If Homebrew is not installed it will install the latest standalone release into ~/.local.
    • Add ~/.local/bin to your $PATH to run code-server.
  • For FreeBSD, it will install the npm package with yarn or npm.

  • If ran on an architecture with no releases, it will install the npm package with yarn or npm.

    • We only have releases for amd64 and arm64 presently.
    • The npm package builds the native modules on postinstall.

Debian, Ubuntu

curl -fOL https://github.com/cdr/code-server/releases/download/v3.9.0/code-server_3.9.0_amd64.deb
sudo dpkg -i code-server_3.9.0_amd64.deb
sudo systemctl enable --now code-server@$USER
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml

Fedora, CentOS, RHEL, SUSE

curl -fOL https://github.com/cdr/code-server/releases/download/v3.9.0/code-server-3.9.0-amd64.rpm
sudo rpm -i code-server-3.9.0-amd64.rpm
sudo systemctl enable --now code-server@$USER
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml

Arch Linux

# Installs code-server from the AUR using yay.
yay -S code-server
sudo systemctl enable --now code-server@$USER
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
# Installs code-server from the AUR with plain makepkg.
git clone https://aur.archlinux.org/code-server.git
cd code-server
makepkg -si
sudo systemctl enable --now code-server@$USER
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml

yarn, npm

We recommend installing with yarn or npm when:

  1. You aren't on amd64 or arm64.
  2. If you're on Linux with glibc < v2.17 or glibcxx < v3.4.18
  3. You're running Alpine Linux. See #1430

note: Installing via yarn or npm builds native modules on install and so requires C dependencies. See ./npm.md for installing these dependencies.

You will need at least node v12 installed. See #1633.

yarn global add code-server
# Or: npm install -g code-server
code-server
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml

macOS

brew install code-server
brew services start code-server
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml

Standalone Releases

We publish self contained .tar.gz archives for every release on github. They bundle the node binary and node_modules.

These are created from the npm package and the rest of the releases are created from these. Only requirement is glibc >= 2.17 && glibcxx >= v3.4.18 on Linux and for macOS there is no minimum system requirement.

  1. Download the latest release archive for your system from github.
  2. Unpack the release.
  3. You can run code-server by executing ./bin/code-server.

You can add the code-server bin directory to your $PATH to easily execute code-server without the full path every time.

Here is an example script for installing and using a standalone code-server release on Linux:

mkdir -p ~/.local/lib ~/.local/bin
curl -fL https://github.com/cdr/code-server/releases/download/v3.9.0/code-server-3.9.0-linux-amd64.tar.gz \
  | tar -C ~/.local/lib -xz
mv ~/.local/lib/code-server-3.9.0-linux-amd64 ~/.local/lib/code-server-3.9.0
ln -s ~/.local/lib/code-server-3.9.0/bin/code-server ~/.local/bin/code-server
PATH="~/.local/bin:$PATH"
code-server
# Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml

Docker

# This will start a code-server container and expose it at http://127.0.0.1:8080.
# It will also mount your current directory into the container as `/home/coder/project`
# and forward your UID/GID so that all file system operations occur as your user outside
# the container.
#
# Your $HOME/.config is mounted at $HOME/.config within the container to ensure you can
# easily access/modify your code-server config in $HOME/.config/code-server/config.json
# outside the container.
mkdir -p ~/.config
docker run -it --name code-server -p 127.0.0.1:8080:8080 \
  -v "$HOME/.config:/home/coder/.config" \
  -v "$PWD:/home/coder/project" \
  -u "$(id -u):$(id -g)" \
  -e "DOCKER_USER=$USER" \
  codercom/code-server:latest

Our official image supports amd64 and arm64.

For arm32 support there is a popular community maintained alternative:

https://hub.docker.com/r/linuxserver/code-server

helm

See the chart.

App Engines (Azure, Heroku)

These community images are optimized for use with popular app engines. They use the latest official Docker image, so they will always be up to date.