# 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/extensionsRunning 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.targetTo 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:8080see also