【PlatHome】自宅のデバイス状態監視用のローカルWebアプリケーションを作った。文章捨て場ポエムと吠えるホームブログ情報MenuSidebarPrevNextSearchRSSFeedlyホーム>Go【PlatHome】自宅のデバイス状態監視用のローカルWebアプリケーションを作った。使いたい技術で生まれたもの仕組み感想で何作ったの?家のラズパイ監視アプリ!!!背景としては、家にラズパイが5台くらいあって、それぞれ、(ローカル)dnsサーバ、vpnサーバ、NAS、ホームハックサーバとか色んなロールが割り振られているのですが、何故か唐突に死ぬ。電源の問題なのかな・・・まじで急にこっくり行く・・・(USBの5台くらい給電できる奴使ってるのですが、それがどっかで調子悪くなっているのが濃厚)それはそうとして、ラズパイが生きてるか確認したい。死んでたら、コンセント抜き差しでラズパイ再起動すれば良い。欲しい機能デバイスの状態確認をしたい。具体的にはサーバが他のラズパイにpingを送って、帰ってこなかったら死んでる、帰ってきたら生きてる、の2パターンを想定。PWAが良い(WoTを感じられるので)、後はスマホ以外からアクセス出来るようにレスポンシブ対応とかしていきたい。部屋の明かりが付くようにしているのでそれをWebアプリからやりたい(簡単なGETリクエストとかをアプリから)送れるようにしたい。使いたい技術PWAといえばnuxtのイメージがあるのでnuxtを使ってみたい。そもそもVueを触っていたのでせっかくなのでnuxtも学んで行きたい!GoとかDB(ORM)をバで学んでいるので活用していきたい。AutoMigrationに甘えきった人間になります。配布や導入を簡単にするためにdockerを使いたい。使ったことないけどPostgresやGo、Nodejsの3つのコンテナが通信し合うのでdocker-composeを使用する必要があるかな。生まれたものMacからだとこんな感じスマホだとこんな感じこんな感じでデバイスの追加ができますオラッgitリポジトリだ!仕組み理想はポートの消費を1つにしたいんだけど、後述の内容からポートの消費を3つにしてしまいました。今回のアプリケーションは3つのコンテナで動いています。(DB)で、まずはメイン機能であるpingを送るためには、dockerコンテナ内の閉じたネットワークではなく、ホストのネットワークに属する必要があります。ここで、pingを送るのはGoアプリのコンテナなので、Goアプリのコンテナにはnetwork_mode="host"を指定しています。(ここでポートの消費が発生)で、次にDBです。本当はコンテナネットワークにおくべきですが、アクセス元のGoがhostのネットワークに属する以上、Dockerのネットワークのアドレスを指定する必要があるなどしてもうめんどい!普通にpublishしてGoではhost=localhostって感じにして接続させます(またポート消費)でフロントはもちろんpublishしないとダメだよね(ここでまたポート消費)って感じになってます。3をどう活用しようか迷っていた。...【TPS】Unityで初めてゲーム作った【はじめてのUnityでアプリを作る第二話”妥協”】お久しぶりです。参加してきたよ!多分僕が最も遅く記事を作った人間になるでしょう。コメントをキャンセルメールアドレスが公開されることはありません。