Shinobi
関連記事
Shinobi は Node.js で記述された最新のオープンソース NVR(Network Video Recorder) です。個人または教育のための使用であれば、Pro バージョンの使用にライセンスキーは必要ありません。商用目的の使用の場合は、このページを参照してください。
インストール
shinobi-gitAUR を インストール して下さい。
node の実行を期待する方法です。その結果、いくつかの制限が課せられます:
- WebUI からのプラグインのインストールは機能しません。必要な場合は、root としてサーバーを手動で起動して下さい。
pm2が使用されていないため、WebUI からの再起動機能は機能しません。- root のみが実行できるため、1000 未満のポートへのバインドは機能しません。これは、FTP または SMTP を使用してモーション/オブジェクト検出を受信する場合にのみ関係します。いくつかの回避策オプションについては、#カメラ内からの動き/物体検出 を参照してください。
設定
MariaDB サーバーのインストールとセットアップ
初期設定については MariaDB#インストール を参照し、次のコマンドを使用して Shinobi 用のデータベースを作成します:
# mysql > CREATE DATABASE ccio; flush privileges; \q
Shinobi のユーザー majesticflame を作成し、新しいデータベースに対するすべての権限を付与します:
# mysql < /usr/share/shinobi/sql/user.sql
/usr/share/shinobi/sql/user.sql をコピーして変更する必要があります。例えば、LAN IP が 192.168.9.100 の場合
$ sed 's/127.0.0.1/192.168.9.100/g' < /usr/share/shinobi/sql/user.sql > /tmp/user.sql
次に、scp またはその他のメカニズムを使用してファイルを MariaDB サーバーにコピーし、変更した SQL ファイルを実行します:
# mysql < /tmp/user.sql
最後にデータベースにテーブルを追加します:
# mysql ccio < /usr/share/shinobi/sql/framework.sql
Shinobi のセットアップ
/etc/shinobi/conf.json を編集し、db.host の下の 127.0.0.1 を置き換えます。必要に応じて /etc/shinobi/conf.json をカスタマイズします。
必要に応じて、メールセクションを設定し、コメントに示されているように cron キーをランダムなものに置き換えます。
必要に応じて、/etc/shinobi/super.json を編集し、"pass" の値を md5sum ハッシュ化されたパスワードに置き換えることにより、スーパー管理者パスワードを変更します。次のようなものを生成します。
$ echo -n PASSWORD | md5sum
shinobi.target ユニットを使用して Shinobi を 起動/有効化 します。shinobi.target は shinobi-camera.service と shinobi-cron.service を起動/停止します。http://localhost:8080/super にアクセスして、ユーザーの作成を含む初期セットアップを実行します。ウォークスルーについては、公式の設定ガイド を参照してください。完了したら、http://localhost:8080 にアクセスし、管理者以外のユーザーとしてログインします。
/etc/shinobi/conf.json の ip の下にある 127.0.0.1を置き換えます。Android and iOS apps
Shinobi Mobile Apps for both Android and iOS are available though this public test.
Tips and tricks
Delay between camera video and Shinobi
Some level of a lag or delay between the camera and the Shinobi dashboard is normal and dependent on stream type and video settings. See upstream documentation for some tips on minimizing the delay.
Motion/object detection natively in Shinobi
Shinobi can monitor a video feed and only record if motion is detected. Full frame or trigger areas are natively supported. See the setting-up-motion-detection article of upstream's documentation.
Motion/object detection from within the camera
Some camera manufactures offer native motion/object detection within the firmware of the camera itself. Shinobi can accept external event to trigger a record when motion is detected by the camera and these events are communicated by either SMTP or FTP.
Since our package is not running node as root, it cannot use the native ports for these services (25 for STMP and 21 for FTP).
It is recommended to simply select a port above 1,000 for these services on Shinobi and within the camera.
If using the native ports is a hard requirement, use a drop-in snippet for shinobi-camera.service:
[Service] AmbientCapabilities=CAP_NET_BIND_SERVICE
Resources
- Shinobi docs - Official docs and guides.
- iSpy camera database - Large database of URLs for various cameras.
- Shinobi camera database - Searchable database of supported cameras including things such as protocols, URLs for streams, and other technical specs.
- Home assistant camera database - Another resource for finding URLs for streams.