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 (Recommended)
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
| Feature | code-server | GitHub Codespaces | Gitpod | VS Code Remote SSH |
|---|---|---|---|---|
| Self-hosted | ✅ | ❌ | ✅ (self-hosted option) | ✅ (client-side) |
| Cost | Free | $0-$18/mo | Free tier + paid | Free |
| Browser access | ✅ | ✅ | ✅ | ❌ (needs VS Code) |
| Extensions | Open VSX | Full marketplace | Open VSX | Full marketplace |
| Offline | ✅ | ❌ | ❌ | ✅ |
| Multi-user | Limited | ✅ | ✅ | ❌ |
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.