参考は公式HPから。
GitHub – l3tnun/docker-mirakurun-epgstation: Mirakurun + EPGStation on Docker
あいかわらず、スクリプトモドキを貼り付けて、注意点は以下へ。
mkdir -p ~/docker & cd $_
git clone https://github.com/l3tnun/docker-mirakurun-epgstation.git
cd docker-mirakurun-epgstation
#以下のファイルのコピーはバインドボリュームの場所に変更しています./var/docker
PUID=`id -u`
PGID=`id -g`
#cp docker-compose-sample.yml docker-compose.yml
sudo cp epgstation/config/enc.js.template /var/docker/epgstation/config/enc.js
sudo cp epgstation/config/config.yml.template /var/docker/epgstation/config/config.yml
sudo cp epgstation/config/operatorLogConfig.sample.yml /var/docker/epgstation/config/operatorLogConfig.yml
sudo cp epgstation/config/epgUpdaterLogConfig.sample.yml /var/docker/epgstation/config/epgUpdaterLogConfig.yml
sudo cp epgstation/config/serviceLogConfig.sample.yml /var/docker/epgstation/config/serviceLogConfig.yml
#docker-compose run --rm -e SETUP=true mirakurun
#defaultのdocker-compose.ymlを保存.
#mv docker-compose.yml docker-compose.yml.ori
cat << EOF > docker-compose.yml
version: '3.7'
services:
mirakurun:
image: chinachu/mirakurun
cap_add:
- SYS_ADMIN
- SYS_NICE
ports:
- "40772:40772"
- "9229:9229"
networks:
openvpn-network:
ipv4_address: 172.20.0.3
aliases:
- mirakurun.example.com
volumes:
- /var/docker/mirakurun/conf:/app-config
- /var/docker/mirakurun/data:/app-data
environment:
- TZ="Asia/Tokyo"
devices:
- /dev/bus:/dev/bus
- /dev/dvb:/dev/dvb
restart: always
logging:
driver: json-file
options:
max-file: "1"
max-size: 10m
mysql:
image: mariadb:10.5
# image: mysql:8.0 # 囲み文字を使用する場合
networks:
openvpn-network:
ipv4_address: 172.20.0.4
aliases:
- mirakurun.mysql.example.com
volumes:
- /var/docker/mirakurun/mira_sql:/var/lib/mysql
environment:
MYSQL_USER: epgstation
MYSQL_PASSWORD: epgstation
MYSQL_ROOT_PASSWORD: epgstation
MYSQL_DATABASE: epgstation
TZ: "Asia/Tokyo"
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --performance-schema=false --expire_logs_days=1 # for mariadb
# command: --character-set-server=utf8mb4 --collation-server=utf8mb4_0900_as_ci --performance-schema=false --expire_logs_days=1 --default-authentication-plugin=mysql_native_password # for myql
restart: always
logging:
options:
max-size: "10m"
max-file: "3"
epgstation:
build:
context: "./epgstation"
dockerfile: "debian.Dockerfile"
networks:
openvpn-network:
ipv4_address: 172.20.0.5
aliases:
- epgstation.example.com
volumes:
- /var/docker/epgstation/config:/app/config
- /var/docker/epgstation/data:/app/data
- /var/docker/epgstation/thumbnail:/app/thumbnail
- /var/docker/epgstation/logs:/app/logs
- /var/recorded:/app/recorded #ここだけちょいとディレクトリが違うのは,別のHDDをマウントしたいから.
environment:
- TZ="Asia/Tokyo"
depends_on:
- mirakurun
- mysql
ports:
- "8888:8888"
- "8889:8889"
user: "1000:1000"
devices:
- /dev/dri:/dev/dri
restart: always
networks:
openvpn-network:
external: true
EOF
docker-compose build --no-cache
docker-compose run --rm -e SETUP=true mirakurun
docker-compose up -d
#チャンネルスキャン
#curl -X PUT "http://localhost:40772/api/config/channels/scan?type=GR&setDisabledOnAdd=false&refresh=true" &&
curl -X PUT "http://localhost:40772/api/config/channels/scan?type=BS&setDisabledOnAdd=false&refresh=true" &&
curl -X PUT "http://localhost:40772/api/config/channels/scan?type=CS&setDisabledOnAdd=false&refresh=true"
#config.ymlのrecordedFileExtensionをm2tsからtsに変更すれば拡張子が変わる?
注意点は、
- ユーザーIDとグループIDを取得してその数字でコンテナを動かすようにしているが、これで正しいのか不明。
- バインドマウントの先が公式とは違うので、準備されたshは利用できないため、内容をチマチマと変更して実行する。
- IPアドレスを指定してるのは、openvpnを通して繋ぐため、固定にしていたほうが接続しやすい。かも。
- 8888番ポートを使ってepgstationに入るが、このポートをルーターで公開すると、全世界に制限なしに公開してしまうので、ルーターで8888番を切っておかないと捕まってしまいます。
- さいごに記載しているcurlはチャンネル更新。かなり時間がかかります。地上波、BS、CSと繋いでるので、必要な部分だけやって下さい。
- docker-compose upする前に、recordedFileExtension(つまり録画ファイルの拡張子)をTSに変更しておく。必要ない人はm2tsで録画される。