EPGStationのインストール

 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、PythonGCC、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"