Serveoはもう駄目なのでLocaltunnelを試してみた
ローカルポートをフォワードして外部に公開してくれるサービスとしてメジャーなのはngrokでしょうか
私は使用頻度自体が滅多に無かったのでコマンド入れてユーザ登録してまで使う気がしなかったのでsshコマンドで動いてくれるServeoの方がお気に入りでした
とはいえしょっちゅう死んではひっそり生き返るってことを繰り返した挙げ句ずっと死んでる状態なので流石に今使おうとは思えないです
ngrok使おうかと思ったんですが折角だしあんまり情報のないLocaltunnelを試してみました
nodeのDockerコンテナでハローワールドのWEB画面作ってコンテナ内から公開してみます
まずはnodeコンテナ内でnpm init
$ docker run -it --rm node bash
root@fa1c2894adaf:/# mkdir test
root@fa1c2894adaf:/# cd test
root@fa1c2894adaf:/test# npm init -y
Wrote to /test/package.json:
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
ハロワ出すためにexpressいれる
root@fa1c2894adaf:/test# npm i express
added 50 packages, and audited 51 packages in 3s
found 0 vulnerabilities
npm notice
npm notice New patch version of npm available! 7.21.0 -> 7.21.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v7.21.1
npm notice Run npm install -g npm@7.21.1 to update!
npm notice
ハロワ画面の作成と表示
root@fa1c2894adaf:/test# cat <<EOF > app.js
> const express = require('express')
> const app = express()
>
> app.get('/', (req, res) => res.send('Hello World!'))
> app.listen(3000, () => console.log('Server ready'))
> EOF
root@fa1c2894adaf:/test# node app.js &
[1] 32
Server ready
localtunnelで公開してみる
いよいよ本題ですインストール面倒なのでnpxで実行しちゃってます
npm i -g localtunnelでインストールたほうが良いとは思います
root@fa1c2894adaf:/test# npx localtunnel -p 3000 -s tantantanuki
your url is: https://tantantanuki.loca.lt
公開したいポートは-p
サブドメインは-s
で指定出来るみたい
この段階でコンソールに出ているhttps://tantantanuki.loca.ltにアクセスすることでグローバルからハロワのページが見れる状態になってるようです
画面確認
これで画面を表示してみると初回こんな画面が出るが
真ん中の青いボタンを押すと正常に表示される
IP毎に7日毎にこのページが出るみたいな事書いてますんで初回起動時に1度みたら一週間は大丈夫っぽいですね
使ってみた感想
HTTP/HTTPSのみフォワードなのでかなり適用範囲は狭いです
この程度のサンプルアプリなら普通に動きます
登録不要でサブドメインが使えるので用途が合っているなら便利です。。。
ただWEBインターフェースを持ってるアプリを幾つか使い捨てのコンテナに入れては公開して試して見ましたが動かない画面も結構ありました
本末転倒ですが問題の切り分けのためにngrokを入れて試してみた所それらの画面は問題なく動いてしまったためlocaltunnelの問題のようですね
どうもサーバと画面が通信して常時画面更新されるような作りの画面はまともに動いてくれなくなってる気がします
完全に静的な画面なら問題なく動く気がしますがちょっと凝ったことしようと思うと途端に動かなくなりそうです
なので大人しくngrok使ったほうが良さそうですね(結局入れちゃったし)
以上、無駄に時間を使ってngrokに戻ってきた狸よりお届けしました
とっぴんぱらりのぷう
P.S.
それにしても昔はHP作るといえば
テキストエディタでシコシコHTMLタグ書いて
しょぼい画面が出来て
プロバイダが送ってきたFTP鯖にFFFTPで繋いで
作ったファイル置いたら
何故かプロバイダが広告挿入してきて
ただでさえゴミのような画面がさらに楽天ショッピング見たいな悲惨な画面にされて
って感じだったのがいつの間にか
create-react-app的なコマンド叩いて
出来たファイルちょろっと弄ったらそこそこ見れる画面が出来て
githubにコミットしたら
連携してるええ感じのサービスのところがそのままの画面でネットに公開しといてくれちゃいます
みたいな感じになっててヤバイ
未来すぎてまったくついていけない
あの頃はJavaScriptなんてすぐ死滅するその場しのぎの言語見たいな扱いされてたのに。。。
なんならPerlがこれからのトレンドみたいな風潮だったのに立場が逆転してるし
あの頃の自分に教えてあげたい。。。
きっと同じような悲惨なおじさんが大量に生み出されてると思うのでそういうおじさん用の教材が欲しいなと思う今日この頃です
Discussion