Firebaseを使ってP5をScrapboxで実行する
(2019/11/7)
GitHub Pagesを使ってp5をScrapboxで実行するようにしていたが、Firebaseを使う方法を試してみた。
Firebase Hostingというやつを使う。
https://masui.github.io/runp5/?p=masui/p5をScrapboxで実行する&c=p5.js より簡単に実行できるようにしたい
手順
ローカルマシンにFirebaseツールをインストール
$ npm install -g firebase-tools
Firebase環境の設定
$ mkdir runp5
$ mkdir runp5/public
$ cd runp5
https://github.com/masui/runp5 にある index.htmlとかをpublicフォルダに置く
$ firebase init
Hostingを選択する
その他いろいろ指定する
$ firebase deploy
動いた! https://run-p5.firebaseapp.com/?code=https://scrapbox.io/api/code/prog-exercises/正規分布の生成/normal.js
run-p5になってるのは、6文字以上という制約があるため
runp5.comで動かす
firebaseapp.com じゃなくて独自ドメインで動かしたい
Google Domainsで
runp5.com
を取得する Firebaseに接続する
ダッシュボードで設定する
ステータスが『設定が必要です』となっている間は独自ドメインからは接続できません.しばらく待たないといけないようです.
待てばいいのかな
3時間ぐらい待ってもかわらない...
どうもGoogle Domainsで設定が必要らしい
自動じゃなかったのか...
こんなのを設定した
保留中になった
1時間たっても変わらず
最大24時間かかる?
http://runp5.com/ は動くようになったが https にならない
httpsにする方法がわからない
DNSSECとやらの設定なのかもしれない
違うかもしれない
やっとhttpsになった(半日後ぐらい)
結果
というわけで、よくわからないが動くようにはなった
ノウハウが多いようで大変だったが
Firebaseは、あまり重要でないサービスを軽く作るには良いのかも
サーバでRuby動かしたりはできないだろうし制限はある
もっと複雑なものはHerokuなどでやるのが良いのだろうが、サーバの機能をほとんど使わない場合はFirebaseで良いということなのだろうか
ハマったところ
DNSの設定がよくわからない
httpsの設定もよくわからない
index.htmlの中でindex.jsを相対パス指定してたらエラーで動かなかった
/index.js
みたいな指定が必要 ルーティングの方法がわからない
https://runp5.com/project/page/file
を認識するためには firebase.json
に以下のような記述を書くfirebase.json
"rewrites": [
{
"source": "/*/*/*",
"destination": "/index.html"
}
],
こう書くと、
runp5.com/project/page/file
のようなURLを与えたとき index.html
に飛ぶ index.js
の中で、 document.location.pathname
が /a/b/c
になっている場合を調べる そういうのをJSでやるのは邪道ではないのか? よくわからない。
JSONでもJSでもルーティングの指定をしなきゃならないのは変だと思う