ということで、ラズパイ4でradcastサーバを構築しましょ。
OSの準備はRaspberry Pi Imagerにお任せ。
OSを選んで、、、
-> [Other general-purpose OS] -> [Ubuntu] -> [Ubuntu Server 22.04 LTS](64-bit)
ストレージを選んで、、、
細かい設定をしましょう。
ホスト名を適当に設定設定が完了したら、書き込むボタンで、いざ!書き込み!!
SSHを有効化して、パスワード認証を使う
ユーザー名とパスワードを設定(以降、「作業ユーザ」と表記)
#radcastというシステムユーザーを作ってradcastを起動させるため、
#radcast以外のユーザー名を設定する
ロケールもついでに設定
書き込みが完了したら、固定IPアドレスを設定
system-boot パーティションの network-config を編集
メディアをラズパイにつないで電源オン!ethernets: eth0: addresses: - 192.168.1.81/24 gateway4: 192.168.1.1 nameservers: addresses: [192.168.1.1] optional: true
数分後に母艦からSSHでつないでみる。
$ ssh 作成ユーザ@192.168.1.81
お約束その他
$ sudo apt update
$ sudo apt -y upgrade
$ sudo update-alternatives --config editor
→ vim.basic を選択
システムユーザの追加 radcast
$ sudo useradd --system radcast
作業ユーザにグループを追加
$ sudo usermod -aG radcast 作業ユーザ
必須ソフトのインストール
$ sudo apt -y install ffmpeg
golangのインストール
公式サイトから Linux ARM64 の最新版をダウンロード
https://golang.org/dl/
$ wget https://go.dev/dl/goX.XX.X.linux-arm64.tar.gz
解凍して配置
$ sudo tar -C /usr/local -xzf goX.XX.X.linux-arm64.tar.gz
環境変数の設定
$ sudo vi /etc/profile
最終行に追加
export PATH=$PATH:/usr/local/go/bin
反映のために再起動
$ sudo reboot
公開鍵認証にするために鍵をインストール ※公開鍵は別途作成(ggr)
母艦$ ssh-copy-id 作業ユーザ@192.168.1.81
作業再開
母艦$ ssh 作業ユーザ@192.168.1.81
radcastの取得
$ go install github.com/omiso46/radcast@latest
radcastの動作確認
$ ./go/bin/radcast -setup
地元ラジオ局がつらつらと表示されればOK
radcastのインストール
$ sudo cp ./go/bin/radcast /usr/local/bin/radcast
$ sudo chown radcast:radcast /usr/local/bin/radcast
録音ファイル格納先ディレクトリ作成
$ sudo mkdir /var/radcast
$ sudo chown radcast:radcast /var/radcast
$ sudo chmod 775 /var/radcast
過去ファイル破棄設定
$ sudo crontab -e
0 5 * * * find /var/radcast/ -type d -mtime +28 | xargs rm -rfRAMDiskの有効化
※毎日05時に、録音から28日経過した番組を削除
$ sudo vi /etc/fstab
反映のために再起動tmpfs /tmp tmpfs defaults,size=1024m 0 0
$ sudo reboot
作業再開
母艦$ ssh 作業ユーザ@192.168.1.81
設定ファイルの構築
$ radcast -setup > /var/radcast/radcast.json
$ sudo chown radcast:radcast /var/radcast/radcast.json
録音番組編集
$ vi /var/radcast/radcast.json
チャンネルアイコン
アイコンにしたいお好み画像ファイル(pngフォーマット)を
「 radcast.png 」にリネームして、
/var/radcast/
に格納する。
radicastの自動起動設定
サービス定義ファイル
$ sudo systemctl edit --force --full radcast.service
systemctlに読み込ませる[Unit] Description=radcast [recording radiko and serving rss for podcast] After=network.target multi-user.target [Service] Type=simple Restart=always User=radcast ExecStartPer=/bin/sleep 60 ExecStart=/usr/local/bin/radcast -config /var/radcast/radcast.json -host 192.168.1.81 -output /var/radcast -buffer 30 ExecStop=/bin/kill -WINCH ${MAINPID} ExecReload=/bin/kill -HUP ${MAINPID} [Install] WantedBy=multi-user.target ※ExecStart行は1行で記述すること
$ sudo systemctl daemon-reload
サービスの自動起動設定
$ sudo systemctl enable radcast.service
再起動してエラー確認
$ sudo reboot
完成です!
0 件のコメント:
コメントを投稿