Raspberry Pi で node.js

Raspberry Pi で node.js 。

といっても、先日、Meteor 動かしたんだけど、重すぎだったので、もうちょっと軽い構成にしてみようと思った。

Meteor は内包された node.js を使う (ちょっと古いやつ) ので、個別に node.js は入っていなかった。

で、インストールするのだが、これは特に書くほどでもなくて、公式の Linux – armv7 用のバイナリがそのまま動く。 なので、基本的にダウンロード、展開して、パスを通すだけである。

Meteor は正直、重くて、使う気にならないレベルだったが、素の node.js ならば、問題なく動くようだ。 メモリ使用量も virtual は結構使うが、 real はそれほどでもないので、実用性はありそう。

いわゆる MEAN スタックも動くが、 MongoDBがちょっとメモリ食いかなと思う。 MEAN の フルスタック scaffold は、さすがに重いので、個別に Express.js, Angular.js, socket.io あたりを集めてくれば、軽い。

今は、Express.js, Vue.js, socket.io でリアクティブの勉強中。

Raspberry Pi で Meteor

Raspberry Pi で Javascript / Node.js フレームワークの Meteor を動かす。

といっても、バイナリを用意してくれているプロジェクトがあるので、git clone するだけでインストールできる。 GitHub のプロジェクト 4commerce-technologies-AG/meteor の README.md に手順が書いてある。

このプロジェクトでバイナリが配布される前でも、ソースからビルドすれば動いたようだが、ビルドは1日掛かりになったとか。まあそんな感じはする。

基本的に

git clone --depth 1 https://github.com/4commerce-technologies-AG/meteor.git

して、PATHを通すだけ。

初回の実行に Rasberry Pi 3B で約20分掛かった。 他の遅い機種では厳しそう。
また create や、サンプルの起動にもそれぞれ5分くらい掛かる。
起動してしまえば、ちょっと重いが、普通に動作するように見えるので、省電力で上げっぱなしに出来ることを考えれば、使えなくはないかもしれない。

しかし、Rails とか Node.js とか、プロジェクトの実行時にライブラリを用意して、かつ、x86/x64 以外はビルドが入るようなやつだと、どうしても重いなあ~と思う。

起動時に MongoDB が Locale が認識できないというエラーが出る場合は、sudo raspi-config でロケールを en_US.UTF-8 に変更すると回避できる。

Raspberry Pi の ステータスをグラフ表示: rpgraph

Raspberry Pi で運用中のサーバの状態をグラフ表示しようと思った。
最初は、MRTG を入れてみたんだけど、SNMP で拾うのが手間だし、拾えても思ったような値じゃない場合ある。

Raspberry Pi のCPU温度センサーの値なんかも拾いたいので、結局スクリプトで拾うことにしたのだが、書いているうちに、SNMPじゃなくて全部、スクリプトで拾えばいいじゃん。 それに、別にMRTGじゃなくてもいいじゃん! と思えてきたので、ぱぱっと自作してみた。

CRONでシステム状況をファイルに保存して、html ファイルに加工。 出力は Google Charts ライブラリを使って、クライアントサイドで描画してしまえばいい。ということで、こんな感じのやつが出来た。

リアルタイムでのグラフはここ

シェルスクリプトと、awk を使って、適当に。。。

需要があるかは分からないが、一応 GitHub で公開中。

https://github.com/sakisan28/rpgraph

初 GitHub 。お手柔らかに。。。

Raspberry Pi で プロジェクト管理

Raspberry Pi サーバに、スケジュール管理用の Web 画面を作ろうと思って、色々画策した。

最初は、Nextcloud (ownCloud からバージョンアップした) 上の Deck というアプリでやろうかと思ったが、あまりにシンプルすぎてやめた。

次に Redmine を入れてみたのだが。。。 Raspberry Pi ではちょっと重い感じがするし、個人で使うには機能や設定が多すぎて面倒な気がしてやめる。 でも、高機能は魅力だし、ガントチャートなんかも良くできていると思うので、またいつか戻ってくるかも。

で、Kanboard というのを入れてみることにした。

カンバン方式のプロジェクトマネージメントで、分かりやすいし、そこそこに日本語化もされている。 インストールは、PHPが動く環境が出来ていれば、基本的に展開して、仮想ディレクトリの設定をするだけである。 ちょうど WordPress のインストールみたいな感じ。

動作が軽いし、画面もシンプルで気に入っている。

gogs との連携も出来るみたいなので、時間があったらやってみたい。

Raspberry Pi で Docker (Windows で Wifi 設定)

以前、やろうとしてやらなかったネタ。

Raspberry Pi には、専用の Docker 環境 Hypriot がある。

サイトを見ると、テロリスト風のちょっと悪趣味なサイトだが、モノ自体はまとも。

インストーラーは Windows / Mac / Linux に対応しているが、Windows の場合、インストーラで Wifi を設定できない。 どうしたものかと思っていたが、イメージ書き込み後に device-init.yaml を編集したらいけた。

# hostname for your HypriotOS device
hostname: black-pearl

# optional wireless network settings
wifi:
  interfaces:
     wlan0:
       ssid: "SSIDをここに書く"
       password: "パスワードをここに書く"

ファイル自体は最初からあるが、wifi: からのくだりはコメントアウトされているので、行頭の#を取るのをお忘れ無く。

で、使ってみた感想だが。。。
確かに Raspberry Pi に何かをインストールテストする際には使える。
しかし、メモリも少ないし、動作も重いので、あまり使えないな。。。という印象。

やっぱり、Intel NUC あたりに 8GB くらい載っけて、x64 の4コアくらいで動かしたいな。。。Docker は。

参考: https://github.com/hypriot/device-init