動かざることバグの如し

近づきたいよ 君の理想に

ローカル環境を外部公開するngrokをスタンドアロン版で動かす

ngrokとは

ngrokとはローカルの開発環境を別のマシンとかでテストしたり、他のAPIと連携させるときのwebhookとしてグローバルに公開したいときに使える便利なツール

ただ、トンネル技術を使ってるのでアクセスはngrokを通るため、機密性の高いデータを渡すのはちょっと、、となるし、無料版だと1ポートしか開けられない。

そこでスタンドアロン版を構築することで同様の事ができるのを探した。その名も「localtunnel」

必須環境

  • Ubuntu 18.04
  • Nodejs 8 or 10 higher

サーバー側のインストール

localtunnel/server: server for localtunnel.me

git clone でダウンロードして、npm install で依存ライブラリをインストールだけ

cd /usr/local # お好みで
git clone git://github.com/defunctzombie/localtunnel-server.git
cd localtunnel-server
npm install

あとは localtunnel-serverのディレクトリでサーバーを起動するだけ ポート番号は任意

node -r esm ./bin/server --port 20080 --domain lt.turai.work

クライアント側のインストール

使う側のマシンにも同様にNodejsが予めインストールされている必要がある

npmで一発インストール可能

npm install -g localtunnel

起動するときは、そのディレクトリで

lt --host http://lt.turai.work:20080 --port 3000

でやると、以下のようなURLが生成される。これはすでにグローバルでアクセスできるようになる。

http://bad-pug-23.lt.turai.work

--subdomainオプションをつけると、URLのプレフィックスを固定することができる。例えば

lt --host http://lt.turai.work:20080 --port 3000 --subdomain rails1

だと http://rails1.lt.turai.work のようなURLが生成される。

このままだとhttpsではないので、実際にはNginxをプロキシに挟んでhttpsがする感じだろうか