Я честно долго сопротивлялась идее писать код через браузер. Привычка открывать VS Code локально была такой же стабильной, как кружка чая у ноутбука. Но в какой-то момент стало слишком много: два компа, один VPS, быстрые фиксы с телефона — и всё это требовало синхронизации, туннелей, вечного scp и “где у меня этот файл был вообще?”. Так я пришла к удалённой IDE. Сегодня расскажу, как подняла VS Code Server и Theia IDE на VPS, и почему не жалею ни минуты.
Зачем вообще IDE на сервере?
Если вы тоже фрилансерка или работаете с несколькими машинами, знакомо: переключаешься с одного устройства на другое — и начинается: «тут нет ключа», «а тут не тот Python», «где мой .env?». А ещё бывают ситуации, когда нужно быстро править код — а у тебя только iPad или слабенький ноут.
Вот тут и приходит спасение: кодовая среда в браузере, которая работает прямо на VPS. А значит:
- всегда одинаковая среда,
- доступ с любого устройства,
- никаких зависимостей локально.
VS Code Server (Code-Server): мой выбор #1
Начала я с code-server — это тот же любимый Visual Studio Code, только запускается на сервере и открывается в браузере. Интерфейс тот же, плагины те же, удобство — на месте.
Установка (на Ubuntu VPS):
curl -fsSL https://code-server.dev/install.sh | sh
После установки:
sudo systemctl enable --now code-server@$USER
Файл конфигурации:
~/.config/code-server/config.yaml
Там можно задать пароль, порт, автологин и т.п.
Доступ через браузер
По умолчанию code-server крутится на localhost:8080. Я прокинула его через Nginx:
server {
listen 80;
server_name ide.my-domain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
}
}
И подключила Let’s Encrypt, чтобы не ловить тревогу от браузера при каждой загрузке.
Eclipse Theia — почти VS Code, но со своей атмосферой
Eclipse Theia — это ещё одна веб-IDE, внешне очень похожа на VS Code, но чуть более “академичная”. Она тоже запускается на VPS и работает в браузере. У неё тоже есть плагины, терминал, работа с Git, и даже дебаггер.
Установка (через Docker):
docker run -it \
-p 3000:3000 \
-v "$(pwd):/home/project:cached" \
theiaide/theia:latest
Вот и всё — открываете http://your-vps-ip:3000 и работаете.
Что мне больше понравилось?
Обе IDE хороши, но я осталась на code-server, потому что:
- быстрее стартует;
- более “родной” VS Code UI;
- проще кастомизировать под себя.
Но у Theia есть свои фишки: например, в enterprise-версиях можно собирать свою сборку с нужными расширениями. Для компаний — топ.
Как это изменило мою работу
Серьёзно, это было как переезд в новую квартиру. Всё организовано, ничего не теряется. Я стала спокойно переключаться между ноутбуком и стационарным ПК. Иногда даже правлю баги прямо с планшета — открыл браузер, подключился к VPS, и всё как на ладони.
Плюс — никакой зависимости от IDE, установленной на железе. Поставила себе на Android-устройство Termux + браузер, и могу пушить фикс прямо из поезда. Ну разве не кайф?
Минусы? Конечно, без них не обошлось
- Нужно продумать безопасность: обязательно HTTPS, пароль и ограничение доступа по IP.
- При плохом интернете работать некомфортно.
- Иногда обновления code-server конфликтуют с расширениями (но это редкость).
Что ещё можно подключить:
- Docker — чтобы запускать проекты в контейнерах прямо в IDE;
- Git sync — чтобы пушить коммиты без локального Git;
- Tailscale — если не хотите открывать порт в интернет вообще.
🛠 Конфигурация для Code-Server на VPS (Ubuntu/Debian)
~/.config/code-server/config.yaml
bind-addr: 127.0.0.1:8080
auth: password
password: mystrongpassword123
cert: false
⚠️ Не забудьте сменить
passwordна свой.
🔐 Пример Nginx-конфига для безопасного доступа
Файл: /etc/nginx/sites-available/code-server.conf
server {
listen 80;
server_name ide.my-domain.com;
location / {
proxy_pass http://localhost:8080/;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Подключение сертификата:
sudo certbot --nginx -d ide.my-domain.com
🧪 Пример .env для проектов
# База данных
DB_HOST=localhost
DB_PORT=5432
DB_NAME=myapp
DB_USER=postgres
DB_PASSWORD=secret
# Прочее
APP_ENV=development
APP_PORT=3000
JWT_SECRET=supersecretkey
📦 Docker-команда для Theia IDE
docker run -d \
--name theia \
-p 3000:3000 \
-v ~/projects:/home/project \
theiaide/theia:latest
Theia автоматически подхватит директорию с проектом.