ハードウェアからサーバ・アプリまでワンストップで開発

ここのところ忙しくて、なかなかここを書けないでいました。

もう随分前ですが、Napierをいろいろ整理して、実用に出来るようにしました。

デモ環境も作ったので、手軽に使ってみることが出来ます。

前回までのところで、プロキシとトンネルは動作するようになりました。

その後、テストを繰り返して、SSLが正常に動くようになりました。

本当はここをゴールにするつもりだったのですが、SSLを試しているうちにどうしても「任意のテストサイトを表示させたい」という必要性が出て来ました。いい感じにSSLが動きつつ、いい感じにプロキシされているということを確認するためには、異なる複数のウェブサイトを表示させた方が確認がしやすいからです。と言うか、最初は一つにしてURL見て... とやっていたのですが、ブラウザのキャッシュ等のせいでわけのわからないことになったので、「異なるサイト」が欲しくなったわけです。

元々Napierは「手軽にグローバルに公開できるサイトを持つ」ためのものとして作っていたのですが、「第一ステップ」は手元のサーバを公開させるプロキシとトンネルを完成させたかったのです。ところが、テストの都合からウェブサーバを組み込んでしまった方が楽だということに気がついて、急遽「組み込みウェブサーバ」を実装することにして、動くようにしました。

この機能は本当はVer 2.0につけるつもりで、Ver 1系ではプロキシとトンネルをいろいろ頑張る予定だったのですが、結局「Ver 2」が先に出来てしまうということになってしまいました。

テストに使ったプロキシの方も、自分で使っていると便利だったので、動いたままにしてあります。特に普段開発に使っているラズパイがUbuntuのOpenVPN(とゆーかSSL)のせいで会社のVPNにつながらなくなってしまっているので、家から自分のドキュメント環境にアクセス出来なくて不便だったので、これを使うためにNapierを動かしています。

そんなわけで、今はNapierを落として来て環境設定をして動かすだけで、自分のところにある任意のディレクトリをウェブで公開出来るということになっています。

ユーザ登録は必要ですが、誰でも登録できるようになっているので、今のところ誰でも自由にフルセット動かせるようになっています。

<ユーザ名>.napier-net.com

という形式のホスト名であれば、httpでもhttpsでも使えるようになっています(ワイルドカード証明書です)。

実は「プロファイル」を設定してDNSの設定をすれば、任意のドメインが使えるようになっていたりもするのですが、ここはドキュメントが追いついていません。

将来的には、このサーバ(プロキシ)を強化して公開サービスにしてしまおうかと思っています。そうなったら多分「独自ドメイン」については若干の課金をする予定です(AWSの通信費を取られるので)。当面は「デモ」環境として使ってもらって結構です。

雑な説明はこちらにあります

「ウェブサーバ」は、Node.jsのHTTPモジュールにserve-handlerを追加したものです。これをそのまま使うのは若干の不満があったので、元のコードを使いつつ機能追加をして使っています。この部分については、また別に解説する予定です。

公開したディレクトリにindex.htmlがなかった場合、--indexをつけて起動していれば、ディレクトリインデクスが表示されます。普通にウェブサイトを公開する時にはこれを止めておくのが普通ですが、「○○のファイルならここにあるから見て」的なやりとりを想定して、ディレクトインデクスも出るようにしました。

次はElectronを使ってGUIクライアントを作る予定です。バージョン番号は、多分2.5ですね。

最近のエントリー

Hieronymusのインボイス番号対応について

会計システム「Hieronymus」の現状

OrangePi5にZabbixをインストールする

レビュー等の依頼について

オープンソースのノートアプリ「SiYuan」 - CasaOS AppStoreレビュー

お気に入りの色さがし1

創立記念日

現在の営業品目(2)

現在の営業品目(1)

SPDX License Listをデータ化した

Orange Pi5でC3TR-Adapterを試す

CasaOS上で会計システム「Hieronymus」を動かす

会計システム「Hieronymus」v1.0.0 リリースしました

CasaOSでファイル同期アプリSyncthingをセットアップする

第11回 Freshmeat

オープンソースノーコード「Activepieces」でワークフローを作る

RaspberryPiにパーソナルクラウドOS「CasaOS」を導入する

sequelize-cliでdb:migrateすると「SyntaxError: Unexpected token ':'」が出る

LED行燈の試作(2)

CMSの社内向けサービスのリニューアル