音楽ストリーミングサーバを構築する
僕の音楽ライブラリをいつでも引き出せるように、
サーバ上で管理するための記録。
SSLが安心するので、無料の Let's Encrypt で証明書つくる。
- さくらのVPS (1G SSD:30GB)を利用
CentOS Linux release 7.2.1511 (Core)
Server version: Apache/2.4.6 (CentOS)
事前に git wget を入れておく# yum install git wget
SELinuxはdisabledにする。 (面倒だから。。。
サブドメイン「hoge.hogehoge.hoge」を例にしています(ホゲホゲ
SuperSonicをインストール
リポジトリを追加
# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
こちらも追加
# yum install http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
必要なライブラリ群を追加
# yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel # yum install ffmpeg flac faad2 lame vorbis-tools rpmlint # yum install rpm-build
SuperSonicを取得
# mkdir /usr/local/src/supersonic # cd /usr/local/src/supersonic # git clone https://github.com/Mach5/supersonic.git
# cd /usr/local/src/supersonic # wget http://ftp.jaist.ac.jp/pub/apache/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz # tar zxvf apache-maven-3.3.3-bin.tar.gz
デプロイ(割と待つ)
# cd supersonic # export PATH=$PATH:/usr/local/src/supersonic/apache-maven-3.3.3/bin # mvn -P full -pl subsonic-booter -am install # mvn -P full -pl subsonic-main -am install # mvn -P full -pl subsonic-installer-rpm -am install
インストールと自動起動設定
# cd subsonic-installer-rpm/target # rpm -ivh supersonic-4.7.beta1.rpm #インストール # /sbin/chkconfig supersonic on #自動起動設定
http://mydomain:4040 でアクセス。 ※ 4040ポートを開けないとだめ 今回はSSL接続にしたいのでポート開放は割愛。
Let's Encrypt を導入するぞ
Let’s Encrypt のクライアントは GitHub で公開されている。 事前に openssl, mod_ssl をいれておく。
# yum install openssl mod_ssl
Let’s EncryptをGitHubから取得。今回はこの場所におく
# cd /usr/local/ # git clone https://github.com/letsencrypt/letsencrypt #/user/local/letsencrypt ができる
Let’s Encrypt のパッケージをインストール
# cd letsencrypt # ./letsencrypt-auto --help
証明書発行
# ./letsencrypt-auto certonly \ --standalone -d {証明書を発行したいURL hoge.hogehoge.hoge} \ -m {hoge@hogehoge.hoge}
# firewall-cmd --permanent --add-port 443/tcp (# firewall-cmd --permanent --add-service=https) #こちらでも良い # firewall-cmd --reload # systemctl restart firewalld.service # 再起動 # firewall-cmd --list-all # firewallの状態を確認
ssl.confまたは、VirtualHost用のconfファイルがあればそちらにSSL証明書の設定をする
<VirtualHost *:443> ServerName hoge.hogehoge.hoge SSLEngine on SSLProxyEngine on ProxyPass / http://{YourServerName}:4040/ retry=0 timeout=5 ProxyPassReverse / http://{YourServerName}:4040/ SSLCertificateFile /etc/letsencrypt/live/hoge.hogehoge.hoge/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/hoge.hogehoge.hoge/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/hoge.hogehoge.hoge/chain.pem ErrorLog /var/log/sslvirtual_error_log_supersonic CustomLog /var/log/sslvirtual_access_log_supersonic combined env=!no_log </VirtualHost>
Let's Encryptは90日しか持たない&Port80をListenしている場合、Apache停止が必要なので、 一連の作業をcron設定し、サーバリロードする。
00 05 01 * * /bin/systemctl stop httpd && /usr/local/letsencrypt/letsencrypt-auto certonly --standalone -d {証明書を発行したいURL hoge.hogehoge.hoge} -m {hoge@hogehoge.hoge} && /bin/systemctl start httpd
これで快適なミュージックライフを送れる気がする
参考サイト
この作業を行う上で、超参考になりました。感謝