Self-Hosted Code Editor IDE Terbaik 2024

by Marcus Chen
Self-Hosted Code Editor IDE Terbaik 2024

Suatu malam kamu lagi deep focus ngerjain fitur baru, terus tiba-tiba Gitpod ngeluarin notifikasi: "You've used 50 of your 50 free hours this month." Editor langsung mati. Kode belum di-commit. Mood langsung hancur.

Itulah momen gue mulai serius nyari self-hosted code editor IDE yang bisa jalan di VPS sendiri — nggak ada jam habis, nggak ada data yang lewat server orang lain, dan yang paling penting: bayar sekali (VPS-nya), selesai.

Artikel ini bukan ranking afiliasi. Ini hasil gue nyoba satu-satu, kena error, dan akhirnya nemuin setup yang beneran jalan buat solo developer.


Kenapa Self-Hosted IDE Itu Worth It?

Sebelum masuk ke toolnya, gue mau jelasin dulu kenapa ini bukan overkill.

Problem nyata cloud editor:

  • Free tier habis di saat paling nggak enak
  • Latency tinggi kalau koneksi internet kamu jelek
  • Data kode kamu ada di server mereka (serius, baca ToS-nya)
  • Harga naik tiba-tiba — persis kayak cloud bill yang bikin gue rage-quit dulu

Dengan self-hosted:

  • Jalan di VPS Rp 50–150 ribu/bulan
  • Akses dari browser mana pun, termasuk tablet
  • Extension, theme, setting — semua persist karena kamu yang kontrol storage-nya
  • Bisa dimatiin dan dihidupin sesuai kebutuhan

Oke, langsung ke toolnya.


1. code-server — VS Code di Browser Kamu

Ini yang paling banyak dipakai dan paling gampang di-setup. code-server adalah VS Code yang di-port supaya jalan sebagai web app. UI-nya identik, extension marketplace-nya sama, keyboard shortcut-nya sama.

Install di Ubuntu/Debian

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

Setelah itu edit config-nya:

nano ~/.config/code-server/config.yaml
bind-addr: 127.0.0.1:8080
auth: password
password: ganti-ini-dengan-password-kuat
cert: false

Karena bind-addr di-set ke localhost, kamu butuh reverse proxy. Gue pakai Caddy karena auto HTTPS:

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 caddy

Edit /etc/caddy/Caddyfile:

code.domainmu.com {
    reverse_proxy 127.0.0.1:8080
}
sudo systemctl reload caddy

Done. Buka https://code.domainmu.com, masukkan password, dan kamu udah punya VS Code di browser.

Gotcha yang gue kena: Extension yang butuh akses ke binary lokal (misalnya Pylance versi tertentu, atau extension Docker) kadang nggak jalan sempurna karena code-server pakai marketplace-nya sendiri (open-vsx.org), bukan marketplace Microsoft resmi. Solusinya: download .vsix manual dari marketplace VS Code, terus install via Extensions: Install from VSIX.

Resource usage: ~200–300 MB RAM idle. VPS 1 GB RAM cukup buat coding ringan, tapi kalau kamu sering buka project Node.js besar atau jalanin TypeScript language server, mending ambil 2 GB.


2. Gitpod Self-Hosted (Gitpod Community)

Kalau kamu udah kenal Gitpod versi cloud, ada versi self-hosted-nya. Tapi jujur — ini bukan buat solo dev. Setup-nya butuh Kubernetes, minimum 4 core CPU dan 8 GB RAM. Lebih cocok buat tim kecil (3–10 orang) yang mau punya environment ephemeral per branch.

Gue sebutin di sini supaya kamu nggak buang waktu nyoba ini di VPS $5. Kamu akan nyerah di langkah ke-3.


3. Theia IDE — Kalau Kamu Mau Lebih dari VS Code

Eclipse Theia adalah IDE yang dibangun di atas teknologi yang sama dengan VS Code (Monaco editor, LSP, DAP), tapi lebih modular. Kamu bisa build IDE custom dengan branding sendiri, atau pakai distribusi yang udah jadi.

Cara paling gampang nyoba Theia adalah via Docker:

docker run -it --init -p 3000:3000 \
  -v "$(pwd):/home/project:cached" \
  theiaide/theia:latest

Buka http://localhost:3000. Langsung jalan.

Untuk production, kamu butuh setup yang lebih serius. Buat docker-compose.yml:

version: '3.8'
services:
  theia:
    image: theiaide/theia:latest
    init: true
    ports:
      - "3000:3000"
    volumes:
      - ./workspace:/home/project:cached
    restart: unless-stopped
    environment:
      - THEIA_DEFAULT_PLUGINS=local-dir:/home/theia/plugins
docker compose up -d

Kapan pilih Theia daripada code-server?

  • Kamu mau build IDE custom buat tim atau produk
  • Kamu butuh integrasi yang lebih dalam dengan toolchain tertentu
  • Kamu familiar dengan ekosistem Eclipse

Gotcha: Theia nggak support semua extension VS Code. Dia pakai Open VSX juga, tapi coverage-nya lebih terbatas. Kalau workflow kamu sangat bergantung pada extension VS Code spesifik, code-server lebih aman.


4. Coder (coder.com open-source) — Buat yang Mau Lebih Serius

Coder (bukan code-server, ini beda produk dari company yang sama) adalah platform lengkap buat manage multiple workspace. Cocok kalau kamu mau setup dev environment yang bisa di-share ke beberapa orang, atau kamu mau punya "workspace as code" dengan template.

Install via single binary:

curl -L https://coder.com/install.sh | sh
coder server

Pertama kali jalan, kamu akan diminta buat admin account. Setelah itu akses di http://localhost:3000.

Yang bikin Coder menarik adalah Templates — kamu define environment-nya pakai Terraform:

# main.tf (contoh sederhana)
terraform {
  required_providers {
    coder = {
      source = "coder/coder"
    }
    docker = {
      source = "kreuzwerker/docker"
    }
  }
}

resource "coder_agent" "main" {
  arch = "amd64"
  os   = "linux"
  startup_script = <<-EOT
    #!/bin/bash
    code-server --install-extension ms-python.python
  EOT
}

resource "docker_container" "workspace" {
  image = "codercom/enterprise-base:ubuntu"
  name  = "coder-workspace"
  command = ["sh", "-c", coder_agent.main.init_script]
  env = ["CODER_AGENT_TOKEN=${coder_agent.main.token}"]
}

Ini overkill buat solo dev, tapi kalau kamu freelancer yang sering onboarding client atau kolaborasi sama beberapa dev, ini worth.

Resource: Minimal 2 GB RAM, tapi recommended 4 GB kalau mau nyaman.


5. JupyterLab — Khusus Data Science / ML

Kalau kamu kerja di data science, machine learning, atau sering nulis Python exploratory, JupyterLab adalah self-hosted IDE yang paling masuk akal.

pip install jupyterlab
jupyter lab --ip=0.0.0.0 --port=8888 --no-browser

Tapi jangan expose langsung ke internet tanpa auth. Setup dengan password:

jupyter lab --generate-config
jupyter lab password
# masukkan password, ini akan disimpan di jupyter_server_config.json

Lalu jalankan:

jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --config=~/.jupyter/jupyter_lab_config.py

Pakai systemd supaya auto-start:

# /etc/systemd/system/jupyterlab.service
[Unit]
Description=JupyterLab
After=network.target

[Service]
Type=simple
User=ubuntu
ExecStart=/usr/local/bin/jupyter lab --ip=0.0.0.0 --port=8888 --no-browser
Restart=on-failure

[Install]
WantedBy=multi-user.target
sudo systemctl enable --now jupyterlab

Gotcha: JupyterLab bukan general-purpose IDE. Autocomplete dan refactoring-nya jauh di bawah VS Code. Tapi buat eksplorasi data dan visualisasi inline, belum ada yang ngalahin.


Perbandingan Singkat

Tool RAM Minimum Cocok Untuk Extension VS Code
code-server 1 GB Solo dev, general purpose Sebagian besar ✓
Theia 1 GB Custom IDE, tim Terbatas
Coder 2–4 GB Tim, multi-workspace Via code-server
Gitpod Self-Hosted 8 GB+ Tim besar, ephemeral env
JupyterLab 512 MB Data science, ML ✗ (beda ekosistem)

Setup yang Gue Pakai Sekarang

Setelah nyoba semua di atas, setup gue sekarang simpel:

code-server di VPS 2 GB RAM (Ubuntu 22.04), di-proxy pakai Caddy dengan domain sendiri. Semua project ada di VPS yang sama. Gue mount direktori /home/marcus/projects dan itu jadi root workspace.

Beberapa hal yang gue tambahkan:

  1. Tailscale — supaya code-server nggak perlu expose ke public internet sama sekali. Akses via Tailscale IP, lebih aman.
  2. Automatic backup — cron job tiap malam yang push semua project ke private Git repo.
  3. tmux — buat terminal session yang persist kalau browser-nya ketutup.

Konfigurasi Tailscale + code-server:

# Install Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

# Setelah dapat Tailscale IP (misal 100.x.x.x),
# update config code-server
bind-addr: 100.x.x.x:8080

Sekarang code-server cuma accessible dari device yang ada di Tailscale network kamu. Nggak perlu password yang super kompleks lagi karena network-level auth udah handle.


Langkah Lanjutan

Kalau kamu mau mulai, urutan yang gue sarankan:

  1. Coba code-server dulu — paling gampang, paling familiar kalau udah biasa VS Code.
  2. Kalau kerja di data science, langsung ke JupyterLab.
  3. Kalau mulai kolaborasi sama tim kecil, lirik Coder.
  4. Jangan buang waktu di Gitpod Self-Hosted kalau kamu solo dev atau tim < 5 orang.

Satu hal yang sering dilupain: backup konfigurasi IDE kamu. Sync ~/.config/code-server/ ke Git atau object storage. Kalau VPS mati, kamu nggak mau rebuild dari nol.

Self-hosted code editor IDE bukan solusi untuk semua orang, tapi kalau kamu udah capek sama limitasi cloud editor dan mau kontrol penuh atas environment-mu, this guide tentang infrastruktur bisa jadi referensi buat setup VPS yang solid. Ini investasi waktu yang worth it.