概要
- サーバー と クライアント 間の新しいWebベースのシェル構想
- 各アプリが 小型HTTPサーバー として動作、連携可能
- SSH経由 やローカルで利用、セキュリティ向上
- Unixドメインソケット 利用による柔軟な権限管理
- Outer Shell や関連ドキュメント、デモ動画の紹介
ブラウザベースのグラフィカルシェル構想
- Webブラウザ は、サーバーとクライアント間で優れた体験を実現
- 新提案: サーバーやエッジデバイス がブラウザベースのグラフィカル「シェル」を提供
- シェルは アプリのホーム画面 を提供し、各アプリは 小型HTTPサーバー として独立動作
- シェルAPIにより、アプリ同士が URL検索・連携 可能
- 例:テキストエディタアプリ登録、他アプリからのファイル編集連携
- 従来の ターミナルアプリ に代わる新しいグラフィカルアプリの形
セキュリティと実装方法
- 各HTTPサーバーは プライベート で、他デバイスからは基本的にアクセス不可
- 利用方法は SSH経由 またはローカル利用が中心
- 一般的なWebサーバーツールと異なり、 localhostポート ではなく
- Unixドメインソケットファイル を利用
- ファイルシステム上で明示的なユーザー権限管理
- HTTPサーバーは シンプル構成 で暗号化不要
- 暗号化は SSHレイヤー で処理
- アプリは HTMLベースWebアプリ や ネイティブOuterframeアプリ として実装可能
Outer Shellとデモ
- Outer Loop をSSHブラウザとして構築
- 新たに オープンソースOuter Shell を公開
- デモ動画(Screencast)や YouTubeミラー も提供
ドキュメントとリンク集
- ブラウザの仕組み説明:https://outerloop.sh/
- Outer Shell API・アプリ追加方法:https://outershell.org/
- ネイティブアプリの仕組み:https://outerframe.org/
考察:なぜ今まで存在しなかったのか
- ブラウザの Unixソケット接続機能 はニッチ扱い
- SSHやsudo対応 と組み合わせることで新しい可能性
- 従来のLinuxサーバーはローカルGUI重視だったが、
- 今後は「外部」グラフィカルシェルでリモート利用が主流に
- JupyterやTensorboardなど 個別サーバー型Webアプリ は登場したが、
- セキュリティや統合面で最適化されていなかった
- AIによるコード生成支援 で、各プラットフォーム向けのネイティブアプリ開発が現実的に
- 今後のWebアーキテクチャの自然な進化:
- HTMLは閲覧や簡易アプリ 向け
- 本格作業はネイティブアプリ へ
謝辞
- Rosanne Liu、Mirko Klukas、Adam Zethraeus、Felix Andrews へのフィードバックへの感謝