banner
moeyy

moeyy

一条有远大理想的咸鱼。
github
mastodon
email

二次元のWebマルチプレイヤーオンラインチャットシステム:Fioraのインストールと使用

説明:Fioraは、二次元寄りのWebマルチプレイヤーオンラインチャットアプリケーションで、Node.jsMongodbSocket.io、およびReactを使用して作成されています。使い勝手は良く、シンプルです。ここでは、セットアップチュートリアルを紹介します。興味がある方は試してみてください。

スクリーンショット#

image

image

機能#

  • 友達、グループ、プライベートチャット、グループチャット
  • テキスト、画像、コード、urlなどのさまざまなタイプのメッセージ
  • バーの絵文字、面白い絵文字、絵文字パックの検索
  • デスクトップ通知、音声リマインダー、音声読み上げ
  • カスタムデスクトップ背景、テーマカラー、テキストカラー
  • オンラインユーザーの確認、@機能
  • 小部屋での発言禁止

手動インストール#

Github アドレス:https://github.com/yinxin630/fiora

必要な環境:Nodejs >= 8.9.0Mongodb

説明:512Mメモリのvpsでは、最初に少し仮想メモリを追加する必要があるかもしれません。そうしないと、ビルドプロセスが失敗します。Swapのワンクリックスクリプトを使用できます→ポータル

1、Nodejs のインストール

#Debian/Ubuntuシステム
curl -sL https://deb.nodesource.com/setup_10.x  bash -
apt install -y git nodejs 

#CentOSシステム
curl -sL https://rpm.nodesource.com/setup_10.x  bash -
yum install nodejs git -y

2、Mongodb のインストール

#CentOS 6システム、以下のコマンドをSSHクライアントにコピーして実行
cat <<EOF > /etc/yum.repos.d/mongodb.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
yum -y install mongodb-org

#CentOS 7システム、以下のコマンドをSSHクライアントにコピーして実行
cat <<EOF > /etc/yum.repos.d/mongodb.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
yum -y install mongodb-org

#Debian 8システム
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/4.0 main"  tee /etc/apt/sources.list.d/mongodb-org-4.0.list
apt update -y
apt install -y mongodb-org

#Debian 9システム
curl https://www.mongodb.org/static/pgp/server-4.0.asc  apt-key add -
echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main"  tee /etc/apt/sources.list.d/mongodb-org-4.0.list
apt-get update -y
apt-get install -y mongodb-org

#Debian 10システム、現在Debian 10にはMongodbパッケージがありませんが、以下の方法でなんとかインストールできます
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse"  tee /etc/apt/sources.list.d/mongodb-org-4.0.list
apt update -y
apt install -y mongodb-org

#Ubuntu 16.04システム
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse"  tee /etc/apt/sources.list.d/mongodb-org-4.0.list
apt update -y
apt install -y mongodb-org

#Ubuntu 18.04、18.10、19.04システム
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse"  tee /etc/apt/sources.list.d/mongodb-org-4.0.list
apt update -y
apt install -y mongodb-org

公鍵をインポートする際にgnupg, gnupg2 and gnupg1 do not seem to be installedというエラーが発生した場合は、apt install -y gnupg2を使用し、再度インポートしてください。

Mongodbを起動し、自動起動を設定します:

#CentOS 6システム
service mongod start
chkconfig mongod on

#CentOS 7、Debian、Ubuntuシステム
systemctl start mongod
systemctl enable mongod

3、fiora のインストール

#ソースコードを取得し、/optフォルダーに保存
git clone https://github.com/yinxin630/fiora.git -b master /opt/fiora
cd /opt/fiora
#依存関係をインストールします。ここではnpmを使用せず、yarnを使用してインストールします
npm i -g yarn
yarn
#ビルド
npm run build
#成果物を移動
npm run move-dist
#起動
npm start

実行後、ip:9200を開き、アカウントを登録し、SSHクライアントで実行ログを確認して自分のuserIdを取得します。

#ここで登録またはログインするときに返される情報、後の5d329dd354b9が自分のuserIdです
<-- getLinkmansLastMessages  mYNheu93jds7 5d329dd354b9

ip:9200が開けない場合は、ファイアウォールを確認してください。CentOSシステムでは、以下のコマンドを使用できます:

#CentOS 6
iptables -I INPUT -p tcp --dport 9200 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --reload

阿里云などでは、セキュリティグループでポートを開放する必要があります。

次に、自分のアカウントを管理者に設定します。まず、Ctrl+Cで実行を中断します。

新しいSystemd設定ファイルを作成します。これはCentOS 7Debian 8+Ubuntu 16+などにのみ適用されます。

#最初にあなたのuserIdと実行ポートを変更してからSSHで実行
Administrator=5d329dd354b9
Port=9200
#新しいfioraユーザーを作成し、権限を付与
useradd -M fiora && usermod -L fiora
chown -R fiora:fiora /opt/fiora
#新しいsystemd設定ファイルを作成し、以下のコードをSSHで実行
cat > /etc/systemd/system/fiora.service <<EOF
[Unit]
Description=fiora
After=network.target
Wants=network.target

[Service]
Type=simple
PIDFile=/var/run/fiora.pid
ExecStart=$(command -v npm) start
WorkingDirectory=/opt/fiora
Environment=Administrator=$Administrator Port=$Port
User=fiora
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
EOF

起動を開始し、自動起動を設定します:

systemctl start fiora
systemctl enable fiora

他のシステム、例えばCentOSDebian 7などでは、以下の方法で直接起動できます:

#管理者userIdと実行ポートは自分で変更してください
export Administrator=5d329dd354b9 Port=9200
nohup npm start &

これでip:9200にアクセスできるようになり、実行ポートは設定したものになります。この時、ログインすると左側に管理者アイコンが追加されていることに気づくでしょう。

4、ドメインのリバースプロキシ
ドメインを使用したい場合は、ここでもCaddyを使用してリバースプロキシを設定します。操作は以下の通りです:

Caddyのインストール:

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh

Caddyの設定:

#以下のすべての内容は一体です。ドメインを変更してからSSHで実行してください!

#httpアクセス、この設定ではSSLが自動的に発行されません
echo "www.moerats.com {
 gzip
 proxy / 127.0.0.1:9200 {
    websocket
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Port {server_port}
    header_upstream X-Forwarded-Proto {scheme}
  }
}" > /usr/local/caddy/Caddyfile

#httpsアクセス、この設定ではSSLが自動的に発行されます。事前にドメインをVPSサーバーに解決してください
echo "www.test.com {
 gzip
 tls [email protected]
 proxy / 127.0.0.1:9200 {
    websocket
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Port {server_port}
    header_upstream X-Forwarded-Proto {scheme}
  }
}" > /usr/local/caddy/Caddyfile

tlsパラメータは自動的にssl証明書を発行します。自分のsslを使用する場合は、tls /root/xx.crt /root/xx.keyに変更してください。後ろはssl証明書のパスです。

Caddyを起動:

/etc/init.d/caddy start

これでドメインにアクセスできるようになります。

デフォルトのチャンネル名を変更したい場合は、config/server.jsファイルを編集し、最下部のコードを変更します:

defaultGroupName: 'fiora',

その後、アプリケーションを再起動してください。七牛クラウドCDNを使用する必要がある場合は、著者が提供したチュートリアルを参考にして自分で設定してください→ポータル

宝塔のインストール#

1、宝塔のインストール

#CentOSシステム
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
#Ubuntuシステム
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
#Debianシステム
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh

インストールが完了したら、パネルに入り、左側のソフトウェアストアをクリックして、PM2管理者MongoDBNginx(ドメインアクセスが必要な場合のみインストール)をインストールします。

注意:DebianMongoDbをインストールする前に、apt install sudoコマンドを使用する必要があります。そうしないと、MongoDbが起動しない可能性があります。すでにMongoDbをインストールしている場合は、apt install sudoを使用してから/etc/init.d/mongodb startで起動してください。

2、fiora のインストール
このステップは上記の手動ステップ3を参考にしてください。違いは、新しいsystemd設定ファイルを作成する際に、Environmentパラメータにもう一つ追加する必要があることです。そうしないと、起動に失敗する可能性があります。

新しいsystemd設定ファイルの作成ステップを以下のように変更し、他は全く同じです。

#最初にnodeのソフトリンクを作成します。そうしないと、後で起動に失敗します
ln -sf $(which node) /usr/bin/node
#実行ポートを変更できます。デフォルトでも構いません
Port=9200
#以下のコマンドをSSHクライアントにコピーして実行
cat > /etc/systemd/system/fiora.service <<EOF
[Unit]
Description=fiora
After=network.target
Wants=network.target

[Service]
Type=simple
PIDFile=/var/run/fiora.pid
ExecStart=$(command -v npm) start
WorkingDirectory=/opt/fiora
Environment=NODE_ENV=production Administrator=$Administrator Port=$Port
User=fiora
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
EOF

3、ドメインのリバースプロキシ
左側のサイトをクリックしてサイトを追加し、追加したドメイン名をクリックします。この時、サイト設定に入ります。設定ファイルをクリックし、中央に以下のコードを追加します:

location / {
    proxy_pass http://127.0.0.1:9200;
    proxy_set_header Host             $host;
    proxy_set_header X-Real-IP        $remote_addr;
    proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;

    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forward-Proto http;
    proxy_set_header X-Nginx-Proxy true;
    proxy_http_version 1.1;

    proxy_redirect off;
}

他のことは自分で試行錯誤してください。著者もあまり使用していないので、問題があれば直接Github Issuesでフィードバックしてください。

著作権声明:この記事は転載されたもので、著作権は Rat's Blog に帰属します。転載する際は出典を明記してください!

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。