Running VSCode in your web browser!
架設網頁版的VSCode,隨時隨地從任何裝置編輯程式碼。
1. VSCode與code-server差別#
這裡Ivon安裝的是Coder Technolgies開發的code-server,並非Microsoft官方提供的Visual Studio Code Server服務,亦不是Visual Studio Code Remote - SSH延伸模組。
Visual Studio Code (簡稱VSCode
) 本身是用Electron寫成的桌面程式,不方便遠端使用。
而code-server
這個專案能讓Visual Studio Code在瀏覽器裡面執行。這樣我們就可以用瀏覽器存取遠端,並直接編輯Linux電腦上的程式碼啦!換句話說,客戶端電腦不需要安裝VSCode,也能用網頁版code-server寫程式,所有運算都是在遠端電腦完成。
客戶端的瀏覽器可以是Chromium、Firefox、Safari,code-server應該都支援。
這有點類似遠端桌面,但這裡code-server是作為Web APP執行。即使遠端是headless的Linux伺服器環境,依然能夠跑code-server。
code-server操作跟原版Visual Studio Code差不多,但code-server不能登入Github帳號同步延伸模組,也不見得相容所有的延伸模組,請謹慎測試。
如果你需要存取完整的Visual Studio Code功能,客戶端又不能安裝Visual Studio Code的話,那麼還是用遠端桌面吧。
2. Linux安裝code-server#
code-server跟原版的VSCode可以共存,資料是分開存放的。
Docker版code-server可能要設定docker volume才能存取系統上的其他目錄,為免麻煩,直接裝.deb或.rpm套件。
- 參考Github說明,執行開發者提供的指令稿。應該會自動偵測Linux發行版並安裝套件。
curl -fsSL https://code-server.dev/install.sh | sh
- 設定開機自動啟動code-server服務
sudo systemctl enable --now code-server@$USER
- 接著要調整code-server服務設定檔:
vim ~/.config/code-server/config.yaml
- 填入以下內容,綁定0.0.0.0允許外部連線,通訊埠設定為8080,並設定登入驗證方式為密碼。(code-server尚支援Github外部驗證方式,這裡Ivon選了最簡單的方案)
bind-addr: 0.0.0.0:8080
auth: password
password: 12345678
cert: false
- 重啟code-server服務
sudo systemctl restart code-server@$USER
- 這樣就可以用
http://Linux電腦的IP:8080
存取VSCode了,登入需要輸入密碼。
3. 設定外網連線code-server的方式#
跟code-server連線的時候,不會經過Microsoft的伺服器中介,你可以自由選擇連線方式。
例如我會使用內網穿透軟體從外網連線。
部份code-server功能需要HTTPS連線,例如存取剪貼簿。如果你沒有自己的網域,可以透過Taiscale Funnel達成。