EPGStationと、EPGStationの動作の前提となるMirakurunをインストールする。Mirakurunのチューナー設定やチャンネル設定は後から別途行う必要がある。
Node.jsのインストール
EPGStationおよびEPGStationの動作に必要なMirakurunは、いずれもNode.jsのバージョン8もしくは10が動作に必要となるが、Node.js公式パッケージはバージョン10で32ビット(i386)の提供を止めているので、バージョン8をインストールする。
Node.js公式サイトの手順に従い、curlコマンドでNode.js公式のNodeSourceリポジトリを追加する。予め、cURLはインストールしておく。
sudo apt-get install -y curl curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Node.js公式サイトの手順でnodejsをインストールすると、Debian標準リポジトリにあるNode.jsバージョン10がインストールされてしまうので、バージョン名にnodesourceを含むものを調べて、これをインストールする。
VERSION=`sudo apt-cache show nodejs | sed -n -e 's/^Version: \(.*nodesource.*\)/\1/p'` sudo apt-get install -y nodejs=$VERSION
EPGStationのインストール
EPGStationのインストールおよび動作に必須となるGit、Python、GCC、G++、Makeをインストールした後、EPGStationをインストールする。
sudo apt-get install -y git python gcc g++ make git clone https://github.com/l3tnun/EPGStation.git cd EPGStation npm install npm run build
npm installで「found 1 high severity vulnerability」等と表示された場合はメッセージに従って「npm audit」で脆弱性のあるパッケージと新しいパッケージのインストール方法を確認する。
例えば、npm auditで「# Run npm install mithril@2.0.4 to resolve 1 vulnerability」と表示された場合は「npm install mithril@2.0.4」で新しいパッケージをインストールした後、再度「npm audit」で「found 0 vulnerabilities」のように脆弱性が無くなったことを確認する。これらはnpm buildの前に行うとEPGStationのWebUIが正しく動作しなくなる模様。
npm audit npm install mithril@2.0.4 npm audit
EPGStationの設定をサンプルを元に作成する。
cp config/config.sample.json config/config.json cp config/operatorLogConfig.sample.json config/operatorLogConfig.json cp config/serviceLogConfig.sample.json config/serviceLogConfig.json
EPGStationを起動する。
npm start
「[INFO] system - wait mirakurun」が延々と表示されるので、Ctrl+\で終了させる。
Mirakurunのインストール
Mirakurunの動作に必要なPM2をインストールした後、Mirakurunをインストールする。
sudo npm install pm2 -g sudo npm install mirakurun -g --unsafe --production
EPGStationの動作確認
EPGStationを再度起動する。
npm start
「[INFO] system - done updateAll」が出たら、Webブラウザで http://xxxxxxxx:8888 (xxxxxxxxはホスト名またはIPアドレス)を開き、EPGStationが動作していることが確認できたら、Ctrl+\で終了させる。
EPGStationの自動起動設定
現在のユーザ(下記のxxxxxxxxの部分にユーザ名を入れる)でPM2が自動起動するように設定した後、PM2でEPGStationを起動して、EPGStationが自動起動するように現在の状態を保存する。
sudo pm2 startup -u xxxxxxxx --hp ~xxxxxxxx pm2 start dist/server/index.js --name "epgstation" pm2 save
EPGStationのアンインストール
PM2に登録されているEPGStationを削除して、PM2の現在の状態を保存、PM2を停止、現在のユーザ(xxxxxxxxをユーザ名に置き換える)でのPM2の自動起動を停止、無効化、設定を削除、PM2の設定保存ディレクトリを削除する。
pm2 delete epgstation pm2 save pm2 kill sudo systemctl stop pm2-xxxxxxxx sudo systemctl disable pm2-xxxxxxxx sudo rm -f /etc/systemd/system/pm2-xxxxxxxx.service rm -rf ~/.pm2
EPGStationのディレクトリと、Node.js関連ディレクトリやファイルを削除する。
rm -rf ~/EPGStation rm -rf ~/.node-gyp rm -rf ~/.npm rm -rf ~/.config rm -f ~/.v8flags.*
Mirakurunのアンインストール
Mirakurunのアンインストールと、Mirakurunの設定、データベース、ログの削除を行う。
sudo npm uninstall mirakurun -g --unsafe sudo rm -rf /usr/local/etc/mirakurun sudo rm -rf /usr/local/var/db/mirakurun sudo rm -f /usr/local/var/log/mirakurun.std*.log
PM2のアンインストール
PM2のアンインストールと、スーパーユーザのPM2自動起動設定の停止、無効化、設定の削除、PM2の設定保存ディレクトリの削除を行う。
sudo npm uninstall pm2 -g sudo systemctl stop pm2-root sudo systemctl disable pm2-root sudo rm -f /etc/systemd/system/pm2-root.service sudo rm -rf ~root/.pm2
Node.jsのアンインストール
npmの設定保存ディレクトリの削除と、Node.jsのアンインストール、関連パッケージのアンインストール、関連ディレクトリの削除を行う。
sudo rm -rf ~root/.npm sudo rm -rf ~root/.config sudo rm -f ~root/.v8flags.* sudo apt-get remove --purge -y nodejs sudo apt-get autoremove -y sudo rm -rf /usr/lib/node_modules
NodeSourceリポジトリの設定削除、apt-key listで取得したキーの一覧からNodeSourceのキーだけを抽出、キーの削除を行う。
sudo rm -f /etc/apt/sources.list.d/nodesource.list KEY=`sudo apt-key list | sed -n -e '/^pub/{N;s/.*\n *//;h};/^uid.*NodeSource/{g;p}'` sudo apt-key del "$KEY"