TL;DR — Quick Summary

Run VS Code in your browser with code-server. Self-hosted remote development environment with Docker, extensions, Git integration, and access from any device including tablets.

What Is Code-Server?

code-server runs VS Code on your server, accessible through any web browser. Your code lives on the server — you can develop from any device, even a tablet, with the full IDE experience.

Key benefits:

  • Browser-based — develop from any device, anywhere
  • Server-powered — your local machine doesn’t need to be powerful
  • Persistent environment — your workspace survives device changes
  • Consistent — same environment for all team members
  • Secure — code never leaves the server

Installation

docker run -d \
  --name code-server \
  -p 8443:8443 \
  -v /home/user/projects:/home/coder/project \
  -v code-server-config:/home/coder/.config \
  -e PASSWORD=your_secure_password \
  --restart always \
  codercom/code-server:latest

Docker Compose

services:
  code-server:
    image: codercom/code-server:latest
    container_name: code-server
    restart: always
    ports:
      - "8443:8443"
    environment:
      - PASSWORD=your_secure_password
    volumes:
      - /home/user/projects:/home/coder/project
      - code-server-config:/home/coder/.config
      - code-server-local:/home/coder/.local

volumes:
  code-server-config:
  code-server-local:

Native Install (Linux)

curl -fsSL https://code-server.dev/install.sh | sh
sudo systemctl enable --now code-server@$USER

Edit ~/.config/code-server/config.yaml:

bind-addr: 0.0.0.0:8443
auth: password
password: your_secure_password
cert: false

Configuration

Custom Extensions

# Install extensions from Open VSX
docker exec code-server code-server --install-extension ms-python.python
docker exec code-server code-server --install-extension golang.go
docker exec code-server code-server --install-extension esbenp.prettier-vscode

User Settings

Mount your VS Code settings:

-v /path/to/settings.json:/home/coder/.local/share/code-server/User/settings.json

Securing for Remote Access

Behind Traefik

services:
  code-server:
    image: codercom/code-server:latest
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.code.rule=Host(`code.yourdomain.com`)"
      - "traefik.http.routers.code.tls.certresolver=letsencrypt"
    environment:
      - PASSWORD=your_secure_password

Behind Nginx

server {
    listen 443 ssl;
    server_name code.yourdomain.com;

    location / {
        proxy_pass http://localhost:8443;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }
}

Code-Server vs. Alternatives

Featurecode-serverGitHub CodespacesGitpodVS Code Remote SSH
Self-hosted✅ (self-hosted option)✅ (client-side)
CostFree$0-$18/moFree tier + paidFree
Browser access❌ (needs VS Code)
ExtensionsOpen VSXFull marketplaceOpen VSXFull marketplace
Offline
Multi-userLimited

Summary

code-server brings VS Code to your browser, letting you develop from any device while keeping your code on your own server. Deploy with Docker in one command, add HTTPS via a reverse proxy, and you have a secure, private development environment.