投稿

ラベル(web)が付いた投稿を表示しています

Mastodonインスタンス procydon.net 誕生!

イメージ
分散型SNSの Mastodon ,これまでもいくつかのインスタンスでお世話になってきていて,主に 名古屋丼 を使っていたのですが,ふと思い立って自分でもインスタンスを立ち上げてみました。 なんか,星の名前で「〜don」っぽいのはないかなと考えていたところ,「Procyon(プロキオン・こいぬ座の一等星)」があったので,これだ!ということで, Procydon という名前にしました。 何はともあれ,サーバが必要。ということでいくつかVPSを覗いてみたところ, ConoHaのVPS がなんか大安売りをしていたので,3年間の長期契約。なにせ,36ヶ月契約すると,CPU 3core,RAM 2GBのVPSが1ヶ月あたり465円!になるというので。 今,別のサーバではさくらインターネットのVPSを使っているけど,違うのも使ってみたいというのもあったので,これで申し込み。なんか,クレジットカードがうまく決済できないとかちょっとトラブったけど,なんとか申込み完了。 いざ,サーバ構築。 Mastodonのドキュメント を読んだところ,Ubuntu 20.04もしくはDebian 11がおすすめっぽかったので,Debian 11をVPSにインストール。(普段から,Debian系を使っているので,このあたりは全く問題なし。) また,先人の記録を見ていると,投稿に添付されたメディアファイルでストレージがあふれるのが問題ということもわかったので,メディアはオブジェクトストレージに保存するのが良さそう。ちょうどいいことに,ConoHaは オブジェクトストレージ のサービスも提供しているので,これも申し込み。100GBあたり月額495円ということで,決して安くはないけどネットワーク転送料金込みと考えればまあありかな。 なお,ConoHaのVPSの追加ストレージはかなりお高い。(200GBで月額2750円は…) あとはドメインの取得。 ドメインは安易に取得するとのちのち管理(供養)に困るので,ちょっと悩んだけど,普段使っているのは大学時代のサークル用のドメインなので,別でprocydon.netを取得。これもConoHaでとって,DNSもConoHaのものを使うことに。TLDは.jpだとちょっとお高いので,.netで。 どうもConoHaのコントロールパネル,普段使っているさくらインターネット...

omniauth + omniauth-gitlab

rubyのWebアプリケーション用ミドルウェアRackで動作する認証ライブラリの omniauth でGitLabを認証プロバイダとして使用するためのメモ。 GitLabをOAuth2認証プロバイダとして使用するためのomniauth用strategyとして, omniauth-gitlab がある。 オンプレミスでGitLabサーバを立ち上げている場合は, Standalone Usage のように設定する。 use OmniAuth::Builder do provider :gitlab, "***your_gitlab_key***", "***your_gitlab_secret***", { client_options: { site: "https://gitlab.example.com/", } } end ここまでは,素直にできたのだけど,OAuth2の認証後,callbackされるURLをデフォルトから変更したい場合(リバースproxyの後ろで動いているアプリなど),どうすればいいのか? omniauth-gitlabでは,独自に用意されているオプション redirect_url があるようなので, use OmniAuth::Builder do provider :gitlab, "***your_gitlab_key***", "***your_gitlab_secret***", { redirect_url: "https://yourapp.example.com/custom/callback", client_options: { site: "https://gitlab.example.com/", } } end とするのがよさそう。

Google App Engineを始めてみた

イメージ
しばらく前に Google App Engine (GAE) Standard環境でruby 2.5が使えるようになったということで,GAEを始めてみました。 以前から,GAEのFlexible環境ではrubyが使えていたのですが,こちらはお高いので手が出ていなかったんですよね。Standardであれば無料枠があるので,個人的に使う分くらいなら大丈夫。 ただ,データベースでRDBが使いたいとかなると,Cloud SQLとかを使うことになって,これまたお高いので,無料枠のある Cloud Datastore (FirestoreのDatastoreモード) を使う必要があります。 Datastoreは,RDBではなくKVS (Key Value Store)タイプのデータベースですが,インデックスさえ用意しておけば,複合検索や並べかえも可能なので,まあ,Webアプリのデータベースとしては使いやすいと思います。 というわけで,作ってみたのはお小遣い帳。そんなのスマホアプリでもなんでもあると思うのですが,それはそれ。自分の使い勝手に合わせて作れるということで。 家計簿ほど細かい用途は入れるつもりがなくて,いつ・どこで・いくら・どの方法で支払ったのかだけ把握できればOK。今だと,「どの方法」が結構重要で,クレジットカードや電子マネーも複数持っていたりするので。 もちろん,外出先で使う場合,スマホから記録できることも想定しています。 まず,フレームワークはいつも使っている Sinatra を。 で,ログイン方法としては,Googleアカウントを使いたかったので,rubyでは定番の OmniAuth を使って,GoogleのOAuth2で。 あとは,履歴の入力と履歴の確認。 とりあえず,GAEを触ってみた感想としては,特にGAEに特化した何かを組み込む必要がないので,普通に作ったSinatraアプリケーションがそのまま動くのがいい感じ。ベンダーロックインされないですし。なので,デバッグも楽で,普通に端末上で動くところまで持っていけばOK。 ただ,アプリケーションインスタンスが無料枠を越えるといきなり料金が高くなりそうなので,スケールさせる場合は気をつけないと。(個人で使っている分には大丈夫そうですが)

Leaflet

Web上で地図を表示するためのライブラリ Leaflet を試してみた。 今までも,Google Maps APIは使ったことがあったので,基本的な概念はそれほど問題なく,チュートリアルをざっと見て,とりあえず使い方はわかった。 で,Google Mapsと違って,Leafletには地図データそのものは含まれていないので,どこからから取得しないといけないけど,これも日本では国土地理院様が素晴らしいデータを公開してくれているので,ありがたく 地理院タイル を使わせていただく。 いや,冗談抜きで,国土地理院のデータ公開への取り組みっていうのは素晴らしいです。サンプルコードも GitHub で公開していたり。 贅沢を言うと,航空写真が2007年頃と少々古いので,そろそろ新しいのが欲しいなというくらいで。😁 というわけで,ざっくり作ってみたサンプル。 http://kikulab.nuasa.org/leaflet/ エラー処理をあまりしていないので,航空写真や標高別色分けはズームレベルによっては表示されなくなります。あと,各スポットの説明文や説明文は,WikipediaおよびWikimedia Commonsから使わせていただいています。 Leafletについてはドキュメントを見る限り,地図および地図上への各種データの表示に関しては,Google Maps APIと同程度のことができる感じ。