# Code Server

Run VS Code on any machine anywhere and access it in the browser. - ChatGPT

Telemetry

code-server explicitly offers its own telemetry collection, which can be disabled (code-server --disable-telemetry)

# OpenVSCode Server ⮺

OpenVSCode Server is based on Microsoft’s VS Code OSS codebase, rather than VSCodium’s distribution.

So it provides a very similar browser-based development experience, but isn’t literally VSCodium running remotely.

# Code-Server ⮺

Note: this is not the same thing as Visual Studio Code Server, which has some licensing restriction like “hosting it as a service is not allowed”

Some restriction apply:

  • note alls extension are working
    • Cline does not work => use the cli instead.

# Nix/apt

This allows seamless integration with host: it share direct filesystem and tools in terminal like ninja/gcc, no need to customize the docker image.

$ nix profile add nixpkgs#code-server  # Maybe old

# pick latest on github https://github.com/coder/code-server/releases
$ wget https://github.com/coder/code-server/releases/download/vX.X.X/code-server_X.X.X_amd64.deb
$ sudo apt install ./code-server_X.X.X_amd64.deb

$ code-server \ # default to 127.0.0.1:8080
  --extensions-dir /home/yves/.vscode/extensions
Running it as a systemd service
# /etc/systemd/system/code-server.service
[Unit]
Description=code-server
After=network.target

[Service]
Type=simple
User=yves
ExecStart=/usr/bin/code-server \ # default to 127.0.0.1:8080
  --extensions-dir /home/yves/.vscode/extensions 
  
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

To activate

$ sudo systemctl enable code-server
$ sudo systemctl start code-server

# 
$ journalctl -u code-server -f

# Podman

Usuall pod restrictions apply…

$ podman pull ghcr.io/coder/code-server:latest

# start server with local socket only
$ podman run -d \
  --replace \
  --name code-server \
  -v ~/DEV:/home/coder/project \
  -p 127.0.0.1:8080:8080 \
  -e PASSWORD="yourpassword" \
  ghcr.io/coder/code-server:latest 

# SSH tunnel ⮺

This is the simplest way to securize access (auth+encryption)

# create ssh tunnel client <-> codeserver
$ ssh -N -L 8080:127.0.0.1:8080 yves-lab

# open browser on client at http://localhost:8080

see also

Written on October 31, 2026, Last update on
vscode security remote editor ssh telemetry