2022/7/22現在、公式のホスティングサービスでは無料版がなくなり$2のプランのみになっているようです。
私は普段、LINEのbotを開発したりもしていますが、ローカルで動いている開発中のWebアプリで外部サービスからのWebhookを受け取りたい場面がよくあります。そういうときに使われる有名なツールに ngrok があり、HTTPSも使えて大変助かるのですが、私が使っていて不満を感じていたのは、
- 動作が重い
- リージョン指定すると多少マシにはなりますが、それでも重い…
- 最近は改善されているかも?
- 無料版ではサブドメインを指定できない
- お金払えば済む話ではありますが、それだけのために月$5払うのはちょっと…
といった点です。他のツールだと serveo(2021/03/05現在使えなくなっちゃったんですかね?)や localhost.run を使ったことがありますが、少し前に tunnelto というツールに乗り換えました。
私が使っていて良いと感じるのは、
- 気にならない程度に動作が軽い
- 2021/3/5現在、無料版でもサブドメインを指定できる
- サインアップが必要です
- 他の人に予約されているドメインは指定できません
- 月$2払えば、50個のサブドメインを予約できます
といった点です。簡単に導入できるので、早速インストールして使ってみましょう🏃♂️💨
インストール
公式サイトにインストール方法が載っています。Macを使っている方はHomebrewでインストールできます。
$ brew install agrinman/tap/tunnelto
アクセスキー登録
サインアップするとアクセスキーが発行されます。そのアクセスキーをローカルに設定します。
$ tunnelto set-auth --key YOUR_ACCESS_KEY
Authentication key stored successfully!
アクセスキーは ~/.tunnelto/key.token
に保存されます。
実行
例として、ローカルのHTTPサーバが8080番ポートを使っていてmokichidevというサブドメインを使いたい場合、以下のコマンドを実行します。
$ tunnelto -p 8080 -s mokichidev
(省略)
⣷ Success! Remote tunnel created on: https://mokichidev.tunnelto.dev
=> Forwarding to localhost:8080
表示されている通り、 https://mokichidev.tunnelto.dev で外部からローカルのHTTPサーバにアクセスすることができます。HTTPSにも対応していて良いですね✨
最後に
今回は公式のホスティングサービスを使いましたが、tunneltoはRust製のOSSで、サーバも自分でホスティングできます。私は今のところ公式のものを使っていますが、READMEに方法が載っているので、社内の制約等で必要な方は自分でホスティングしてみてください。