Reticulum ReadMe - gree/hubs-docs-jp GitHub Wiki
このドキュメントは原作 Reticulum README を翻訳したものです。最新の情報は原作をご参照ください。
This document is a translation of the original Reticulum README. Please refer to the original for the latest information.
Reticulum は Social Mixed Reality に特化した、ゲームネットワーキングと Web API のハイブリッドサーバーです。
原作からの注: 開発チームの規模が小さく限界があるため、我々はローカルでの Reticulum のセットアップはサポートしません。それと同時に比較的難しく新しい分野ではありますので、ご自身でセットアップを行っていただくことは勉強になると思います。なお、 Reticulum をローカルで実行するには、Hubs と Dialog もローカルで実行する必要があります。なぜなら開発者用の Dialog サーバーはロックダウンされており、ローカルの Reticulum からは正しく接続できないためです。
詳細はこのディスカッションスレッドをご覧ください。
Linux:
Ubuntu であれば以下を実行します。
apt install postgresql
他の Linux ディストリビューションの場合は、それぞれのパッケージマネージャに問い合わせてください。
Windows: https://www.postgresql.org/download/windows/
Windows WSL: https://github.com/michaeltreat/Windows-Subsystem-For-Linux-Setup-Guide/blob/master/readmes/installs/PostgreSQL.md
https://elixir-lang.org/install.html
注:Linuxでは、依存関係を正しくコンパイルするために、お使いのディストリビューションで erlang-src パッケージをインストールする必要があるかもしれません。
https://hexdocs.pm/phoenix/installation.html
https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html
以下のコマンドを Reticulum ディレクトリのルートで実行してください。
mix deps.get
-
mix ecto.create
- step2で失敗した場合、
dev.exs
で設定されたパスワードと一致するようにpostgres
のパスワードを変更する必要があります。
-
psql
シェル上で、ALTER USER postgres WITH PASSWORD 'postgres';
を実行してください。
-
ret_dev
データベースが存在しないという旨のエラーが発生した場合は、(psql
シェル上で)create database ret_dev
を実行してください。
- step2で失敗した場合、
- プロジェクトディレクトリ下で
mkdir -p storage/dev
を実行します。
hubs の secret repo がクローンされている場合は、scripts/run.sh
を実行し、それ以外の場合は iex -S mix phx.server
を実行してください。
( Reticulum を含む) Hubs のフルスタックをローカルで実行する場合、hubs.local
をローカルサーバ向けのIPである hosts
エントリに追加する必要があります。
MacOS あるいは Linux では、
nano /etc/hosts
そこにホストのエイリアスを追加してください。
Example:
127.0.0.1 hubs.local
Hubs リポジトリをクローンし、npm の依存関係をインストールします。
git clone https://github.com/mozilla/hubs.git
cd hubs
npm ci
Hubs をローカルの Reticrum クライアントに対して実行するためには、hubs
ディレクトリのルートにある npm run local
コマンドを使用します。これにより、開発サーバーではポート8080で起動しますが、Reticulum からはポート4000でアクセスされるように設定されます。
Hubs Webpack Dev Server と Reticulum server を起動したら、以下のURLを開くことでクライアントに移動できます。
https://hubs.local:4000?skipadmin
skipadmin
は管理画面にリダイレクトされないようにするための一時的な措置です。一旦ログインしたら、必要なくなります。
Hubs へのログインには、あなたのメールに送られるマジックリンクを使用します。Reticulum をローカルで起動している場合は、これらのメールは送信されません。その代わり、Reticulum のコンソールにメールの内容が表示されます。
Hubs のランディングページを開いた状態で、ページ上部の「Sign In」ボタンをクリックします。メールアドレスを入力し、送信をクリックします。
Reticulum を起動しているターミナルセッションに切り替え、https://hubs.local:4000/?auth_origin=hubs&auth_payload=XXXXX&auth_token=XXXX のようなURLを見つけます。
見つけたURLをブラウザで開くと、ログインが完了します。
Reticulum を初めて起動できた後は、管理者ユーザーを作成することになるでしょう。最初のアカウントを管理者に設定したい場合は、iex のコンソールで以下のコードを実行します。
Ret.Account |> Ret.Repo.all() |> Enum.at(0) |> Ecto.Changeset.change(is_admin: true) |> Ret.Repo.update!()
ローカルで起動している場合、hubs.local:8989 にルーティングされている Admin Portal も起動させる必要があります。
別のターミナルを使って、hubs/admin
ディレクトリに移動し、以下のコマンドを実行します。
npm run local
これで https://hubs.local:4000/admin に移動すると、管理者用コントロールパネルにアクセスできるようになります。
- 上記の手順でHubをセットアップします。
- スポークプロジェクトをクローンし、そのルートで
./scripts/run_local_reticulum.sh
を実行し、起動します。 - https://hubs.local:4000/spoke に移動します。
-
dev.exs
内の Janus host を更新します。
dev_janus_host = "hubs.local"
-
dev.exs
内の Janus port を更新します。
config :ret, Ret.JanusLoadStatus, default_janus_host: dev_janus_host, janus_port: 4443
-
add_csp.ex
の CSP ルールに Dialog meta endpoint を追加します。
default_janus_csp_rule =
if default_janus_host,
do: "wss://#{default_janus_host}:#{janus_port} https://#{default_janus_host}:#{janus_port} https://#{default_janus_host}:#{janus_port}/meta",
else: ""
- ダイアログの設定ファイル turnserver.conf を編集し、PostgreSQL データベースの接続文字列を更新し、Reticulum データベースの coturn schema を使用するようにします。
psql-userdb="host=hubs.local dbname=ret_dev user=postgres password=postgres options='-c search_path=coturn' connect_timeout=30"