Note: Due to our small team size, we don't support setting up Reticulum locally due to restrictions on developer credentials. Although relatively difficult and new territory, you're welcome to set up this up yourself. In addition to running Reticulum locally, you'll need to also run Hubs and Dialog locally because the developer Dialog server is locked down and your local Reticulum will not connect properly)
Reference this discussion thread for more information.
A hybrid game networking and web API server, focused on Social Mixed Reality.
Linux:
On Ubuntu, you can use
apt install postgresql
Otherwise, consult your package manager of choice for other Linux distributions
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
Note: when updating to newer versions of Erlang and Elixir, be sure to change the version number here and in the files .tool-verions, lint-and-test.yml, and TurkeyDockerfile.
https://elixir-lang.org/install.html
Note: On Linux, you may also have to install the erlang-src package for your distribution in order to compile dependencies successfully.
https://hexdocs.pm/phoenix/installation.html
https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html
Run
. scripts/setup.sh
Run the following commands at the root of the reticulum directory:
mix deps.getmix ecto.create
postgres role to match the password configured dev.exs.psql shell, enter ALTER USER postgres WITH PASSWORD 'postgres';ret_dev database does not exist, (using psql again) enter create database ret_dev;mkdir -p storage/devRun scripts/run.sh if you have the hubs secret repo cloned. Otherwise iex -S mix phx.server
log_our_code_location/3, controls output verbosity.FULL: prints a full stack trace in addition to the location in project codehubs.local hostnameWhen running the full stack for Hubs (which includes Reticulum) locally it is necessary to add a hosts entry pointing hubs.local to your local server's IP.
This will allow the CSP checks to pass that are served up by Reticulum so you can test the whole app. Note that you must also load hubs.local over https.
On MacOS or Linux:
nano /etc/hosts
From there, add a host alias
Example:
127.0.0.1 hubs.local
127.0.0.1 hubs-proxy.local
Clone the Hubs repository and install the npm dependencies.
git clone https://github.com/Hubs-Foundation/hubs.git
cd hubs
npm ci
Because we are running Hubs against the local Reticulum client you'll need to use the npm run local command in the root of the hubs folder. This will start the development server on port 8080, but configure it to be accessed through Reticulum on port 4000.
Once both the Hubs Webpack Dev Server and Reticulum server are both running you can navigate to the client by opening up:
https://hubs.local:4000?skipadmin
The
skipadminis a temporary measure to bypass being redirected to the admin panel. Once you have logged in you will no longer need this.
To log into Hubs we use magic links that are sent to your email. When you are running Reticulum locally we do not send those emails. Instead, you'll find the contents of that email in the Reticulum console output.
With the Hubs landing page open click the Sign In button at the top of the page. Enter an email address and click send.
Go to the reticulum terminal session and find a url that looks like https://hubs.local:4000/?auth_origin=hubs&auth_payload=XXXXX&auth_token=XXXX
Navigate to that url in your browser to finish signing in.
After you've started Reticulum for the first time you'll likely want to create an admin user. Assuming you want to make the first account the admin, this can be done in the iex console:
iex -S mix
Ret.Account |> Ret.Repo.all() |> Enum.at(0) |> Ecto.Changeset.change(is_admin: true) |> Ret.Repo.update!()
Make sure to run the Maybe try iex -S mix where the reticulum mix.exs file is.
Rooms are created with restricted permissions by default, which means you can't spawn media objects. You can change this setting in the admin panel, or run the following code in the iex console:
iex -S mix
Ret.AppConfig.set_config_value("features|permissive_rooms", true)
When running locally, you will need to also run the admin panel, which routes to hubs.local:8989
Using a separate terminal instance, navigate to the hubs/admin folder and use:
npm run local
You can now navigate to https://hubs.local:4000/admin to access the admin control panel
./scripts/run_local_reticulum.sh in the root of the spoke projectdev.exs:dev_janus_host = "hubs.local"
dev.exs:config :ret, Ret.JanusLoadStatus, default_janus_host: dev_janus_host, janus_port: 4443
add_csp.ex: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: ""
psql-userdb="host=hubs.local dbname=ret_dev user=postgres password=postgres options='-c search_path=coturn' connect_timeout=30"
Elixir
97.2%
HTML
1.7%
Shell
1.1%
Note: Due to our small team size, we don't support setting up Reticulum locally due to restrictions on developer credentials. Although relatively difficult and new territory, you're welcome to set up this up yourself. In addition to running Reticulum locally, you'll need to also run Hubs and Dialog locally because the developer Dialog server is locked down and your local Reticulum will not connect properly)
Reference this discussion thread for more information.
A hybrid game networking and web API server, focused on Social Mixed Reality.
Linux:
On Ubuntu, you can use
apt install postgresql
Otherwise, consult your package manager of choice for other Linux distributions
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
Note: when updating to newer versions of Erlang and Elixir, be sure to change the version number here and in the files .tool-verions, lint-and-test.yml, and TurkeyDockerfile.
https://elixir-lang.org/install.html
Note: On Linux, you may also have to install the erlang-src package for your distribution in order to compile dependencies successfully.
https://hexdocs.pm/phoenix/installation.html
https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html
Run
. scripts/setup.sh
Run the following commands at the root of the reticulum directory:
mix deps.getmix ecto.create
postgres role to match the password configured dev.exs.psql shell, enter ALTER USER postgres WITH PASSWORD 'postgres';ret_dev database does not exist, (using psql again) enter create database ret_dev;mkdir -p storage/devRun scripts/run.sh if you have the hubs secret repo cloned. Otherwise iex -S mix phx.server
log_our_code_location/3, controls output verbosity.FULL: prints a full stack trace in addition to the location in project codehubs.local hostnameWhen running the full stack for Hubs (which includes Reticulum) locally it is necessary to add a hosts entry pointing hubs.local to your local server's IP.
This will allow the CSP checks to pass that are served up by Reticulum so you can test the whole app. Note that you must also load hubs.local over https.
On MacOS or Linux:
nano /etc/hosts
From there, add a host alias
Example:
127.0.0.1 hubs.local
127.0.0.1 hubs-proxy.local
Clone the Hubs repository and install the npm dependencies.
git clone https://github.com/Hubs-Foundation/hubs.git
cd hubs
npm ci
Because we are running Hubs against the local Reticulum client you'll need to use the npm run local command in the root of the hubs folder. This will start the development server on port 8080, but configure it to be accessed through Reticulum on port 4000.
Once both the Hubs Webpack Dev Server and Reticulum server are both running you can navigate to the client by opening up:
https://hubs.local:4000?skipadmin
The
skipadminis a temporary measure to bypass being redirected to the admin panel. Once you have logged in you will no longer need this.
To log into Hubs we use magic links that are sent to your email. When you are running Reticulum locally we do not send those emails. Instead, you'll find the contents of that email in the Reticulum console output.
With the Hubs landing page open click the Sign In button at the top of the page. Enter an email address and click send.
Go to the reticulum terminal session and find a url that looks like https://hubs.local:4000/?auth_origin=hubs&auth_payload=XXXXX&auth_token=XXXX
Navigate to that url in your browser to finish signing in.
After you've started Reticulum for the first time you'll likely want to create an admin user. Assuming you want to make the first account the admin, this can be done in the iex console:
iex -S mix
Ret.Account |> Ret.Repo.all() |> Enum.at(0) |> Ecto.Changeset.change(is_admin: true) |> Ret.Repo.update!()
Make sure to run the Maybe try iex -S mix where the reticulum mix.exs file is.
Rooms are created with restricted permissions by default, which means you can't spawn media objects. You can change this setting in the admin panel, or run the following code in the iex console:
iex -S mix
Ret.AppConfig.set_config_value("features|permissive_rooms", true)
When running locally, you will need to also run the admin panel, which routes to hubs.local:8989
Using a separate terminal instance, navigate to the hubs/admin folder and use:
npm run local
You can now navigate to https://hubs.local:4000/admin to access the admin control panel
./scripts/run_local_reticulum.sh in the root of the spoke projectdev.exs:dev_janus_host = "hubs.local"
dev.exs:config :ret, Ret.JanusLoadStatus, default_janus_host: dev_janus_host, janus_port: 4443
add_csp.ex: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: ""
psql-userdb="host=hubs.local dbname=ret_dev user=postgres password=postgres options='-c search_path=coturn' connect_timeout=30"
Elixir
97.2%
HTML
1.7%
Shell
1.1%