Repolode
butlerx

butlerx/wetty

HTTP/HTTPS経由で提供され、xterm.jsとWebSocketsを基盤とするブラウザー上のターミナルエミュレーター。

スター
5,479
フォーク
771
未解決の Issue
15
最終コミット
一昨日

これは何?

WeTTYを使うと、ブラウザー上でシェルを利用できます。xterm.jsのターミナルページを配信するNode.jsサーバーを実行し、WebSockets経由でローカルシェルまたはSSHサーバーに入出力を中継します。AjaxtermやAnytermなど従来のブラウザーターミナルと比べ、AjaxポーリングではなくWebSocketsを使うため、キー入力への応答が速く保たれます。

rootで実行すると、WeTTYはユーザーがユーザー名を入力できるように /bin/login を起動します。それ以外の場合はsshを起動し、デフォルトでlocalhostに接続します。SSHのホスト、ポート、ユーザーのオプションを指定すれば、リモートホストにも接続できます。認証方式はパスワードまたは公開鍵に対応しており、サーバーには許可するブラウザーオリジンのリストを明示する必要があります。npmやDockerイメージから実行できるほか、HTTPSを利用する場合はnginxやtraefikなどのリバースプロキシの背後に配置できます。

主な機能

  • 01xterm.jsを使い、ブラウザー上で本格的なターミナルエミュレーターを実行します。
  • 02WebSockets(Socket.IO)を使い、低遅延で入出力を処理します。
  • 03ローカルのログインシェルまたはリモートのSSHサーバーに接続します。
  • 04SSHのパスワード認証と公開鍵認証に対応しています。
  • 05許可するオリジンのリストが必須で、ベースパスも設定できます。
  • 06npmパッケージとDockerイメージを提供しています。

ユースケース

  • ネイティブのSSHクライアントを使わずに、チームメンバーへブラウザー経由でサーバーのシェルアクセスを提供する。
  • リバースプロキシの背後にある社内マシンで、Webターミナルを提供する。
  • ターミナルアプリのないデバイスから、自宅のサーバーやラボのマシンにアクセスする。

クイックスタート

  1. 1

    npmでWeTTYをグローバルインストールする

    npm -g i wetty
  2. 2

    許可するブラウザーのオリジンを指定してWeTTYを起動する

    wetty --allowed-origin http://yourserver:3000
  3. 3

    ブラウザーでサーバーのアドレスを開き、ログインする

使う前に知っておきたいこと

  • node 20以降と、make、python、build-essentialなどのビルドツールが必要です。
  • 接続を受け付けるには、--allowed-originを明示的に設定する必要があります。
  • 端末への完全なアクセスを許可するため、HTTPSとリバースプロキシで保護する必要があります。

収録されている特集

トピック

よくある質問

wetty とは?
HTTP/HTTPS経由で提供され、xterm.jsとWebSocketsを基盤とするブラウザー上のターミナルエミュレーター。 WeTTYを使うと、ブラウザー上でシェルを利用できます。xterm.jsのターミナルページを配信するNode.jsサーバーを実行し、WebSockets経由でローカルシェルまたはSSHサーバーに入出力を中継します。AjaxtermやAnytermなど従来のブラウザーターミナルと比べ、AjaxポーリングではなくWebSocketsを使うため、キー入力への応答が速く保たれます。
wetty は無料で使えますか?ライセンスは?
wetty は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
wetty は今もメンテナンスされていますか?
活発にメンテナンス中。wetty の最終コミットは 2026年11月6日 です。
wetty は何に使えますか?
ネイティブのSSHクライアントを使わずに、チームメンバーへブラウザー経由でサーバーのシェルアクセスを提供する。 リバースプロキシの背後にある社内マシンで、Webターミナルを提供する。 ターミナルアプリのないデバイスから、自宅のサーバーやラボのマシンにアクセスする。
wetty のインストール方法は?
npmでWeTTYをグローバルインストールする: npm -g i wetty 許可するブラウザーのオリジンを指定してWeTTYを起動する: wetty --allowed-origin http://yourserver:3000 ブラウザーでサーバーのアドレスを開き、ログインする
wetty はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/butlerx/wetty

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト