前言#
私の若い頃のコンピュータを学ぶ願望の一つであるチャットルームを満たすために、Fiora の構築を再度行うことにしました。特に、私は以前に Fiora を何度も構築したことがありますが、成功したのは一度だけで、それは docker を使用してインストールしたためであり、イメージファイルを使用していたため、真の意味での構築成功とは言えません。今回書く構築ガイドは、ソースコードに基づいて構築することを指しています。
Fiora#
碎碎酱によって開発されたチャットルームシステムで、さまざまな理由から Fiora はもはや更新されておらず、メンテナンスもほとんど行われていません。そのため、2023 年の今、Fiora を再び動かすことは非常に難しい問題です。また、Fiora のドキュメントは十分に詳細ではなく、新人が構築する際に簡単に失敗する可能性があります。メンテナンスが少なく、構築が難しいことを除けば、実際には Fiora 自体は非常に優れたチャットルームシステムです。
避坑指南#
もしあなたが Fiora の構築メカニズムを大体理解しているが、いくつかの問題を克服できない場合、ここでいくつかの指針を提供します。
-
- Node.js のバージョンの問題、v14 LTS バージョンを使用してください。
yarn build:web
、つまりクライアントを構築する際に、以下のような問題に遭遇した場合
- Node.js のバージョンの問題、v14 LTS バージョンを使用してください。
これはおそらく Node.js のバージョンが高すぎるためです。結局、これは 2015 年に始まったプロジェクトであり、現在高バージョンの Node.js を使用するのは礼儀に反します。画像の倒数第 6 行のコマンドで、現在使用している Node.js のバージョンが表示されます。もし見つからない場合は、以下のコマンドを実行してください。
# Node.jsのバージョンを確認
node -v
# または
node --version
使用している Node.js のバージョンを確認します。
通常は最新バージョンですが、Node.js v14 を使用する必要があります。切り替えが完了したら、上記のコマンドを再実行して効果を確認してください。効果がない場合は、サーバーを再起動してみてください。切り替えが完了した後は、yarn を再インストールし、依存関係をインストールし、クライアントを構築する必要があります。
-
- クライアントの構築に時間がかかりすぎる場合は、サーバーをアップグレードしてください。2 コア 2GB RAMを推奨します。
-
- UserID を取得するには、Fiora の内蔵コマンドを使用しても UserID を取得できませんので、コンソールを確認してください。
-
- Fiora に付随するアプリの構築に関する問題は、新しい構築方法を使用する必要があります。 Fiora docsに記載されている方法ではありません。ただし、Fiora がしばらく前にコードをリファクタリングしたため、アプリがサーバーと通信できなくなる可能性があることに注意してください。
開始構建#
サーバー構成ガイド#
Fiora は構成に対する要求が高くはありませんが、無門檻ではありません。ソースコードの構築に関わるため、一定の構成が必要です。
- 構成要件:1 コア 2GB 以上(2 コア 2GB を推奨)
- ネットワーク要件:外部ネットワークに接続可能
- ハードディスクサイズ:2GB 以上
- 環境要件:Node.js(バージョン v14)、MongoDB、Redis
- サーバーシステム:Ubuntu22(このシステムを使用して構築ガイドを説明します)
Node.js、MongoDB、Redis のインストール方法については説明しません。手間を省きたい場合は、私たちの古い友人 BT.CN をインストールし、PM2 マネージャーを選択してください。そうすれば、pm2 や npm を別途インストールする必要はありません。
構築ガイド#
Web 端構築#
まず、プロジェクトをローカルにクローンする必要があります。その前に、サーバーに git 機能があることを確認してください。通常はあります。以下のコマンドを入力します。
# プロジェクトをローカルにクローン
git clone https://github.com/yinxin630/fiora.git -b master
注意すべきは、サーバーが国内にある場合、クローンに失敗する可能性があることです。GitHub からダウンロードして、サーバーにアップロードすることを選択できます。クローンが完了したら、Fiora ディレクトリに移動します。
cd /fiora
このコードを実行する際は、必ず現在のディレクトリを加えてください。私が Fiora をクローンしたディレクトリが/www/project
の場合、入力すべきコマンドは次のようになります。
cd /www/project/fiora
次に、必ず確認してください。使用している Node.js のバージョンが v14 であるかどうか、以下のコマンドを入力して確認します。
# Node.jsのバージョンを確認
node -v
# または
node --version
これは、yarn のインストールやその後の構築の成功に関わる重要なことです。もし v14 でない場合は、必ず v14 に切り替えてください。
その後、yarn がインストールされているかどうかを確認する必要があります。通常はインストールされていません。すでにインストールされていると思う場合は、以下のコマンドを入力して確認できます。
yarn -v
もし yarn がインストールされていない場合は、以下のコマンドを入力してインストールします。
npm install -g yarn
少し待つと、yarn がインストールされます。yarn には特に要求はありませんが、問題がある場合は、1.22.19
バージョンに切り替えてみてください。このバージョンは正常に構築できることが確認されています。
23/12/23 追記 一連の問題を解決し、Fiora の内蔵コマンドラインツールをサポートしました。
プロジェクトに必要な依存関係をインストールします。
yarn install
次に、Fiora プロジェクトをリンクします。
yarn link "fiora"
これで正式に Fiora を構築します。Fiora の正式な構築は実際には非常に簡単で、上記の作業を完了すれば、次のコマンドを入力できます。
yarn build:web
Fiora の構築が行われ、しばらく待つと構築が完了します。
次に、JwtSecret を構成します。このステップはなぜ必要なのかわかりませんが、これがないと実行できません。コマンドラインに以下のコマンドを入力します。
echo "JwtSecret=<string>" > .env2
<string>
を秘密のテキストに置き換えます。
最後に、Fiora を起動できます。
yarn start
起動が完了したら、ブラウザでhttp://[ipアドレス]:[ポート]
(例えばhttp://127.0.0.1:9200
)を開くと、ウェブサイトにアクセスできます。デフォルトのポートは 9200 です。
管理者の追加#
この章では Fiora の内蔵スクリプトを使用しています。実行できない場合は、Fiora プロジェクトがリンクされているかどうかを確認してください。
yarn link "fiora"
通常、上記の構築手順を使用すれば、確認することなく管理者を追加できます。
Fiora の内蔵スクリプトの詳細については→スクリプト | Fiora Docs
Fiora を正常に起動した後、Fiora の実行ログに入ります。成功した起動のアドレスにアクセスし、ユーザーを登録し、ユーザー名を覚えておきましょう。キーボードでCTRLキーとCキーを同時に押して、実行ログを終了します。
fiora getUserId [username]
[username]
部分は登録したユーザーのユーザー名です。この方法でユーザーの UserID を取得します。
658637b993f5dbef4c3e1f0a
が必要な UserID です。この ID を/packages/config/server.ts
の34行目
に追加します。
administrator: env.Administrator ? env.Administrator.split(',') : ["658637b993f5dbef4c3e1f0a"],
構成が完了したら、Fiora を再起動します。
解決できない問題#
アプリ構築#
大量の資料を調べた結果、Fiora App | fiora docsが提供する構築方法は、2023 年の今日、成功することは完全に不可能であり、大量のエラーが発生します!さらに、アプリを正常に構築した後、Fiora のコードがしばらく前にリファクタリングされたため、2023 年の今日、アプリが自分のサーバーと通信できなくなっています!!!!!!!!!たとえ碎碎酱自身のアプリでも動作しません。ここでアプリの構築について書いている理由は、もし熱心な大神が見てくれたら、この問題を解決してもらえるかもしれないからです!!
Web 構築が完了すると、/fiora/packages
ディレクトリにアプリディレクトリが作成されます。そこに入ります。
cd /fiora/packages/app
コマンドラインに以下のコマンドを入力して、最新の EAS CLI をインストールします。
npm install -g eas-cli
次に、Expo にアカウントを登録し、アカウントのパスワードを覚えておいてください。アプリの構築はクラウド構築であり、ローカル構築ではありません。次に、アカウントにログインします。
eas login
先ほど登録したアカウントとパスワードを入力して、認証を完了します。次に、コマンドラインに以下のコマンドを入力し、パッケージするタイプを選択します。↑、↓、ENTER(エンターキー)を使用して選択します。ここでは Android を選択します。
eas build:configure
次に、以下のコマンドを入力して初回の構築を行います。
eas build --platform android
約 10 分待つと、ログイン後の Expo のホームページに以下の内容が表示されます。
そこに入ると、.aab形式のインストールパッケージをダウンロードできます。そう、.aabであって **.apk** ではありません。したがって、2 回目の構築が必要です。2 回目の構築の前に、/fiora/packages/app
ディレクトリに移動し、eas.json
ファイルを編集して、その内容を次のように置き換えます。
{
"build": {
"preview": {
"android": {
"buildType": "apk"
}
},
"preview2": {
"android": {
"gradleCommand": ":app:assembleRelease"
}
},
"preview3": {
"developmentClient": true
},
"production": {}
}
}
次に、再度パッケージ構築を行いますが、今回は以下のコマンドを使用します。上記のものとは異なります。
eas build -p android --profile preview
再び 10 分待つと、アプリの構築が完了し、.apk 形式のインストールパッケージをダウンロードできます。自動的に署名もしてくれます。
しかし、私が言ったように、このアプリはサーバーと通信できません。大神の協力が必要です!!
ポートの問題#
一部のサービスプロバイダーは比較的厳格なファイアウォールポリシーを持っているため、必要なポートを開放する必要があります。Fiora が必要とするポートには以下が含まれますが、これに限りません。
- 19002 アプリ構築に必要
- 6379 アプリ構築に必要
- 9200 Fiora Web ポート、カスタマイズ可能
- 27017 データベースポート
その他の問題#
- 構成ファイル:構成 | Fiora Docs
- カスタムドメイン:リバースプロキシ | Fiora Docs
修正内容#
Fiora に対して一定の修正を行いたい場合は、この部分の内容を必ず確認してください。以前に Fiora のコードがリファクタリングされたため、Fiora | Docsは 2023 年の今日、もはやそれほど適用できなくなっています。提供されるディレクトリ構造も価値を失っています。したがって、Fiora のソースコードを修正したい場合は、私が書いた部分のディレクトリ構成を必ず確認してください。
# Fioraの部分ディレクトリ構成
|-- [.githubb] // github actions
|-- [.vscode] // vscode ワークスペース設定
|-- [packages] // すべてのソースコードの保存ディレクトリ
|------ [app] // アプリのソースコード
|---------- [src] // アプリのソースコード
|-------------- [pages] // アプリのフロントエンドUI
|---------- [app.json] // アプリの基本情報
|---------- [src] // アプリのソースコード
|------ [assets] // 静的リソース
|------ [config] // Fioraの構成ファイルフォルダ
|---------- [client.ts] // クライアント構成
|---------- [server.ts] // サーバー構成
|------ [database] // データベースメソッド、通常は触れない
|------ [server] // 構築後に保存されるWeb
|------ [utils] // utils
|------ [web] // Webのソースコード
|---------- [src] // Webのソースコード
|-------------- [modules] // WebのフロントエンドUI
|-- .eslintignore // eslint 無視
|-- .eslintrc // eslint 構成
|-- .gitignore // git 無視
|-- Dockerfile // docker ファイル
|-- LICENSE // fiora ライセンス
|-- docker-compose.yaml // docker compose 構成
|-- package.json // npm
|-- tsconfig.json // typescript 構成
|-- yarn.lock // yarn
...
終了#
これらは私が Fiora の構築を行う際に経験したすべてです。後の人々が Fiora を構築する際にいくつかの落とし穴を避けたり、新人に Fiora チャットルームの構築方法を教えたりする手助けになれば幸いです。この記事にはまだ不十分な部分があるかもしれませんので、どうかご容赦ください。問題があれば指摘してください。改善に努めます。また、もし大神がアプリがサーバーと通信できない問題を解決する方法を知っている場合は、私のメールアドレス[email protected]までご連絡いただければ感謝いたします!
参考#
Fiora Docs:https://yinxin630.github.io/fiora/zh-Hans/
最初のビルドを作成する:https://docs.expo.dev/build/setup/
Expo CLI:https://docs.expo.dev/more/expo-cli/#installation
Android エミュレーターとデバイス用の APK をビルドする:https://docs.expo.dev/build-reference/apk/
この記事は Mix Space によって xLog に同期更新されました。元のリンクは https://fmcf.cc/posts/technology/Fiora-Setup-Guide