Oxaa
  1. ローカル環境を、そのままオンラインへ。ネットワークを開放せずに。
  2. Framework・Runtime ガイド
  3. Ruby on Rails アプリの localhost を HTTPS 公開する

ローカル開発向けの安全な公開エンドポイント

Ruby on Rails アプリの localhost を HTTPS 公開する

ローカルの Ruby on Rails アプリを管理された HTTPS endpoint で公開し、stack 固有の proxy 動作と実際の外部リクエストを確認します。

要点

テスト済みの Ruby on Rails fixture をローカルで動かし、選択したポートだけを公開して実際の外部リクエストを確認します。一般的な quickstart の繰り返しではなく、Host、proxy、cookie、realtime の動作 という stack 固有の課題を解決します。

手順

  1. サポート対象の Ruby on Rails と Oxaa バージョン、固定された example commit を使用します。
  2. bin/rails server または repository に記載された development command でアプリを起動します。
  3. loopback 上の決定的な health route を確認します。
  4. oxaa loginoxaa http <port> を実行し、edge-ready を待ちます。
  5. 別ネットワークまたは Provider sandbox から公開 URL を開きます。
  6. 該当する stack 固有の Host、proxy、cookie、redirect、raw body、realtime 動作を確認します。
  7. 期待するローカルログ、response、Inspector state を確認します。
  8. ルートを停止し、一時設定を削除し、テスト済み version を記録します。

Ruby on Rails 固有の注意点

  • テスト済み framework・Oxaa バージョン
  • 動作する example repository とローカル起動 command
  • Oxaa command と edge-ready 出力
  • stack 固有の Host、proxy、cookie、realtime 動作
  • 実際の外部 request、期待する出力、一般的な error
  • クリーンアップと正確な Provider・use case へのリンク

トラフィックと Inspector データの扱い

Oxaa の公開エッジでは、正確なホスト名を解決し、現在認証されているルートを特定してリクエストを転送するために公開 TLS を終端します。登録済みデバイスと Oxaa の間のセッションは暗号化され、そのセッションを通じて選択したローカルサービスだけにリクエストが届きます。

サービスの運用と保護に必要な範囲で、アカウント、ルート、使用量、セキュリティ、請求、サポート、診断のメタデータを保持します。Inspector の body キャプチャは通常の転送とは別の、明示的なデバッグ操作です。ローカル Inspector に表示される制限付きの request/response body コピーは開発者端末に残り、マスキング、即時削除、自動失効が可能です。公開トラフィックはエッジで処理されるため、「Oxaa はトラフィックを見られない」ではなく「Inspector のコピーはローカルに残る」と説明します。

トラブルシューティング

最初にローカルプロセス、ポート、scheme を確認します。次に認証と時刻、DNS、UDP/443、TCP/443 fallback、社内 proxy または TLS interception、ルート所有状態、edge-ready を確認します。oxaa routes listoxaa diagnose --network、安定した error ID を使用し、共有前に secret、body、プライベートパスを除去します。

クリーンアップと本番環境への移行

外部 callback、preview URL、DNS 設定を削除し、テスト用認証情報をローテーションし、ローカルキャプチャを削除してルートを停止します。必要に応じてデバイスまたはセッションを失効させ、本番トラフィックはデプロイ済みアプリ、production ingress、またはイベント配信基盤へ移行します。

Oxaa が行うこと・行わないこと

Oxaa は、登録済みデバイスと認証済みルートが有効な間、選択したローカル HTTP/HTTPS サービスを外部から利用できるようにする開発用接続です。アプリのホスティング、一般的な VPN、forward proxy、恒久的な本番配備、raw TCP/UDP トンネル、任意の TLS passthrough、CDN/WAF、または本番 Webhook 配信基盤ではありません。