Go

【PlatHome】自宅のデバイス状態監視用のローカルWebアプリケーションを作った。

久しぶりに作ったものが紹介できるよ!!!(ちゃんと動くところまで滅茶苦茶時間がかかった) もくじ で何作ったの? 欲しい機能 使いたい技術 で生まれたもの 仕組み 感想 で何作ったの? 家のラズパイ監視アプリ!!! 背景としては、家にラズパイが5台くらいあって、それぞれ、(ローカル)dnsサーバ、vpnサーバ、NAS、ホームハックサーバとか色んなロールが割り振られているのですが、何故か唐突に死ぬ。 電源の問題なのかな・・・まじで急にこっくり行く・・・(USBの5台くらい給電できる奴使ってるのですが、それがどっかで調子悪くなっているのが濃厚) それはそうとして、ラズパイが生きてるか確認したい。とりあえず、死んでたら、コンセント抜き差しでラズパイ再起動すれば良い。 欲しい機能 デバイスの状態確認をしたい。具体的にはサーバが他のラズパイにpingを送って、帰ってこなかったら死んでる、帰ってきたら生きてる、の2パターンを想定。 PWAが良い(WoTを感じられるので)、後はスマホ以外からアクセス出来るようにレスポンシブ対応とかしていきたい。 GET http://<ホームハックサーバのIP>/?light=on で部屋の明かりが付くようにしているのでそれをWebアプリからやりたい(簡単なGETリクエストとかをアプリから)送れるようにしたい。 使いたい技術 PWAといえばnuxtのイメージがあるのでnuxtを使ってみたい。そもそもVueを触っていたのでせっかくなのでnuxtも学んで行きたい! GoとかDB(ORM)をバで学んでいるので活用していきたい。AutoMigrationに甘えきった人間になります。 配布や導入を簡単にするためにdockerを使いたい。使ったことないけどPostgresやGo、Nodejsの3つのコンテナが通信し合うのでdocker-composeを使用する必要があるかな。 で生まれたもの Macからだとこんな感じ スマホだとこんな感じ こんな感じでデバイスの追加ができます オラッgitリポジトリだ! 仕組み 理想はポートの消費を1つにしたいんだけど、後述の内容からポートの消費を3つにしてしまいました。 まず、今回のアプリケーションは3つのコンテナで動いています。

【TwitterをInstagram Storiesっぽく使う】ShamePreventer v1.1

gopher の画像は Renee French さんによって作成された画像 | CC BY3.0です。 Go言語を勉強する機会があったため、学びつつ何となくプライベートでも作ってみたいなと思って、Go言語でなんか作りました。 バイトでDockerを使う機会もあったため、そのアウトプットとしてDockerイメージを作るところまでやりました。 それで、何を作ったかというと、24時間経ったツイートを自動で削除してくれるアプリです。 できるだけ楽にするため、アプリ自体のプロセスを簡略化しました。 起動 -> 全ツイート取得 -> 現在時刻と比較して24時間以上経ったツイートだけ抽出 -> 削除 -> アプリ終了 OS側でアプリの定期起動を設定してやることで動作させています。 ピッタリ24時間経ったら消える訳ではありませんが、定期実行の間隔を短くすればその分、正確にはなると思います。 使い方は簡単! Docker環境を構築してGCPに登録してバケットを作成するだけ! もう書くこと無くなっちゃたので GitHubのページを載せておしまいにします。 Docker知ってれば一瞬で使えると思うし知らなければしぬほど時間かかるので説明の落とし所が不明です ごめんちゃい これ