srvdir
srvdir - make any folder a secure public fileserver
ローカルの静的コンテンツをインターネットに公開するためのHTTPサーバを紹介します。
まえがき
昨日 と 一昨日 とブログに書いた通り、 Pebble アプリを開発するために、 CaddyでローカルのHTMLをWebブラウザから見られるようにし、 それをngrokでインターネットに公開して「これでもう怖いものはない」と悦に入っていました。
当然Twitterにも誇らしげにツイートしますよね。
A combination of Caddy and ngrok are best for debugging of Pebble configuration!!
https://t.co/o2IZL7PnyX
https://t.co/ky71Wg11nM
#Pebble
— taturou (@taturou) 2015, 5月 20
すると、見ず知らずの外国の方からこんなリプライが。
@taturou @mholt6 I love caddy but have you looked at srvdir for this use case? It's by the ngrok guys.
— Justin McNally (@j_mcnally) 2015, 5月 21
意訳するとこんな感じでしょうか。
Caddy は確かにすげーけど、その使い方ならならsrvdirだろ。 知ってるか?ngrokチームが作ったやつだぞ。
正直、パッと見て srvdir
をrmdirのタイポかと勘違いして「何言ってんだこいつ?」と思いましたが、そうではありませんでした。
そして、この srvdir
がマジ超絶すげーやつでした。
srvdir とは
ローカルの静的コンテンツをインターネットに公開するためのHTTPサーバです。
以下の特徴があります。
- Caddyの機能を持っている
- ngrokの機能を持っている
そう。つまりCaddyとngrokを組み合わせて実現していたことが、srvdirだけで実現できるのです。 開発チームは安心と信頼のngrokの開発チーム。
Webサイトもngrokと同じテイストで、情報がスッキリ整理されているのでわかりやすいです。
カレントディレクトリをインターネットに公開する
$ srvdir
任意のディレクトリをインターネットに公開する
$ srvdir /path/to/directory
これだけです。これだけでローカルのフファイルをインターネットに公開できます。NAT越えも完璧。すげぇ!
好きなサブドメインを設定する
$ srvdir customsubdomain:/path/to/directory
これで https://customsubdomain.srvdir.net
に公開されます。
Digest認証を付ける
$ srvdir -auth="root:12345" customsubdomain:/path/to/directory
提供方式
以下のプラットフォーム向けにバイナリが提供されています。
導入方法
Ubuntuに導入する方法です。 バイナリをダウンロードしてZIPを解凍するだけなので、他のプラットフォームでも同じような手順で導入できるはずです。
インストール
以下を適当なファイルに保存して実行するとインストールできます。
#!/bin/bash # アプリ名 app="srvdir" # インストールパス libpath="/opt/${app}/" # 実行ファイルのパス binpath="/usr/local/bin/" # 実行ファイルのパス sudo mkdir -p $libpath # ダウンロード cd $libpath sudo wget "https://dl.srvdir.net/linux_386/srvdir.zip" # ダウンロードしたファイルを解凍 sudo unzip "srvdir.zip" # 実行ファイルへのシンボリックリンクを作成 cd $binpath sudo ln -s "${libpath}/${app}"
ユーザー登録と認証
ngrokと同様にログインすると認証キーをもらえ、認証すれば好きなサブドメインを使えるようになります。
$ ./srvdir -authtoken <認証キー>
あとがき
caddyとngrokはそれぞれが単機能を確実にこなす、質実剛健な感じのツールです。 それはUNIXの精神に通じるものがありとても好ましいのですが、人間時には少し楽をしたいものです。 srvdirはそういった少し楽をしたい欲を満たしてくれる素晴らしいツールです。
srvdir
恐ろしい子。