code-server на VPS: VS Code в браузере для удалённой разработки — иллюстрация к статье Storm Cloud Blog, категория DevOps
code-server на VPS: VS Code в браузере для удалённой разработки — иллюстрация к статье Storm Cloud Blog, категория DevOps
DevOps·4 мин··

code-server на VPS: VS Code в браузере для удалённой разработки

code-server на VPS: Docker, SSL, Tailscale, extensions и безопасность. Полноценный VS Code в браузере без локальной установки.

Краткий ответ: code-server — VS Code в браузере на VPS. Docker + SSL + Tailscale или Authentik. RAM 2 GB+ для комфортной работы.

Нужен IDE с любого устройства — планшет, Chromebook, чужой ноутбук? code-server даёт тот же VS Code, что локально, но код живёт на сервере рядом с Docker и staging.


code-server vs VS Code SSH vs GitHub Codespaces

code-server VS Code SSH Codespaces
Интерфейс Browser Desktop VS Code Browser
Setup Docker на VPS SSH config GitHub billing
Extensions Большинство Все Ограничено
Стоимость VPS фикс VPS фикс Pay per hour

Для ежедневной работы на своём ноутбуке — VS Code SSH. Для «IDE откуда угодно» — code-server.


Архитектура

Browser (iPad, laptop, phone)
        ↓ HTTPS
   Nginx + SSL (+ Authentik forward auth)

   code-server container

   /home/coder/projects + Docker socket (optional)

Требования к VPS

Нагрузка RAM CPU
Лёгкие проекты (JS, Python) 2 GB 2 vCPU
TypeScript + LSP + Docker builds 4 GB 2–4 vCPU
Monorepo + несколько extensions 8 GB 4 vCPU

SSD обязателен — LSP и node_modules I/O heavy.


Docker Compose

services:
  code-server:
    image: lscr.io/linuxserver/code-server:latest
    restart: unless-stopped
    environment:
      PUID: 1000
      PGID: 1000
      TZ: Europe/Moscow
      PASSWORD: CHANGE_ME
      SUDO_PASSWORD: CHANGE_ME
      DEFAULT_WORKSPACE: /config/workspace
    volumes:
      - ./config:/config
      - ./projects:/config/workspace
    ports:
      - "127.0.0.1:8443:8443"

Reverse proxy — Nginx или Traefik.


Nginx + SSL

location / {
    proxy_pass https://127.0.0.1:8443;
    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection upgrade;
    proxy_set_header Accept-Encoding gzip;
    proxy_read_timeout 86400;
}

proxy_read_timeout — для long-running terminal sessions.


Безопасность (обязательно)

code-server = полный shell на сервере. Не выставляйте без защиты.

Уровень Метод
Базовый Strong password + HTTPS only
Лучше Tailscale — только VPN mesh
Production Authentik forward auth + MFA
Firewall nftables — deny public if Tailscale

Не монтируйте Docker socket без понимания — container escape = root на VPS.


Extensions и settings sync

Установка через UI как в VS Code. Рекомендуемые:

  • Python / Pylance — backend dev
  • ESLint / Prettier — JS/TS
  • GitLens — git history
  • Remote Containers — не работает как в desktop; используйте Docker на хосте

Settings Sync: встроенный VS Code sync или dotfiles в git repo.


Git и SSH keys

ssh-keygen -t ed25519 -C "coder@vps"
cat ~/.ssh/id_ed25519.pub  # → GitHub/GitLab deploy key

Для CI — отдельный deploy key read-only. Не reuse personal keys.


Интеграция с dev stack


Performance tips

Проблема Решение
Lag при наборе Больше RAM, отключите heavy extensions
LSP OOM typescript.tsserver.maxTsServerMemory
Slow file search files.watcherExclude, .gitignore
Terminal disconnect Nginx timeout, tmux/screen inside

Troubleshooting

Проблема Решение
502 Bad Gateway code-server running? proxy_pass port
Extensions fail ARM vs x86 image, check architecture
Can’t save files PUID/PGID permissions on volume
OAuth loop Authentik redirect URI mismatch
High CPU Indexing — exclude node_modules, vendor

Multi-user setup

Один code-server = один user. Для команды:

  • Отдельный VPS/user на человека, или
  • Kubernetes + code-server helm per namespace, или
  • VS Code SSH + shared Gitea

Shared single instance — риск: все видят все файлы.


Итог

code-server превращает VPS в cloud IDE. Идеален для travel, demos, onboarding junior на стандартном окружении.

VPS 4 GB — StormNet Cloud. Безопасность — Tailscale + Authentik. Альтернатива — VS Code SSH.

Частые вопросы

code-server или VS Code SSH — что выбрать?

VS Code SSH — для ежедневной работы с desktop VS Code. code-server — когда нужен IDE в браузере с любого устройства.

Безопасно ли выставлять code-server в интернет?

Только с HTTPS, сильной auth и preferably Tailscale или Authentik SSO. code-server даёт полный shell на сервере.