Code Server — Brauzerda VS Code
Kirish
code-server (opens in a new tab) — bu Visual Studio Code'ni serverda ishga tushirib, brauzer orqali foydalanish imkonini beruvchi open-source loyiha. Oddiy qilib aytganda, siz kuchli serverdagi VS Code'ga istalgan qurilmadan — noutbuk, planshet yoki hatto telefondan kirishingiz mumkin.
Oxirgi barqaror versiya: v4.108.2 (2026-yil 26-yanvar, VS Code 1.108.2 asosida)
Nima uchun code-server kerak?
- Istalgan joydan kirish — internetga ulangan har qanday qurilmadan o'z development muhitingizga kirasiz. Uyda boshlagan ishni yo'lda davom ettirishingiz mumkin.
- Server quvvatidan foydalanish — og'ir build, test va kompilyatsiya jarayonlari serverda bajariladi. Sizning local kompyuteringiz faqat brauzer ochadi.
- Bir xil muhit — jamoangizning barcha a'zolari bir xil muhitda ishlaydi. "Mening kompyuterimda ishladi" muammosi yo'qoladi.
- Batareya tejash — barcha hisoblash server tomonida amalga oshiriladi, qurilmangizning batareyasi uzoq yashaydi.
- Xavfsizlik — kod serverda qoladi, local qurilmaga yuklanmaydi. Noutbuk yo'qolsa ham kod xavfsiz.
Minimal tizim talablari
| Resurs | Minimal | Tavsiya etiladi |
|---|---|---|
| RAM | 1 GB | 2+ GB |
| CPU | 2 vCPU | 4+ vCPU |
| OS | Linux (WebSocket qo'llab-quvvatlashi) | Ubuntu 22.04+, Debian 12+ |
| Disk | 5 GB | 20+ GB |
O'rnatish usullari
1-usul: Install script (eng oson)
code-server'ning rasmiy install scripti tizimingiz uchun eng mos usulni avtomatik aniqlaydi.
Avval qanday buyruqlar bajarilishini ko'rish uchun dry-run rejimda ishga tushiring:
curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-runHamma narsa to'g'ri bo'lsa, o'rnatishni boshlang:
curl -fsSL https://code-server.dev/install.sh | shO'rnatgandan so'ng systemd servisi yoqiladi:
sudo systemctl enable --now code-server@$USERBrauzerda http://127.0.0.1:8080 manzilga kiring. Parol ~/.config/code-server/config.yaml faylida joylashgan.
Install script qo'shimcha parametrlarni qo'llab-quvvatlaydi:
--method=standalone— tizim paket menejerisiz o'rnatadi--prefix=/usr/local— o'rnatish papkasini belgilaydi--version=4.108.2— aniq versiya o'rnatadi
2-usul: Debian/Ubuntu (deb paket)
# Paketni yuklab olish (versiyani o'zgartiring)
export VERSION=4.108.2
curl -fOL https://github.com/coder/code-server/releases/download/v$VERSION/code-server_${VERSION}_amd64.deb
# O'rnatish
sudo dpkg -i code-server_${VERSION}_amd64.deb
# Serverni yoqish
sudo systemctl enable --now code-server@$USER3-usul: Fedora/CentOS/RHEL (rpm paket)
export VERSION=4.108.2
curl -fOL https://github.com/coder/code-server/releases/download/v$VERSION/code-server-$VERSION-amd64.rpm
sudo rpm -i code-server-$VERSION-amd64.rpm
sudo systemctl enable --now code-server@$USER4-usul: macOS (Homebrew)
brew install code-server
brew services start code-server5-usul: Docker
mkdir -p ~/.config
docker run -it --name code-server \
-p 127.0.0.1:8080:8080 \
-v "$HOME/.local:/home/coder/.local" \
-v "$HOME/.config:/home/coder/.config" \
-v "$PWD:/home/coder/project" \
-u "$(id -u):$(id -g)" \
-e "DOCKER_USER=$USER" \
codercom/code-server:latestVolume'lar nima uchun kerak?
$HOME/.local— code-server'ning ichki ma'lumotlari (extension'lar va boshqalar)$HOME/.config— konfiguratsiya fayllari (config.yaml, parol)$PWD— sizning loyihangiz papkasi
6-usul: Docker Compose (tavsiya etiladi)
Serverda doimiy ishlatish uchun Docker Compose eng qulay usul.
mkdir -p ~/code-server && cd ~/code-serverdocker-compose.yml faylini yarating:
services:
code-server:
image: codercom/code-server:4.108.2
container_name: code-server
restart: unless-stopped
user: "${UID:-1000}:${GID:-1000}"
environment:
- DOCKER_USER=${USER:-coder}
volumes:
- ./config:/home/coder/.config
- ./local:/home/coder/.local
- ./project:/home/coder/project
ports:
- "127.0.0.1:8080:8080"LinuxServer.io image haqida:
Eski maqolalarda lscr.io/linuxserver/code-server image ishlatilgan. Bu image hali ham ishlaydi, lekin rasmiy codercom/code-server image'ni ishlatish tavsiya etiladi — u to'g'ridan-to'g'ri loyiha muallifi tomonidan qo'llab-quvvatlanadi va yangilanishlar tezroq keladi.
Ishga tushirish:
docker compose up -dKonteyner holatini tekshirish:
docker compose ps
docker compose logs code-serverDastlabki parolni ko'rish:
docker compose exec code-server cat /home/coder/.config/code-server/config.yamlLinuxServer.io image bilan Docker Compose
Agar LinuxServer.io image'ni afzal ko'rsangiz:
services:
code-server:
image: lscr.io/linuxserver/code-server:latest
container_name: code-server
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Tashkent
- PASSWORD=xavfsiz_parol_qoying
- SUDO_PASSWORD=sudo_parol
- DEFAULT_WORKSPACE=/config/workspace
volumes:
- ./config:/config
ports:
- "8443:8443"Bu image'ning environment o'zgaruvchilari:
| O'zgaruvchi | Tavsif |
|---|---|
PUID / PGID | Foydalanuvchi va guruh ID — fayl huquqlari uchun |
TZ | Timezone (masalan, Asia/Tashkent) |
PASSWORD | Web interfeys paroli (ochiq matn) |
HASHED_PASSWORD | Hashed password (PASSWORD o'rniga) |
SUDO_PASSWORD | Terminal ichida sudo paroli |
PROXY_DOMAIN | Reverse proxy domain |
DEFAULT_WORKSPACE | Standart ish papkasi |
Konfiguratsiya
code-server barcha sozlamalarni ~/.config/code-server/config.yaml faylida saqlaydi. Birinchi ishga tushirishda bu fayl avtomatik yaratiladi.
config.yaml
bind-addr: 127.0.0.1:8080
auth: password
password: sizning_parolingiz
cert: falseAsosiy parametrlar:
| Parametr | Tavsif | Misol |
|---|---|---|
bind-addr | Listening address va port | 127.0.0.1:8080, 0.0.0.0:443 |
auth | Authentication usuli | password yoki none |
password | Kirish paroli | Plain text parol |
hashed-password | Hashed password | argon2 hash |
cert | HTTPS sertifikat | true, false yoki sertifikat fayl yo'li |
cert-key | Certificate key | /path/to/key.pem |
Password hashing
Parolni plain text o'rniga hashed holda saqlash xavfsizroq:
# argon2 o'rnatish
sudo apt install argon2
# Parolni hash qilish
echo -n "sizning_parolingiz" | argon2 saltSOMESALT -e
# Natijani config.yaml ga qo'ying
# hashed-password: "$argon2i$v=19$m=4096,t=3,p=1$..."Buyruq qatori parametrlari
config.yaml o'rniga yoki unga qo'shimcha ravishda buyruq qatoridan ham sozlash mumkin:
# Boshqa portda ishga tushirish
code-server --bind-addr 0.0.0.0:9090
# Parolsiz (faqat reverse proxy bilan!)
code-server --auth none
# HTTPS bilan
code-server --cert /path/to/cert.pem --cert-key /path/to/key.pemHTTPS sozlash
code-server'ni hech qachon HTTPS yoki autentifikatsiyasiz internetga ochmang! code-server orqali terminal va fayl tizimiga kirish mumkin — bu sizning serveringizga to'liq kirish demak.
Self-signed sertifikat
Eng oddiy usul — code-server'ning o'zi sertifikat yaratadi:
bind-addr: 0.0.0.0:443
auth: password
password: kuchli_parol
cert: trueSertifikat ~/.local/share/code-server/self-signed.crt da saqlanadi.
443-portni ochish uchun qo'shimcha ruxsat berish kerak:
sudo setcap cap_net_bind_service=+ep /usr/lib/code-server/lib/node
sudo systemctl restart code-server@$USERSelf-signed sertifikat brauzerda ogohlantirish beradi. Bu test muhit uchun yetarli, lekin production uchun Let's Encrypt ishlatiladi.
Let's Encrypt bilan bepul HTTPS
Production muhitda Let's Encrypt sertifikat olish uchun Caddy yoki Nginx + Certbot ishlatiladi. Bu haqda keyingi bo'limda batafsil yozilgan.
Reverse Proxy sozlash
Production muhitda code-server to'g'ridan-to'g'ri internetga ochilmaydi. Uning o'rniga reverse proxy ishlatiladi — bu HTTPS, domain nomi va qo'shimcha xavfsizlikni ta'minlaydi.
Caddy bilan (eng oson)
Caddy avtomatik ravishda Let's Encrypt sertifikatini oladi va yangilaydi — hech qanday qo'shimcha sozlash kerak emas.
# Caddy o'rnatish (Ubuntu/Debian)
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddyCaddyfile yarating:
code.sizning-domain.uz {
reverse_proxy 127.0.0.1:8080
}sudo systemctl reload caddyTamom! Caddy avtomatik HTTPS sertifikat oladi va code.sizning-domain.uz manzilida code-server ochiladi.
Caddy bilan subpath ham ishlatish mumkin:
sizning-domain.uz {
redir /code /code/ 308
handle_path /code/* {
reverse_proxy 127.0.0.1:8080
}
}Nginx + Let's Encrypt bilan
# Nginx va Certbot o'rnatish
sudo apt install nginx certbot python3-certbot-nginxNginx konfiguratsiya fayli:
server {
listen 80;
listen [::]:80;
server_name code.sizning-domain.uz;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
}
}WebSocket headerlari muhim! Upgrade va Connection headerlari bo'lmasa, code-server to'g'ri ishlamaydi. VS Code brauzerdagi real-time aloqa uchun WebSocket'lardan foydalanadi.
Konfiguratsiyani yoqish va sertifikat olish:
# Saytni yoqish
sudo ln -s /etc/nginx/sites-available/code-server /etc/nginx/sites-enabled/
# Konfiguratsiyani tekshirish
sudo nginx -t
# Nginx'ni qayta yuklash
sudo systemctl reload nginx
# Let's Encrypt sertifikat olish
sudo certbot --nginx -d code.sizning-domain.uzCertbot avtomatik ravishda Nginx konfiguratsiyasini HTTPS'ga yangilaydi va sertifikatni har 90 kunda yangilab turadi.
SSH Port Forwarding
Agar domain yoki sertifikat sozlash imkoningiz bo'lmasa, eng xavfsiz va oddiy usul — SSH tunnel.
# Local kompyuterdan serverga tunnel ochish
ssh -N -L 8080:127.0.0.1:8080 user@server-ipEndi brauzerda http://127.0.0.1:8080 manzilga kiring. Barcha trafik SSH orqali shifrlangan.
Doimiy SSH tunnel uchun ~/.ssh/config ga qo'shing:
Host code-server
HostName server-ip
User sizning-foydalanuvchi
LocalForward 8080 127.0.0.1:8080
ServerAliveInterval 5
ExitOnForwardFailure yesEndi shunchaki quyidagi buyruqni bajaring:
ssh -N code-servercode-server'ni yangilash
Systemd o'rnatilgan bo'lsa
curl -fsSL https://code-server.dev/install.sh | sh
sudo systemctl restart code-server@$USERDocker Compose bilan
cd ~/code-server
# Yangi image'ni tortish
docker compose pull
# Konteynerlarni qayta ishga tushirish
docker compose up -d
# Eski image'larni tozalash
docker image prune -fXavfsizlik bo'yicha tavsiyalar
Muhim xavfsizlik qoidalari:
-
Hech qachon code-server'ni autentifikatsiya va shifrlanishsiz internetga ochmang. Terminal orqali serveringizga to'liq kirish mumkin.
-
Kuchli parol ishlating. code-server parolni brute-force hujumdan himoya qiladi (daqiqada 2 ta, soatiga qo'shimcha 12 ta urinish), lekin kuchli parol barcha holatlarda muhim.
-
HTTPS ishlatiladi — quyidagi usullardan birini tanlang:
- Caddy (avtomatik Let's Encrypt)
- Nginx + Certbot
- SSH tunnel
cert: true(self-signed — faqat test uchun)
-
Firewall sozlang. code-server portini (8080) faqat localhost yoki reverse proxy'ga oching.
# UFW bilan faqat SSH va HTTPS ochish
sudo ufw allow ssh
sudo ufw allow 'Nginx Full'
sudo ufw enable- Tashqi autentifikatsiya qo'shimcha himoya sifatida ishlatilishi mumkin:
Foydali maslahatlar
Extension'lar o'rnatish
code-server VS Code extension'larini qo'llab-quvvatlaydi. Extension'larni VS Code ichidagi Extension paneli orqali yoki buyruq qatoridan o'rnatish mumkin:
# Extension o'rnatish
code-server --install-extension ms-python.python
code-server --install-extension dbaeumer.vscode-eslint
# O'rnatilgan extension'lar ro'yxati
code-server --list-extensionscode-server Open VSX (opens in a new tab) marketplace'dan foydalanadi (Microsoft marketplace emas). Ko'pchilik mashhur extension'lar mavjud, lekin ba'zilari faqat Microsoft marketplace'da bo'lishi mumkin.
Web service'larni proxy qilish
code-server ichida ishlab turgan web ilovalar (masalan, React dev server, API server) ga tashqaridan kirish uchun:
Subdomain usuli (tavsiya etiladi):
code-server --proxy-domain sizning-domain.uzEndi 3000-portda ishlab turgan ilova 3000.sizning-domain.uz manzilida ochiladi.
Subpath usuli:
code-server avtomatik ravishda /proxy/<port>/ yo'lini taqdim etadi. Masalan, 3000-portda ishlab turgan ilova https://code.sizning-domain.uz/proxy/3000/ manzilida ochiladi.
Qo'shimcha
Qo'shimcha Resurslar
- code-server rasmiy GitHub (opens in a new tab)
- code-server rasmiy dokumentatsiya (opens in a new tab)
- O'rnatish qo'llanma (opens in a new tab)
- Xavfsizlik va sozlash qo'llanma (opens in a new tab)
- Linux Serverlarga Docker o'rnatish (opens in a new tab)
Sana: 2023.12.20(2023-yil 20-dekabr)
Oxirgi yangilanish: 2026.02.12(2026-yil 12-fevral)
Muallif: Otabek Ismoilov
| Telegram (opens in a new tab) | GitHub (opens in a new tab) | LinkedIn (opens in a new tab) |
|---|