ogochan
他の仕事をやっていてなかなか手が回ってなかったのですが、設定の永続化とクライアントのcliコマンドを作りました。
設定の永続化としてSQLiteに保存するようにしました。
それと共に、設定したりアカウント作ったり用のweb UIを作りました。
さらに、クライアント用のコマンドも作ったので、とりあえず世間に存在している逆プロキシのシステム(orサービス)と同じ程度のことが出来るようになったと思います。
永続化、普段私がはこの手のものを作る時にはたいていPostgreSQLを使うのですが、手軽に動かして欲しいなと思ったのでSQLiteにしてあります。まぁ、Sequelize-cliを使った環境なので、環境をいじれば何にでも対応は出来るだろうと思います。
設定が永続化できるということは、この設定をユーザ側から追加変更したいとか、そもそもユーザ登録が出来るようにしたいとかとゆーのがあるので、web UIを作りました。
いつものようにAdminLTEを無理やり新しいBootstrapに対応させたものを使ってます。
まだ外部に公開した時にちゃんとSSLが機能するかとか、パフォーマンスがどうかということは検証が必要ですが、とりあえず動いてるなという感じにはなりました。
これで検証を続けてバグ取りして、いくつか未実装の機能を追加すれば「逆プロキシのソフトウェアセット」の完成ということになるのですが、思うところあってここをゴールにはしていません。もちろんリリース品質にすることは重要ですが、その他に
一般的なOS(WindowsやMac)の上で動くウェブサーバを兼ねたクライアント
を作りたいと思っています。そうすると、プロキシのクライアントを起動すると自動的にウェブサーバが起動するわけです。
たとえば「誰かにローカルにあるファイルを渡したい」時には、「それ用のアドレスを通知する」だけでファイルを渡せるようになりますね。ファイルの受け渡しに「ファイル共有クラウド」を使わないで済むというのは、いろんな意味で「自由」が手にできますよね。
あるいは、昔あった「個人サイト」を誰でもまた作れるようになるかも知れませんね。
あるいは、「社内システム」を社外(在宅)で使うための入口を作ることも、そんなに難しくなくなるかも知れません。
Napierのゴールは実はその辺にあったりします。そのために、websocketを使ってトンネルを実装したわけなので。
ということで、まずは「一区切り」ということでエントリにしてみました。
GitHubの方は、ここまでいじったものにしてあります。