Intel NUCで録画鯖を構築したときの手順です。

Minakurun+EPGStation(+MySQL)でDockerは利用しません。

このPCにはPCIeが無くUSB接続である必要があるため安定性の高いと言われるPT3やDD Max M4は使えませんが、小さく省電力なのでサーバー用に購入しました。

PX-Q1UDは中身はPX-S1UD*4なので今の価格であれば2ch以上同時に録画/視聴予定があるのであればPX-Q1UDの方が安くなります。(安定性はS1UDの方が上に感じました、どちらも使用していると多少発熱します)

2021/05/08 追記

PX-Q1UDの方が本体が大型のため、ヒートシンク等を貼り付けての冷却が行いやすいように思います。

また、PX-Q1Udは価格が時期によって1万円~1万5千円程度で変動しているようなので、タイミングによってはPX-S1UDとの境が3chになる場合があります。

必要なもの

1.PX-S1UDもしくはPX-Q1UD

2.Ubuntu 20.04をインストールしたPC

3.B-CASの読めるLinux対応のカードリーダー(接触型でマイナンバーカード対応であればB-CASカードも読める可能性が高いです。また、Linux非対応と書かれていても普通に認識するものも多いです)

4.その他接続に必要なアンテナケーブル等

前提

環境に合わせて読み替えてください

操作するアカウントはrootアカウントではなく、sudoが使用可能なもの

チューナー、カードリーダー等は接続済み

EPGStationのインストール先は~/programs/EPGStation/

~/programsフォルダーが存在する(mkdir ~/programsで作成)

ffmpeg,ffprobeのインストール先は/usr/bin/ffmpeg /usr/bin/ffprobeとします。(which ffmpegでインストール先の確認を行えます)

サーバーのIPアドレスは192.168.100.10とし、ファイアウォール等で使用するポートが閉じられていない

DBのポートはデフォルト、DB名、ユーザー名はepgstation、パスワードはpass(適当にランダムな文字列にでも置き換えてください)

依存関係のインストール

EPGStationの要求するnodejsのバージョンは^14.6.0(14.6.0<=,<15.0.0)、Mirakurunの要求するnodejsのバージョンは^10.15.0 < 11 || ^12 || ^14なのでnodejsは14を導入します。

また、ffmpegのビルドは行わないため、必要とするライブラリ等あれば以下のインストールからffmpegを削除し、ビルドを行ってください。

#nodejsのインストール
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt get -y nodejs
#その他のインストール
sudo apt install -y ffmpeg pcscd libpcsclite-dev libccid libdvbv5-dev pcsc-tools cmake g++ autoconf automake dvb-tools mariadb-server build-essential git 

‌B-CASの確認

pscs_scan

Japanese Chijou Digital B-CAS Card (pay TV)と表示されれば問題ありません、Ctr+Cで終了してください。

Mirakurunのインストール

sudo npm install pm2 -g
sudo npm install mirakurun -g --unsafe-perm --production
sudo npm install arib-b25-stream-test -g --unsafe-perm
sudo rm /usr/local/etc/mirakurun/tuners.yml
sudo mirakurun restart 

PX-S1UD/PX-Q1UDはLinuxの標準ドライバで動作するため、Mirakurunが自動でチューナーの認識を行ってくれます。

この時点でブラウザから192.168.100.10:40772へアクセスすればMirakurunのUIが表示され、チューナーも認識していることが確認できるはずです。(adapter0等の表記になるかと思います、configタブのtunnerから名前の変更が可能ですが複数のチューナーを接続していた場合入れ替わることがあります。)

EPGStationのインストール

cd ~/programs
git clone https://github.com/l3tnun/EPGStation.git
cd EPGStation
#ビルド
npm run all-install
npm run build
#コンフィグのコピー
cp config/config.sample.yml config/config.yml
cp config/operatorLogConfig.sample.yml config/operatorLogConfig.yml
cp config/epgUpdaterLogConfig.sample.yml config/epgUpdaterLogConfig.yml
cp config/serviceLogConfig.sample.yml config/serviceLogConfig.yml 

設定

MariaDBの設定を行います

すでにインストールされていて、設定も済ませている場合は飛ばしてください

sudo mysql_secure_installation
#Enter current password for root (enter for none):と表示されるのでEnter
#Set root password? [Y/n]と聞かれたらNと入力してEnter
#これ以降は各質問に対してそれぞれYと入力してEnter

sudo mariadbでmariadbに接続

create database epgstation;
grant all on epgstation.* to epgstation@localhost identified by 'pass';
\q

次にEGPStationの設定を行います

vim config/config.yml等で編集してください

SQLiteではなくMariaDBを利用するため以下の項目をコメントアウトするか削除してください

dbtype: sqlite
 sqlite:
   extensions:
     - '/hoge/regexp.dylib'
   regexp: true

MariaDBに接続するために以下の用に入力するか、コメントアウトを外して編集してください

dbtype: mysql
mysql:
    host: localhost
    port: 3306
    user: epgstation
    password: pass
    database: epgstation

EPGStationの起動を行います

sudo pm2 startup
pm2 start dist/index.js --name "epgstation"
pm2 save

ここまでの設定が正常に行えていれば、ブラウザから192.168.100.10:8888へ接続することでEPGStationが利用可能になるはずです