先日、VPS上にVSCode Serverをインストールしようとしたところ動かなくなっており、詳細を調べているうちにこのスレッドにたどり着きました。
ここをみると、どうもVSCode Serverの機能はRemote Extensionに統合されたので、もはや提供されなくなったようです。(setup.shでダウンロード可能なバイナリが無くなっている)
じゃあどうすればいいのか?
サーバ上でVSCodeを動かして、ブラウザでエディタを立ち上げたい、iPadで開発したいという皆さんは、引き続きVSCode本体で簡単に実現することができます。
$ code tunnel
サーバ上に普通のVSCodeをインストールして、code tunnelと打ち込むだけで、github.devのドメインでトンネルがホストされてブラウザ上でもローカルのVSCodeとも接続可能な状態になります。
daemon化して常時起動したい
それも簡単です。こいつを打ち込むだけで常時起動してくれます。
$ code tunnel service install
トンネルじゃなくて直アクセスしたい
個人的にはトンネルは結構ラグがあってあまり快適ではなかったので、個人的には直接つなぎたいわけです。その機能は当初なかったのですが、serve-webというコマンドが少し前のビルドで生えています。
$ code serve-web
これで8000番ポートで起動するので、Cloudflare TunnelやTailscaleなどでつなげば快適に開発ができるようになりました。
なお、実際のコマンドとしてはいくつかの引数をつけて運用しています。--accept-server-license-termsに関しては、お試しで一度起動すればいいのでつけない場合もあります。
/usr/bin/code serve-web --without-connection-token --accept-server-license-terms
rootで起動するような環境は以下のオプションも必要です
/usr/bin/code --no-sandbox --user-data-dir=/etc/vscode serve-web --without-connection-token
※いずれにしても、インターネットからアクセスできないネットワークセキュリティが万全な環境で利用するようにしましょう。
serve-webも常時起動のdaemon化する
serviceコマンドが見当たらなかったので、自前で書きます。ほかにもオプションはありますが、最低限のみ記入するとこんな感じです。
$ sudo vim /etc/systemd/system/vscode-server.service
---
[Unit]
Description = VSCode Server Service
[Service]
ExecStart = /usr/bin/code serve-web --without-connection-token
Restart = always # 常に再起動
User = kusuke # root以外で実行する場合ユーザ名をセット、rootの場合この行を消す
[Install]
WantedBy = multi-user.target
---
$ sudo systemctl start vscode-server
$ sudo systemctl enable vscode-server
参考:以前書いた記事