[markdown]

超低消費電力なARMマイコンLinuxサーバとして活用できるRaspberry Pi。
我が家では、既に販売終了している初代の[Raspberry Pi 1 Model A](https://ja.wikipedia.org/wiki/Raspberry_Pi)が現役で活躍中です。
そんな我が家の家庭内LAN上に張り巡らせた、超快適環境を提供してくれるサーバ群を紹介します。
というより、そろそろ整理しておかないと、壊れた時に困りそうな気がして、慌てて書き出したというのが正直なところ^^;
## 提供サービス一覧@Raspberry Pi
低消費電力を活かして、**Raspberry Piには常時稼働が必要な、それでいて負荷が少ないサービスを割り当てるのが得策**です。
一般的なマイコンより高性能とはいえ、さすがにx86 Core2/CoreiなどのCPUには劣るARM。目的が違うのでしょうがない。
そういうわけで、我が家では以下のサービスがRaspberry Piで稼働しています。ディストリは標準的なraspbian。
サーバサイド | クライアントサイド | ||||
---|---|---|---|---|---|
名称 | 価格 | 概要 | 名称 | 価格 | 概要 |
OpenVPN | free | 家庭内LANに安全にアクセス。 | OpenVPN Connect | free | iOSアプリ。家庭内LANに安全にアクセス。 |
OpenVPN Connect | free | Androidアプリ。機能はiOSアプリと同様。 | |||
BIND9 | free | 家庭内LANの名前解決に。 | - | - | - |
rpwcweb | free(original) | サーバPCの電源スイッチをリモートでON/OFFできる。 | ブラウザ | free | ChromeやFirefox。一応IEでも動作する。 |
Solar monitor | free(original) | DIY太陽光蓄電システムの状況を監視し、データを可視化(グラフ化)したり、呟いてくれる。 | ブラウザ, |
free | グラフ化したデータをブラウザで参照できる。Twitterで主要なイベントを参照できる。 |
Radiation monitor | free(original) | 放射線量を定点観測し、データを可視化(グラフ化)したり、呟いてくれる。 | ブラウザ,Twitter | free | 休止中 |
### OpenVPN
大量の写真や動画など、重いデータを抱えたサーバPCを外部ネットワークから隠すため、VPNを導入しています。
### BIND9
でもって、家庭内LAN上のデバイスをIPで直接指定するのはイケてないので、BIND9も稼働しています。DHCPはルータにMAC毎の固定割り当て設定をしてお任せしています。
### 太陽光/放射線量モニタ etc.
上記以外は自作のサーバアプリ群で、VPN内部に隠したサーバPCの電源をブラウザ経由でONしたり、自作ソーラー発電蓄電システムの状態を監視したり、家の周辺の放射線量を定点観測したりしています。
## メディアサーバPC提供サービス
VPNの後ろに隠したサーバPCでは以下のメディア関連サービスが稼働しています。
QNAPなどのNASを検討したこともありますが、ビデオカメラで撮影したMTS動画を標準的なMP4変換する処理など、結構重い処理をJenkinsが回すので、QNAP外にスレーブを用意するくらいならNASとビルドスレーブマシンは兼任させるのがベスト。
という判断で、PCサーバに落ち着いています。
ディストリは未だにUbuntu 14.04.5 LTS。そろそろdist-upgradeせねば…。
サーバサイド | クライアントサイド | ||||
---|---|---|---|---|---|
名称 | 価格 | 概要 | 名称 | 価格 | 概要 |
Jenkins | free | 説明が不要なくらい超有名なCIシステム。 デジカメ写真や動画を撮影日ディレクトリに振り分けたり、写真をAmazon Cloud Serviceに同期してくれたり、flickrに自動でアップした上でExifデータを読み取って月ごとのアルバムを自動生成したり、撮った動画をDLNA経由で配信できる形式に自動変換してくれる。 |
- | - | - |
Bittorrent Sync | free(機能制限あり) | Dropboxのようなサービスを自前のPCサーバで実現できる。 無料で使用するには一部機能制限を受け入れる必要がある。 |
BitTorrent Sync | free | iOSアプリ。 撮った写真や動画を自前PCサーバと同期できる。無線LAN接続時のみ同期させて通信量を節約することも可能。 |
Resilio Sync | free | Androidアプリ。 アプリ名はiPhone版と多少異なるが、リリース元、機能共に同じっぽい。 |
|||
mpd | free | ALSAデバイス用音楽Jukeboxサーバ。 ローカルに接続したALSAデバイス経由で、ローカルなスピーカから音楽再生が可能。<!-- Binding_to_IPV6_before_IPV4に注意。 --> |
MPDluxe | $2.99 | iOSアプリ。 mpdをリモート操作できる。 |
MPDroid | free | Androidアプリ。 mpdをリモート操作できる。 |
|||
Supersonic | free | Subsonicクローン。 WebベースのMusic Streamer。JukeboxやPodcast Receiver機能も備える。 |
AVSub | $3.99 (480円) | iOSアプリ。 Supersonicからのストリーミングを受けて音楽を再生できる。 |
UltraSonic | free | Androidアプリ。 Supersonicからのストリーミングを受けて音楽を再生できる。 |
|||
PS3 media server | free | 動画や写真、音楽データをDLNAクライアントに配信できる。 | 色々 | - | DLNAクライアントアプリ、デバイス。(省略) |
*※:日本円価格は為替レートにより変動します。*
### Jenkins
PCサーバは少し凝ったことを自動化していて、udevでSDカードの挿抜をフックしてJenkinsにイベント飛ばすようにしています。
JenkinsはSDカードから写真や動画をローカルにコピー、撮影日時に応じてディレクトリツリーを生成、振り分けて整理してくれた後、写真はRAWデータごと[Amazon Cloud Service](http://blog.rinka-blossom.com/xie-zhen-detabatukuatupuniamazon-cloud-drivewoshi-ukotonomerituto/)と同期してバックアップします。
また、写真はJPEG画像のみ、[flickrに自動でアップした上で、Exifデータを読み取って月ごとのアルバムを自動生成](http://tech.uribou.tokyo/python_flickrapi_2/)するようにしました。
Amazon Cloud Drive同様、flickrも **写真をオリジナル画質のままアップロードできる** ので重宝しています。
### Bittorrent Sync
DropBoxのようなサービスを自前のPCサーバで提供することができます。
無料で使用するには、同期するファイルを子フォルダに配置できないという宣言はありますが、同期ファイルのサイズ制限や容量制限はない(自前のPCサーバ容量が許す限り)ので、Dropboxよりはある意味自由度があるのかなと。
iPhoneの写真や動画をサーバに飛ばし、Jenkinsさんに処理させて自動整理するようにしています。
### mpd
ALSAに対応したサウンドデバイス経由で音楽再生を可能にするJukeboxサーバアプリケーションです。
クライアントアプリはiPhone、Androidの両方からリリースされているので、特に迷うことはないと思います。
### Supersonic
手持ちの音楽ファイルを、3G/4G回線を経由したVPN回線でストリーミング配信することができます。
このためにPCサーバを稼働させ続けるのでは電力が勿体無いので、[rpwcweb](https://github.com/dodo5522/rpwc)のような、外部から電源操作できるようなサービスがあると便利。
AndroidのSubsonicクライアントアプリは複数の選択肢がありましたが、無料アプリでSupersonicとの組み合わせで正常に音楽再生できたのは[Ultrasonic](https://play.google.com/store/apps/details?id=org.moire.ultrasonic)だけでした。他は**「サーバアドレスが不正」**などのエラーで再生できませんでした。Subsonicクローン対策がされているのかも…?
### PS3 media server
名前から分かる通り、PlayStation3のDLNAクライアントに配信するためのDLNAサーバです。
でも実際は規格を満たしていれば何でも良いので、、DLNAクライアントはiPhoneだろうがTVだろうが再生可能です。
主に旅の思い出動画を家族で鑑賞する際に使用しています。
## まとめ
カメラやビデオなど、記録を残すデバイスがデジタル化するにつれて、その記録したデータをどう手軽に参照するかが問題になると思います。
特に記録を残すデバイスが1つならまだいいんですが、複数個になると収集がつきませんよね。我が家の場合は夫婦それぞれが所有するデジカメとiPhone(各2台)、ビデオカメラが1台あるという状態です。
つまり、写真撮影可能な機材は4台、動画撮影可能な機材は5台あるわけですね。
メーカーもApple、Nikon、Sonyとバラバラなので、専用のアプリケーションソフトを個別にいれて管理しようものなら、破綻するのは明白。
というわけで、メディアサーバを1台用意し、Jenkinsという便利な自動化ツールを活用して、データを一元管理して快適なデジタルライフを送りましょう。
…ちょっとやりすぎな感じもしますが。
## おまけ
上記サーバ群は主にLinux OS上に構築しています。
Linuxについて知っておいて損はないと思うので、赤本黒本片手に勉強しながらサーバを構築し、LPIC資格も取得して一石二鳥にするのがオススメです。
今では両方ともKindle版が出てるんですね。かさばらなくて良いなぁ。
[/markdown]