4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Linux初心者でもほぼコピペでできるSolanaプロジェクト「Media Network」メディアサーバの構築

Last updated at Posted at 2021-04-22

この記事は、Solanaチェーン上のプロジェクト「Media Network」のテストネットメディアサーバー構築を、初心者でもほぼコピペするだけで構築できるように、自身の備忘録も兼ねてまとめたものです。
私自身Linuxはほとんど触ったことのないド素人なので、間違いや非効率な部分が大いにあると思います。
その場合、ご指摘をいただけたら幸いです。

##前提条件
・solletウォレットを所有している。
https://www.sollet.io/

・テストネット用SOLを保有している。※1SOLあれば十分

・運営にテストネット参加を表明する。
hello@media.foundationにSOLのアドレスをメールで送信するとテスト用トークンを100もらえます。
現時点でこのトークンはまだ使わないと思います。

・VPSを契約するための出費を許容できる。
おすすめは以下の「Time4VPS」!!
かなりリーズナブルなのでおすすめです。

契約方法はこちらのサイトで詳しく説明されているのでご参照ください。
OSはubuntu20.04かDebian10にしましょう。おすすめはubuntuです。

以下Time4VPSで作業をする前提で説明させていただきます。

#サーバ構築前の準備
契約したVPSは、rootでssh接続をすることになると思います。
それではセキュリティ的に脆弱なので、一手間加えましょう。

構築前の準備は別にやらなくてもメディアサーバーは建てられますが、
犯罪に巻き込まれないためにもやっておいたほうがいいと思います。

使用するターミナルはWindowsなら↓がおすすめです。Macはもともと入ってるやつでいいと思います。


最初に、本来ならばコードの前に$や#をつけるところですが、「コピペでできる」というコンセプトなので省略いたします。

以下ターミナル上で黒枠内のコードをコピペしてください。※[ ]内は自身で入力するものです[]は外して入力してください。


契約したVPSにssh接続する。

ssh root@[IP Address]

####一般ユーザの追加
好きなユーザ名を設定しましょう。

useradd -m -s /usr/bin/bash [ユーザ名]
passwd [ユーザ名]  

新しいパスワードを設定する。

New password: [好きなパスワード]   #新しいパスワードの設定 ※表示されません
Retype new password: [好きなパスワード]  #再入力

####sudoグループに[ユーザ名]を追加

adduser [ユーザ名] sudo

追加されているか確認する

cat /etc/group | grep sudo

以下が表示されていればOK
 
``sudo:x:27:[ユーザ名]``
***

####ポートの開放

ufw enable

ufw allow 80

ufw allow [49152 〜 65535の内、好きなポート1つ]

``例) ufw allow 50022``

ufw reload

ufw status

↓以下が表示されることを確認 **※これはコピペ不要**

Status: active

To Action From


22 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
80 ALLOW Anywhere
80 (v6) ALLOW Anywhere (v6)
50022 ALLOW Anywhere      #ここは開放した好きなポートが出ます
50022(v6) ALLOW Anywhere (v6)   #ここは開放した好きなポートが出ます



####SSH接続の設定ファイルのバックアップ


cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org

####SSH接続の設定変更

vi /etc/ssh/sshd_config


``35行目の``
 
``PermitRootLogin yes``

 ``yes を no に変更する。``
↓
。
viの使い方は以下のサイトが詳しいです。

https://eng-entrance.com/linux-command-vi

きちんと編集されたか確認する

diff /etc/ssh/sshd_config /etc/ssh/sshd_config.org

以下の表示が出るか確認する。

``< PermitRootLogin no``
``---``
``> PermitRootLogin yes``

sshd -t

これでエラーを吐かなければOK。次に進んでください。

systemctl restart sshd.service

exit


exit


再度rootでSSH接続を試みてください。

ssh root@[IP Address]


``Permission denied, please try again.``の表示が出てログインできなければ成功です。

***

####ssh接続ポートの変更

一般ユーザでログインする。

ssh [ユーザ名]@[IP Address]

sudo su

最初に設定したパスワードを入力

sudo sed -i -e "s/^#Port 22$/Port [先ほど開放した好きなポート]/" /etc/ssh/sshd_config

``例) sudo sed -i -e "s/^#Port 22$/Port 50022/" /etc/ssh/sshd_config``

sudo systemctl restart sshd

exit

exit

***

変更したポートで一般ユーザにログインできることを確認する。

ssh -p [開放した好きなポート] [ユーザ名]@[IP Address]

``例)ssh -p 50022 ubuntu@192.168.1.11``

これで構築前の準備は完了です!

##メディアサーバーを構築する

rootに入る

``` 
sudo su

nanoとNode.jsのインストール

apt update; \
apt install -y git htop curl nano xz-utils tmux; \
curl -sL https://deb.nodesource.com/setup_15.x | bash -; \
apt install -y nodejs

FFmpegのインストール

cd /tmp; \
rm -rf /tmp/ffmpeg-git*; \
wget https://media.network/static/ffmpeg-release-amd64-static.tar.xz; \
tar xvf ffmpeg-release-amd64-static.tar.xz; \
cd /tmp/ffmpeg-*/; \
mv ffmpeg ffprobe /usr/bin/; \
cd /root;

メディアサーバーのGitリポジトリのクローンを作成

git clone https://github.com/mediafoundation/mediaserver.git; \
cd mediaserver; \
npm i

npmのアップデート

npm install -g npm

パスフレーズとapiパスワードの変更

nano config.js

nanoの使い方は以下のサイトが詳しく説明しています。

以下の部分を編集する。

mediaserver/config.js
const config = {
  passphrase: "ここに任意のパスフレーズを入力する", #ここを編集する
    api : true,
    api_user: 'admin',
    api_pass: 'ここに任意のパスワードを入力する',  #ここを編集する
  },
  rtmp: {
//...

apiユーザーとapiパスワードは後で管理パネルに入る際に使うので覚えておく!


サーバーを起動する。

node app &

いったんここを参照しMedia Networkアプリ設定を行う。

Step 3のIPアドレスはメディアサーバーを構築したVPSのIPv4アドレスに:80を加えたものを入力してください。
例)192.168.1.11:80

ResourceIDを控えておく。
xxxxxxx.medianet.work
xxxxxxxの部分です。


チャンネルのウェブサイトを編集する

nano views/channel.html

下のほうにすすんでResourceIDがあるところを探す。

mediaserver/views/channel.html
 <div class="column-2">
    <form id="videoUrlForm">
      <div class="form-group">
        <label for="url">Video URL<span id="https-only" class="hide"> (HTTPS only)</span>:</label>
          <input type="text" class="form-control" id="url" name="url" placeholder="Please enter video url" required
            value="https://xxxxxxx.medianet.work/live/<%= name %>/index.m3u8" />   #←先ほど控えたResourceIDに置き換える。
</div>

管理パネルにアクセス
https://xxxxxxx.medianet.work/admin/
apiユーザとapiパスワードを使用してログイン

サーバーが動いていることを確認する。


以上でメディアサーバの構築は終了です。

動画配信はまだうまくできてないので、うまくできたらまとめるつもりです。

##参考、引用サイト

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?