目次だよ!
タイトル通りです。忘れても良いように、メモとして残すだけなので、正確じゃ無いと思いますが、気にしないように。ココの内容を再利用する方は自己責任でお願いします。私は責任取りませんので悪しからず。
以下のソースコード中に出てくる「&」が「&
」に置き換わってしまっているので、コピペするときは十分注意すること。
viでの痴漢コマンドは、
%s/&/&/g
でよかったはず・・・たぶん。バックスラッシュ必要だったっけな・・・・(汗
日本語環境 と日本時間
#!/bin/bash
sudo dpkg-reconfigure tzdata
sudo apt install -y language-pack-ja-base language-pack-ja ibus-mozc
sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
#ヒアドキュメントって言うらしい
sudo bash -c "cat <<EOF >> .bashrc
case $TERM in
linux) LANG=C ;;
*) LANG=ja_JP.UTF-8;;
esac
EOF"
sudo apt install -y manpages-ja manpages-ja-dev
上記の後、再起動か再ログインで有効になる。はず。
時刻同期
ubuntu18時刻同期はnptではなくsystemdなので、現状確認
sudo systemctl -l status systemd-timesyncd
同期先サーバを変更したい場合は、/etc/systemd/timesyncd.conf 設定ファイルの下記行を変更する。
NTP=ntp.nict.jp
再起動
sudo systemctl restart systemd-timesyncd.service
LAMP一括インスト
参考:Ubuntu 18.04にLAMP環境をインストールする。 – Qiita
#!/bin/bash
sudo apt install -y tasksel
sudo tasksel install lamp-server
#Ver確認
apachectl -v
mysql --version
php --version
#bashの途中で、中断するか選択する。
read -p "ok? (y/N): " yn
case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac
sudo service apache2 start
cd /var/www/html
sudo bash -c "cat <<EOF > index.php
<?php
phpinfo();
?>
EOF"
#PHPファイルにアクセスして確認ができたらOK.
mysqlデータベース作成
参考:【Ubuntu 18.04 LTS Server】MySQLサーバを動かす | The modern stone age.
MySQLでシェル(bash/sh)からSQLを実行する方法 – それマグで!
ココで、以下のDBを作った。
- wordpress
- tt-rss
- EPGStation
mysqlの初期セキュリティ設定
sudo mysql_secure_installation
以下質問にyesで答えていけば、問題なし。rootパスワードもココで設定するが、通常はシステムのrootユーザーでログインすることになる。つまりパスワードもシステムのパスワード。
sudo mysql -u root -p
EPGStationを使うなら、ログが大量に出るらしいので、ログの保持期間を減らすため、以下に変更。
SET GLOBAL expire_logs_days = 1;
以下の操作で、DBとユーザーを作る。ポリシー違反と言われたら、 set global validate_password_policy = “LOW”; を実行すればいいはず。
CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
GRANT ALL PRIVILEGES ON データベース名.* TO 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
CREATE DATABASE データベース名 CHARACTER SET utf8;
FLUSH PRIVILEGES;
tt-rssのインスト
参考:TinyTiny RSSをインストール | goozenlab
Tiny Tiny RSS Install on Ubuntu 18.04 LTS – ShaneTriplett.com
Ubuntu 18.04: ウェブベースRSSリーダのTiny Tiny RSSをインストールする – Narrow Escape
#!/bin/bashcd
/var/www
sudo git clone https://tt-rss.org/git/tt-rss.git tt-rss
sudo chown -R www-data:www-data tt-rss/
sudo apt install -y php-mbstring php-fdomdocument php-intl php-curl
sudo systemctl restart apache2
cd tt-rss/
sudo chmod -R 777 cache/images
sudo chmod -R 777 cache/upload
sudo chmod -R 777 cache/export
sudo chmod -R 777 feed-icons
sudo chmod -R 777 lock
#cron.d辺りに実行スクリプトを組んでおく。
#書き込みエラーなんかを回避するには。
sudo bash -c "cat <<EOF > /etc/cron.d/ttrss
#書き込む内容
*/30 * * * * www-data /usr/bin/php /var/www/tt-rss/updata.php --feeds --quiet > dev/null 2>&1
EOF"
#データベースの初期テーブル作成
mysql DB_NAME -u DB_USER_NAME -p < schema/ttrss_schema_mysql.sql
ttrssの初回起動時の設定。
データベースの初期入力が終わったら、データベースを初期化しますと書いてあるので、それをクリック(英文で:Before you can start using tt-rss, database needs to be initialized. Click on the button below to do that now.と書いてある)
その下に出てくる、textボックスの長いPHP設定をコピーして、/var/www/html/tt-rss/config.php(最初は存在しない)に書き込む。
パーミッションを正確に設定していれば、textボックスの下にあるボタンをクリックするだけで、ファイルが生成されるはず。
初期のログインはUsername:admin Password:password で入れる。
データの移行
設定画面のフィードに移動し、OPMLエクスポートをする。
WordPressインスト
参照:Ubuntu18.04 WordPress + apache2.4 + php7.3 + mysql5.7 – golangの日記
#!/bin/bash
cd /var/www
curl -sSO https://ja.wordpress.org/latest-ja.tar.gz
tar xvf latest-ja.tar.gz
rm latest-ja.tar.gz
sudo chown -R www-data:www-data /var/www/wordpress/
cd wordpress
#***設定を編集***
#秘密キーの取得~書き込み。
tmpdata=`curl https://api.wordpress.org/secret-key/1.1/salt/`
AUTH_KEY=`echo $tmpdata | sed -r "s/.*'AUTH_KEY', '([^']+)'.*$/\1/"`
AUTH_KEY=$(echo $AUTH_KEY | sed -e 's/\&/\\&/g' | sed -e 's/\//\\\//g')
SECURE_AUTH_KEY=`echo $tmpdata | sed -r "s/.*'SECURE_AUTH_KEY', '([^']+)'.*$/\1/"`
SECURE_AUTH_KEY=$(echo $SECURE_AUTH_KEY | sed -e 's/\&/\\&/g' | sed -e 's/\//\\\//g')
LOGGED_IN_KEY=`echo $tmpdata | sed -r "s/.*'LOGGED_IN_KEY', '([^']+)'.*$/\1/"`
LOGGED_IN_KEY=$(echo $LOGGED_IN_KEY | sed -e 's/\&/\\&/g' | sed -e 's/\//\\\//g')
AUTH_KEY=`echo $tmpdata | sed -r "s/.*'AUTH_KEY', '([^']+)'.*$/\1/"`
AUTH_KEY=$(echo $AUTH_KEY | sed -e 's/\&/\\&/g' | sed -e 's/\//\\\//g')
SECURE_AUTH_KEY=`echo $tmpdata | sed -r "s/.*'SECURE_AUTH_KEY', '([^']+)'.*$/\1/"`
SECURE_AUTH_KEY=$(echo $SECURE_AUTH_KEY | sed -e 's/\&/\\&/g' | sed -e 's/\//\\\//g')
LOGGED_IN_KEY=`echo $tmpdata | sed -r "s/.*'LOGGED_IN_KEY', '([^']+)'.*$/\1/"`
LOGGED_IN_KEY=$(echo $LOGGED_IN_KEY | sed -e 's/\&/\\&/g' | sed -e 's/\//\\\//g')
NONCE_KEY=`echo $tmpdata | sed -r "s/.*'NONCE_KEY', '([^']+)'.*$/\1/"`
NONCE_KEY=$(echo $NONCE_KEY | sed -e 's/\&/\\&/g' | sed -e 's/\//\\\//g')
AUTH_SALT=`echo $tmpdata | sed -r "s/.*'AUTH_SALT', '([^']+)'.*$/\1/"`
AUTH_SALT=$(echo $AUTH_SALT | sed -e 's/\&/\\&/g' | sed -e 's/\//\\\//g')
SECURE_AUTH_SALT=`echo $tmpdata | sed -r "s/.*'SECURE_AUTH_SALT', '([^']+)'.*$/\1/"`
SECURE_AUTH_SALT=$(echo $SECURE_AUTH_SALT | sed -e 's/\&/\\&/g' | sed -e 's/\//\\\//g')
LOGGED_IN_SALT=`echo $tmpdata | sed -r "s/.*'LOGGED_IN_SALT', '([^']+)'.*$/\1/"`
LOGGED_IN_SALT=$(echo $LOGGED_IN_SALT | sed -e 's/\&/\\&/g' | sed -e 's/\//\\\//g')
NONCE_SALT=`echo $tmpdata | sed -r "s/.*'NONCE_SALT', '([^']+)'.*$/\1/"`
NONCE_SALT=$(echo $NONCE_SALT | sed -e 's/\&/\\&/g' | sed -e 's/\//\\\//g')
cat wp-config-sample.php | \
sed -e "s/database_name_here/wordpress/" | \
sed -e "s/username_here/wpuser/" | \
sed -e "s/password_here/wpuser123/" | \
sed -r "s/([^']+'AUTH_KEY'[^']*')(put your unique phrase here)/\1$AUTH_KEY/" | \
sed -r "s/([^']+'SECURE_AUTH_KEY'[^']*')(put your unique phrase here)/\1$SECURE_AUTH_KEY/" | \
sed -r "s/([^']+'LOGGED_IN_KEY'[^']*')(put your unique phrase here)/\1$LOGGED_IN_KEY/" | \
sed -r "s/([^']+'NONCE_KEY'[^']*')(put your unique phrase here)/\1$NONCE_KEY/" | \
sed -r "s/([^']+'AUTH_SALT'[^']*')(put your unique phrase here)/\1$AUTH_SALT/" | \
sed -r "s/([^']+'SECURE_AUTH_SALT'[^']*')(put your unique phrase here)/\1$SECURE_AUTH_SALT/" | \
sed -r "s/([^']+'LOGGED_IN_SALT'[^']*')(put your unique phrase here)/\1$LOGGED_IN_SALT/" | \
sed -r "s/([^']+'NONCE_SALT'[^']*')(put your unique phrase here)/\1$NONCE_SALT/" \
> wp-config.php
#apache2の設定。
#ヒアドキュメントって言うらしい
sudo bash -c "cat <<EOF >> /etc/apache2/sites-available/010main.conf
<VirtualHost 鯖IP:80>
ServerAdmin webmaster@localhost
ServerName ドメイン名
DocumentRoot /var/www/wordpress
ErrorLog /var/log/apache2/適当な名前.error.log
LogLevel warn
CustomLog /var/log/apache2/適当な名前.access.log combined
#EPGStation用、フォルダでアクセスできるようにconfig.jsonを変更する必要があるよ。
<Location /epg/>
AuthType Basic
AuthName "Login"
AuthUserFile /usr/share/apache2/passwd
require valid-user
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
#EPGStation用のproxy
ProxyPass http://localhost:8888/epg/
ProxyPassReverse http://localhost:8888/epg/
</Location>
#syncthingのアクセス用。
<Location /syncthing/>
# SetEnv force-proxy-request-1.0 1
# SetEnv proxy-nokeepalive 1
# #EPGStation用のproxy
ProxyPass http://localhost:8384/
ProxyPassReverse http://localhost:8384/
</Location>
#tt-rss用
Alias /tt-rss /var/www/tt-rss
<Directory /var/www/tt-rss>
AuthType Basic
AuthName "Login"
AuthUserFile /usr/share/apache2/passwd
require valid-user
</Directory>
#pukiwiki用
Alias /pukiwiki /var/www/pukiwiki
<Directory /var/www/pukiwiki>
AuthType Basic
AuthName "Basic Authentication"
AuthUserFile /usr/share/apache2/passwd
require valid-user
</Directory>
</VirtualHost>
EOF"
sudo a2ensite 010main.conf
sudo service apache2 reload
BASIC認証については都度調べるように。
いろいろ一緒くたに書いたが、viで編集するとするとこうなる。
vi wp-config.php
#以下の行を変更
define('DB_NAME', 'wordpress'); // 作成したデータベース名
define('DB_USER', 'wpuser'); // 作成したユーザー名
define('DB_PASSWORD', 'wpuser123'); // 作成したユーザーのパスワード
#設定ファイルwp-config.phpにあるhttps://api.wordpress.org/secret-key/1.1/salt/にアクセスし、一意の認証キーを取得し、defineを書き換える。
sudo vi /etc/apache2/sites-available/010main.conf(新規作成)
#上記のVirtualhostの間を全部書く。
という感じ。
Syncthingのインストール
参考:完全無料で安全なファイル同期ソフト「Syncthing」 | LFI
How to Install and use Syncthing on Ubuntu 18.04 – Computing for Geeks
#!/bin/bash
#Syncthingのインストール
sudo curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
sudo echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt update
sudo apt -y install syncthing
#自動起動
sudo cp /lib/systemd/system/syncthing@.service /etc/systemd/system/syncthing@ユーザー名.service || sudo cp /etc/systemd/system/syncthing@.service /etc/systemd/system/syncthing@ユーザー名.service
sudo systemctl restart syncthing@ユーザー名.service
sudo systemctl enable syncthing@ユーザー名.service
#Ver確認
syncthing --version
#bashの途中で、中断するか選択する。
read -p "syncthing Ver check OK? (y/N):" yn
case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac
#通信port解放
sudo ufw allow syncthing
#設定画面をネットワーク上から参照できるように変更
cp ~/.config/syncthing/config.xml ~/.config/syncthing/config.xml.org
cat ~/.config/syncthing/config.xml.org |
sed -e "s/<address>127.0.0.1:8384<\/address>/<address>0.0.0.0:8384<\/address>/" \
> ~/.config/syncthing/config.xml
EVENCのインスト
参考:ffmpeg に nvenc(cuda)をインストールする | ニコラボ
NVENCを使ったHWEncode環境 – Qiita
ffmpegでNVENCを使ってエンコードしてみる
#!/bin/bash
#EVENCのインスト
# Kernel Headerを入れる
sudo apt install -y linux-headers-$(uname -r)
# aptプライオリティpinファイルをDL
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
# aptプライオリティpinファイルをaptのフォルダに移動
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
# GPGキーをインポート
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
リポジトリを登録
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
# リポジトリ更新
sudo apt update
# CUDAインストール
sudo apt -y install cuda
# パスを通す
export PATH=/usr/local/cuda-10.2/bin:/usr/local/cuda-10.2/NsightCompute-2019.1${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
#再起動
#sudo shutdown -r now
ffmpegのインスト
今回は、ホームディレクトリ下にbinフォルダを作ってそこにffmpegをインストする。通常の場所にはパッケージでのffmpegと区別するための処置。
なので、インストの途中で、パスを通したりする作業が入る。
#!/bin/bash
#nvidia-smi にてドライバインストールも含め完了しているか確認しましょう。
nvidia-smi
#####***** *****#####
#bashの途中で、キー入力を待つ。
read -p "nvidia-smi(Enter): "
#FFmpegコンパイルに必要なものを導入
sudo apt update -qq && sudo apt -y install \
autoconf \
automake \
build-essential \
cmake \
git-core \
libass-dev \
libfreetype6-dev \
libsdl2-dev \
libssl-dev \
libtool \
libva-dev \
libvdpau-dev \
libvorbis-dev \
libxcb1-dev \
libxcb-shm0-dev \
libxcb-xfixes0-dev \
pkg-config \
texinfo \
wget \
zlib1g-dev
#作業ディレクトリ作成
mkdir -p ~/ffmpeg_sources ~/bin
#NASM インストール
cd ~/ffmpeg_sources && \
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 && \
tar xjvf nasm-2.14.02.tar.bz2 && \
cd nasm-2.14.02 && \
./autogen.sh && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
make && \
make install
#Yasm インストール
cd ~/ffmpeg_sources && \
wget -O yasm-1.3.0.tar.gz https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz && \
tar xzvf yasm-1.3.0.tar.gz && \
cd yasm-1.3.0 && \
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
make && \
make install
#libx264 インストール
sudo apt install -y libx264-dev
cd ~/ffmpeg_sources && \
git -C x264 pull 2> /dev/null || git clone --depth 1 https://code.videolan.org/videolan/x264.git && \
cd x264 && \
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic && \
PATH="$HOME/bin:$PATH" make && \
make install
#libx265 インストール
sudo apt install -y mercurial libnuma-dev && \
cd ~/ffmpeg_sources && \
if cd x265 2> /dev/null; then hg pull && hg update && cd ..; else hg clone https://bitbucket.org/multicoreware/x265; fi && \
cd x265/build/linux && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off ../../source && \
PATH="$HOME/bin:$PATH" make && \
make install
#libvpx インストール
cd ~/ffmpeg_sources && \
git -C libvpx pull 2> /dev/null || git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git && \
cd libvpx && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm && \
PATH="$HOME/bin:$PATH" make && \
make install
#libfdk-aac インストール
cd ~/ffmpeg_sources && \
git -C fdk-aac pull 2> /dev/null || git clone --depth 1 https://github.com/mstorsjo/fdk-aac && \
cd fdk-aac && \
autoreconf -fiv && \
./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
make && \
make install
#libmp3lame インストール
cd ~/ffmpeg_sources && \
wget -O lame-3.100.tar.gz https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz && \
tar xzvf lame-3.100.tar.gz && \
cd lame-3.100 && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm && \
PATH="$HOME/bin:$PATH" make && \
make install
#libopus インストール
cd ~/ffmpeg_sources && \
git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git && \
cd opus && \
./autogen.sh && \
./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
make && \
make install
#libaom インストール
cd ~/ffmpeg_sources && \
git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom && \
mkdir -p aom_build && \
cd aom_build && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off -DENABLE_NASM=on ../aom && \
PATH="$HOME/bin:$PATH" make && \
make install
#Nvidias codec API インストール
cd ~/ffmpeg_sources && \
git -C nv-codec-headers pull 2> /dev/null || git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers && \
cd nv-codec-headers && \
PATH="$HOME/bin:$PATH" make && \
make install PREFIX="$HOME/ffmpeg_build"
#FFmpeg インストール
cd ~/ffmpeg_sources && \
wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \
tar xjvf ffmpeg-snapshot.tar.bz2 && \
cd ffmpeg && \
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
--prefix="$HOME/ffmpeg_build" \
--pkg-config-flags="--static" \
--extra-cflags="-I$HOME/ffmpeg_build/include" \
--extra-ldflags="-L$HOME/ffmpeg_build/lib" \
--extra-libs="-lpthread -lm" \
--bindir="$HOME/bin" \
--enable-openssl \
--enable-gpl \
--enable-libaom \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-static \
--enable-cuda \
--enable-cuvid \
--enable-nvenc \
--enable-libnpp \
--extra-cflags=-I/usr/local/cuda/include \
--extra-ldflags=-L/usr/local/cuda/lib64 \
--enable-nonfree && \
PATH="$HOME/bin:$PATH" make && \
make install && \
hash -r
#パスを通したり
source ~/.profile
echo "MANPATH_MAP $HOME/bin $HOME/ffmpeg_build/share/man" >> ~/.manpath
sudo cp bin/* /usr/local/bin/
#sudo reboot
#動作確認は再起動した後に。
pt1のインストール
#!/bin/bash
#*****pt1のインストール*****
sudo bash -c "echo 'blacklist earth-pt3' >> /etc/modprobe.d/blacklist.conf"
sudo apt install -y dkms
cd /usr/local/src
sudo git clone https://github.com/m-tsudo/pt3 pt3-driver
cd pt3-driver
sudo chmod 755 dkms.install
sudo ./dkms.install
sudo modprobe pt3_drv
#sudo reboot
ドライバを確認出来たら次に進む。
arib25のインスト
#!/bin/bash
#ドライバがインストールされたかの確認。
ls -l /dev/pt3*
#bashの途中で、中断するか選択する。
read -p "pt3 driver check OK? (y/N):" yn
case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac
#*****カードリーダーの準備*****
#カードリーダーの準備
sudo apt install -y pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools
#確認
#pcsc_scan
#*****arib25,recpt1のインストール*****
sudo apt install -y unzip pkg-config autoconf
cd /usr/local/src
sudo wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip
sudo unzip c44e16dbb0e2.zip
cd pt1-c44e16dbb0e2/arib25
sudo make
sudo make install
sudo ldconfig
cd /usr/local/src
sudo wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2
sudo tar xf tip.tar.bz2
cd pt1-17b4f7b5dccb/recpt1
sudo sed -i 's/pt1video/pt3video/g' pt1_dev.h
sudo ./autogen.sh
sudo ./configure --enable-b25
sudo make
sudo make install
mirakurunのインスト
参考:Mirakurunのインストール手順(Ubuntu・Debian・CentOS) | 自分に負けないラボラトリー
【2019年版】ゼロから始めるlinux録画鯖の書 | Till0196のぼーびろく
Ubuntu18.04で録画サーバーを構築した | おっとあかん | Otakan Blog
#!/bin/bash
#*****mirakurunnのインスト*****
#確認作業から。
#Node.js(インスト直後状態だと入ってないかも。
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
node -v
#bashの途中で、キー入力を待つ。
read -p "nodejs ver10.xx OK? (y/N):" yn
case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac
#インストール開始
sudo npm install pm2 -g
sudo npm install mirakurun -g --unsafe --production
sudo npm install rivarun -g
sudo npm install arib-b25-stream-test -g --unsafe
#*****ログローテーション設定 毎日ログを圧縮して1週間分保存する設定*****
sudo pm2 install pm2-logrotate
sudo bash -c "cat <<EOF > /etc/logrotate.d/mirakurun
/usr/local/var/log/mirakurun.stdout.log
/usr/local/var/log/mirakurun.stderr.log
/{
daily
compress
rotate 7
missingok
notifempty
}
EOF"
#ポート開放
sudo ufw allow 40772
#sudo vi /usr/local/etc/mirakurun/tuners.yml
#true を falseに変えて有効化。
#チャンネル情報更新。
#curl -X PUT "http://localhost:40772/api/config/channels/scan"
#sudo mirakurun stop
#sudo mcconfig.pl -f #20分ほどかかります。
#sudo mirakurun start
#チャンネルの設定は以下のコマンドで書き換え可能
#sudo mirakurun config tuners
#*****ログローテーション設定 毎日ログを圧縮して1週間分保存する設定*****
sudo pm2 install pm2-logrotate
sudo bash -c "cat <<EOF > /etc/logrotate.d/mirakurun
/usr/local/var/log/mirakurun.stdout.log
/usr/local/var/log/mirakurun.stderr.log
/{
daily
compress
rotate 7
missingok
notifempty
}
EOF"
#ポート開放
sudo ufw allow 40772
#再起動時に自動開始するように
#### *****Mirakurunをアップデートする場合*****
#### sudo mirakurun stop
#### sudo npm update rivarun -g
#### sudo npm install mirakurun@latest -g --unsafe --production
#### sudo mirakurun start
tuners.ymlでチューナーをfalseにするのを忘れないように。これをfalseに変えないと動かない。
EPGStationのインスト
参考:EPGStation/linux-setup.md at master · l3tnun/EPGStation · GitHub
#####*****EPGStationのインスト*****#####
node --version
#bashの途中で、キー入力を待つ。
read -p "node --version OK? (y/N):" yn
case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac
curl -o - http://localhost:40772/api/version
#bashの途中で、キー入力を待つ。
read -p "Mirakurun version OK? (y/N):" yn
case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac
ffmpeg -version
#bashの途中で、キー入力を待つ。
read -p " ffmpeg -version OK? (y/N):" yn
case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac
python --version
#bashの途中で、キー入力を待つ。
read -p "python --version OK? (y/N):" yn
case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac
gcc --version
#bashの途中で、キー入力を待つ。
read -p "gcc --version OK? (y/N):" yn
case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac
cd ~
sudo apt install -y node-gyp
git clone https://github.com/l3tnun/EPGStation.git
cd EPGStation
npm install
npm run build
#sudo chown -R hiyori:hiyori 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
npm install pm2 -g
sudo pm2 starup tvrec
sudo pm2 start dist/server/index.js --name "epgstation"
sudo pm2 save
sudo ufw allow 8888
#config.jsonに以下を追加、訂正
# "subDirectory": "subdir"
# "dbType": "mysql",
# "streamFilePath": "/tmp",
# "recorded": "/var/www/video",
# "mysql": {
# "host": "localhost",
# "port": 3306,
# "user": "mysqlのユーザー名",
# "password": "ぱすわーど",
# "database": "データベース名",
# "connectTimeout": 20000,
# "connectionLimit": 10
# },
fail2banインスト
参考:Fail2Banでアクセス制限 – Koji Noshita
#****fail2banインスト*****
sudo apt install -y fail2ban
fail2banはapache2の不正アクセス対策。
plexのインスト
参考:Fail2Banでアクセス制限 – Koji Noshita
Plex Media Serverをサブドメインで運用&SSL通信化する | web net FORCE
#!/bin/bash
sudo apt update
sudo apt upgrade
sudo apt install curl -y
sudo curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -
echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
sudo apt update -y
sudo apt upgrade -y
sudo atp install apt-transport-https
sudo apt install plexmediaserver
#ufwポート制限用のapplication設定ファイルを作る
#書き込みエラーなんかを回避するには。
#書き込む内容(シングルクオーテーションをエスケープすること)
sudo bash -c 'cat <<'EOF' > /etc/ufw/applications.d/test
[plexmediaserver]
title=Plex Media Server (Standard)
description=The Plex Media Server
ports=32400/tcp|3005/tcp|5353/udp|8324/tcp|32410:32414/udp
[plexmediaserver-dlna]
title=Plex Media Server (DLNA)
description=The Plex Media Server (additional DLNA capability only)
ports=1900/udp|32469/tcp
[plexmediaserver-all]
title=Plex Media Server (Standard + DLNA)
description=The Plex Media Server (with additional DLNA capability)
ports=32400/tcp|3005/tcp|5353/udp|8324/tcp|32410:32414/udp|1900/udp|32469/tcp
'EOF''
#有効化
sudo ufw allow plexmediaserver-all
#確認
sudo ufw status verbose
sudo mkdir -p /opt/plexmedia/{movies,series}
sudo chown -R plex: /opt/plexmedia
#サーバーの設定はweb上でするので、URLに192.168.x.xxx:32400/web/index.html#!/setup
#を入力し、設定を行う。