code-serverがものすごい使い勝手いい

A8バナー広告

こんなことを書く

  • VS codeのブラウザ版code serverを自前のサーバーにインストールした話
  • 運用してみたら、ものすごい使い勝手がいいっていう話

code severって何?

VS codeをWeb serviceとして動作できるようにしたプロジェクト。

基本的な機能はVS codeとさほど変わらない。

みての通りFirefoxブラウザの中で動作してる

どこで運用してる?

大学にサーバーマシンがあるので、そこにインストールしてみた。

大学のネットワークはプライベートネットワークで、SSH入り口マシンが用意されている。ローカルマシンからサーバーマシンへダイナミックポートフォーワードでSSHトンネル(socks5)を用意し[1]、ブラウザからはproxy機能を使ってサーバーマシンに接続する。最後にブラウザのURLバーにlocalhost:稼働ポート番号を打ち込めばいい。

プロキシの制御にはFirefoxのFoxyProxyプラグインを使ってる。

[1] 本来ならばSSHポートローカルフォーワーディングで十分。どうしてダイナミックポートフォーワーディングかというと、大学ネットワークが「不可解にも」ポート番号への通信ブロックをたくさん設置しているから。と、言うよりSSH用の22番ポート以外はほぼすべてブロックされてる。そんなわけで学生は毎回のようにIT担当者にお伺いをたてて、ポート通信許可の設定してもらってる模様。まじフランス官僚主義\(^o^)/ ぼくはIT担当者と不毛なやり取りしたくないので、ダイナミックポートフォーワーディングを選んだ。これならSSH用22番ポートだけでも問題ない。

どんなことできる?

基本的にはコードの開発に使ってる。SSH接続のIDEにありがちな「接続が切れたので、テスト実行が中断した」っていう問題が起きない。

あとはTexで執筆。Latex Workshop extensionがとても優秀。PDFの閲覧は別タブが開く仕組みになってる。

文字ペーストできない問題

Firefoxでcode serverを使っていると、ペーストできないことに気がついた。原因はPast APIが機能しないから、なぜかというとhttp通信だから。最近のブラウザはこういうところがセキュリティに気を配ってる。

これでは不便なので、code serverを無理やりhttps化した。証明書を自分で作って、コマンドをコピペするだけで終わった。すごい簡単。

どんなときに便利?

非力なマシンで開発作業するときには特に便利だと思う。

ぼくは最近、Lenovo duet Chromebookを買った。めっちゃ軽くて便利。しかもLinux VMが標準装備なので、ある程度の開発作業もできる。実際、VS codeもLinux VMの上で動作する。

・・・・とは言え、所詮は11インチのChromebook。ときどき、動作がもたつく。これが続くと割とストレス。ブラウザベースのcode serverなら、そういう問題は起きない。

画像
街の図書館でchromebookを使ってみた。この図書館はディスプレイを誰でも開放してる。マジ神。Vive la France!

他に便利な用途は、マシンを変えても作業内容が継続できること。SSHターミナルでは当たり前のことだけど、IDEで同じことができるのはとても価値がある。