Proxer
HTTP、SSE、WebSocketサービス向けのセルフホスト型リバーストンネルです。
Proxerは、自分で管理する公開サーバーを通して、ローカルのHTTP、Server-Sent Events、WebSocketサービスを公開するセルフホスト型リバーストンネルCLIです。
なぜProxer?
Section titled “なぜProxer?”ローカルサービスごとにインバウンドポートを開ける運用は手間がかかり、リスクも増えます。SSHフォワードは一時的な作業には便利ですが、チームで共有したり安定した公開ホスト名で運用したりするには向きません。ホスティング型のトンネルサービスは手軽ですが、コントロールプレーンを外部サービスに預けることになります。
Proxerはワークフローをシンプルに保ちます。公開サーバーを1つ起動し、プライベートネットワーク側からクライアントを接続します。各クライアントはサーバーへ永続的なWebSocket制御接続を開き、公開リクエストはそのクライアント開始の接続上でローカルサービスへ戻されます。ローカルアプリは127.0.0.1やプライベートインターフェースで待ち受けるだけで十分です。
ルーティングは明示的です。--subdomainなしのクライアントはルートドメインの経路を担当します。--subdomain demoを指定したクライアントはdemo.<domain>を担当します。不明なホストは推測して転送せず、404を返します。
- 公開HTTPトラフィック、WebSocketアップグレード、ヘルスチェック、トンネル制御を扱う単一ポートサーバー
- 通常のレスポンスや長時間レスポンスに対応するHTTPストリーミング
- レスポンス本文をバッファリングしないServer-Sent Events対応
- リアルタイムなローカルアプリ向けのWebSocketプロキシ
- NAT配下やプライベートネットワークから使えるクライアント開始トンネル
- 単一クライアントへのfallbackがないルートドメイン・サブドメインルーティング
- Traefikなどのreverse proxy向けの信頼済みプロキシ対応
- 単体実行ファイル、npm、Homebrew、OCIイメージで配布
- AIエージェントがProxerの使い方を読めるスキルインストールコマンド
実行イメージ
Section titled “実行イメージ”# 公開サーバーを起動proxer server --listen 0.0.0.0:8080 --domain your-server.example.com --token dev-token
# ローカルアプリをサブドメインで公開proxer http 3000 \ --server ws://your-server.example.com:8080 \ --subdomain demo \ --token dev-token
# 公開リクエストをトンネルへ送るcurl -H 'Host: demo.your-server.example.com' http://your-server.example.com:8080/次のステップ
Section titled “次のステップ”はじめにに進み、Proxerをインストールして最初のローカルサービスを公開してみましょう。