Coder Social home page Coder Social logo

albirrkarim / mozilla-hubs-installation-detailed Goto Github PK

View Code? Open in Web Editor NEW
126.0 13.0 53.0 64.05 MB

Mozilla hubs installation, deploy on self-hosted server, system overview, how to modify, etc

Elixir 100.00%
elixir phoenix-framework phoenix-elixir npm mozilla-hubs metaverse web-architecture

mozilla-hubs-installation-detailed's Introduction

Introduction

this repo about

The end purpose of this repo is to install fully self-hosted hubs. See the difference between this repo and the hubs-cloud first.

News

  • 15 Feb 2024, Mozilla Hubs is End, On February 13, 2024, Mozilla announced an organization-wide restructuring impacting a number of products housed within the Mozilla Corporation. Unfortunately, Hubs is one of the products impacted and it will be shut down later this year. Mozilla will not continue active development or maintenance of Hubs codebases and other community resources. Read more

  • 16 oct 2023. Now mozilla hubs launching Mozilla Hubs Community Edition, its the way you can install self-hosted hubs, its official method. but i havn't trying yet. Take my repo as development reference and supportive techinal thing. Please Follow the official one.

  • feb 2022 - oct 2023. maybe this repo is the only way you can install self-hosted hubs.

Let's help each other.

If you have advice or experience sharing about:

  • Best practice
  • Server hosting
  • Server resource usages
  • Tips

Please send me pull request or send me a message.

You can send me a message via discord

albirrkarim#8171

Thank you for all stars, contributions, and funding. So this repo can keep updated and provide benefits to the public.

Buy Me a Coffee at ko-fi.com

Installing Mozilla Hubs Locally

My journey installing Mozilla hubs, I'm new to a project like this. so I'm confused. After 4 days of figuring out how this program work finally I can run Mozilla hubs on my MacBook air m1. I want to share with you how to do it.

For make it clear i provide this tutorial in youtube video. give me like and subscribe to supporting me making the other video about this.

This is about running Mozilla hubs locally. this is a detailed version, step by step what I do.

Remember! if you got a problem with npm or dependency that you can't to solve for 1 hour. Just restart your PC. Trust me.

Also, I have done Hosting Mozilla Hubs on VPS



Warning - This is not official documentation



Disclaimer - Do with your own risk.





This method still work, last time i checked 6 April 2023



Requirement:

Hardware:

  • at least 8GB of RAM
  • recommended using fast CPU

Software

  • Node js installed. when I install this hubs I use v16

Knowledge

I assume you already know, if no you must up-skill first

Up skill

  • Javascript
  • React js
  • Basic Webpack dev server
  • Basic Elixir and phoenix
  • Basic Web Socket

Overview

System Overview

The image above made with figma you can read more description on documentation

I also try to make software overview, architecture, and tables on the database. you can see my figma project

Summary

Reticulum is the main host. it sync position, rotation, state of object. Comunicates with client browser through http request and websocket.

Dialog sync video and audio user. comunicates with clients browser through websocket.

Hubs, Spoke serve static assets then reticulum takes it and forward to client browser.

postREST is a server that help hubs Admin to doing basic task like CRUD (create read update delete)

Hubs Admin use websocket to comunicates with postgREST for authentication (login). for CRUD purpose hubs admin send http request (GET, POST, etc) to reticulum then reticulum doing proxy pass to postgREST.



Attention!

There is major step Cloning and Preparation -> Setting up HOST -> Setting up HTTPS (SSL) -> Running

1. Cloning and preparation

1.1 Reticulum

It's a backend server that uses elixir and phoenix.

1.1.1 Clone

git clone https://github.com/mozilla/reticulum.git
cd reticulum

1.1.2 Install requirement

Postgres Database

Install on linux ubuntu

Install on mac

With brew for installing CLI Postgres

brew install postgres

Then create user/change password

user: postgres

password : postgres

and alter it

ALTER USER postgres WITH SUPERUSER

Elixir and Erlang (Elixir 1.14.4 and erlang version 23.3)

You can install those with follow this tutorial

Be careful about the version of elixir and erlang.

1.1.3 run this command

  1. mix deps.get
  2. mix ecto.create
    • If step 2 fails, you may need to change the password for the postgres role to match the password configured dev.exs.
    • From within the psql shell, enter ALTER USER postgres WITH PASSWORD 'postgres';
    • If you receive an error that the ret_dev database does not exist, (using psql again) enter create database ret_dev;
  3. From the project directory mkdir -p storage/dev

1.1.4 Run Reticulum against a local Dialog instance

  1. Update the Janus host in dev.exs:
dev_janus_host = "localhost"
  1. Update the Janus port in dev.exs:
config :ret, Ret.JanusLoadStatus, default_janus_host: dev_janus_host, janus_port: 4443
  1. Add the Dialog meta endpoint to the CSP rules in 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: ""

1.2 Dialog

Using mediasoup RTC will handle audio and video real-time communication. like camera stream, share screen.

1.2.1 Clone and get dependencies

git clone https://github.com/mozilla/dialog.git
cd dialog
npm install

1.2.2 Setting up secret key

thanks to this comment

Generate RSA (Public and Private key) with generator online

make empty file perms.pub.pem and fill it with RSA Public key

RSA generator Paste

Goto reticulum directory on reticulum/config/dev.exs change PermsToken with the RSA private key that you generate before.

config :ret, Ret.PermsToken, perms_key: "-----BEGIN RSA PRIVATE KEY----- paste here copyed key but add every line \n before END RSA PRIVATE KEY-----"

1.3 Spoke

In here you can create/edit the scenes/buildings whatever you call it.

1.3.1 Clone

Mozilla Spoke

git clone https://github.com/mozilla/Spoke.git
cd Spoke
yarn install

1.3.2 Set the Host (optional)

on the package.json look at the run-local-reticulum script change the host. hub.local or localhost.

in this tutorial i use localhost;

1.4 Hubs

In this repo contains the hubs client and hubs admin (hubs/admin)

System Overview

Clone and install dependencies

git clone https://github.com/mozilla/hubs.git
cd hubs
npm ci

1.5 Hubs Admin

from the hubs repo you can move to hubs/admin then run

npm install

2. Setting up HOST

We are not using hubs.local domain. we use localhost

so change every host configuration on reticulum, dialog, hubs, hubs admin, spoke.

3. Setting up HTTPS (SSL)

All the servers must serve with HTTPS. you must generate a certificate and key file

3.1 Generating certificate and making it trust

Open terminal in reticulum directory

run command

mix phx.gen.cert

It will generate key selfsigned_key.pem and certificate selfsigned.pem in the priv/cert folder

Rename selfsigned_key.pem to key.pem

Rename selfsigned.pem to cert.pem

Now we have key.pem and cert.pem file

In Mac OS, I don't know in windows or Linux. please find it yourself

Open the cert.pem on the tab system find that certificate then clicks twice and change to always trust.

Https mozilla hubs

Select the cert.pem and key.pem and copy it. next step we will distribute those two files into hubs, hubs admin, spoke, dialog, and reticulum.

Oke first set up in the reticulum.

3.2 Setting https for reticulum

On the config/dev.exs We must be setting the path for the certificate and key file.

Https mozilla hubs

3.3 Setting HTTPS for hubs

Paste that file into hubs/certs

3.4 Setting HTTPS for hubs admin

Paste that file into hubs/admin/certs

3.5 Setting HTTPS for spoke

Paste that file into spoke/certs

3.6 Setting https for dialog

Paste that file into dialog/certs

rename cert.pem to fullchain.pem

rename key.pem to privkey.pem

ssl hubs dialog

4. Running

Open five terminals. for each reticulum, dialog, spoke, hubs, hubs admin.

Running preparation

4.1 Run reticulum

with command

iex -S mix phx.server

4.2 Run dialog

Edit the start command on the package.json with

MEDIASOUP_LISTEN_IP=127.0.0.1 MEDIASOUP_ANNOUNCED_IP=127.0.0.1 DEBUG=${DEBUG:='*mediasoup* *INFO* *WARN* *ERROR*'} INTERACTIVE=${INTERACTIVE:='true'} node index.js

For giving params MEDIASOUP_LISTEN_IP and MEDIASOUP_ANNOUNCED_IP

Running preparation

Start dialog server with command:

npm run start

127.0.0.1 is the default IP of localhost on Mac / Linux you can look at the IP with this command:

sudo nano /etc/hosts

4.3 Run spoke

with command

yarn run-local-reticulum

4.4 Run hubs

Each with command

npm run local

4.5 Run postgREST server

More about this is in this

Download postREST

sudo apt install libpq-dev
wget https://github.com/PostgREST/postgrest/releases/download/v9.0.0/postgrest-v9.0.0-linux-static-x64.tar.xz
tar -xf postgrest-v9.0.0-linux-static-x64.tar.xz

On reticulum iex

paste this

jwk = Application.get_env(:ret, Ret.PermsToken)[:perms_key] |> JOSE.JWK.from_pem(); JOSE.JWK.to_file("reticulum-jwk.json", jwk)

then it will create reticulum-jwk.json in your reticulum directory

Make reticulum.conf file

nano reticulum.conf

and paste

# reticulum.conf
db-uri = "postgres://postgres:postgres@localhost:5432/ret_dev"
db-schema = "ret0_admin"
db-anon-role = "postgres_anonymous"
jwt-secret = "@/absolute_path_to_your_file/reticulum-jwk.json"
jwt-aud = "ret_perms"
role-claim-key = ".postgrest_role"

then the folder looks like this (contain two files)

/
   postgrest
   reticulum.conf

then run postREST with

postgrest reticulum.conf

4.6 Run Hubs Admin

This is tricky.

Goto reticulum folder then find router.ex, then find /api/postgrest and modify to this code bellow.

scope "/api/postgrest" do
   # pipe_through [:secure_headers, :auth_required, :admin_required, :proxy_api]
   if(Mix.env() == :prod) do
   pipe_through([:secure_headers])
   end

   forward "/", RetWeb.Plugs.PostgrestProxy
end

The first way is we can use. npm run local but if we use this as a live webpack server.

IF, This tab doesn't work. (pending scenes,etc)

The solution is we need to run it as a static file using nginx.

make new file .prod.env

# To override these variables, create a .env file containing the overrides.
CONFIGURABLE_SERVICES="janus-gateway,reticulum,hubs,spoke"

ITA_SERVER="https://localhost:3333"
RETICULUM_SERVER="localhost:4000"

# PostgREST server configured to allow administrative access to the db.
POSTGREST_SERVER="https://localhost:4000/api/postgrest"
BASE_ASSETS_PATH="https://localhost:8989/"

then modify the webpack.config.js

find the code that talk about .env

the modify like this:

if (argv.mode === "production") {
  dotenv.config({ path: ".prod.env" });
} else {
  dotenv.config({ path: ".env" });
  dotenv.config({ path: ".defaults.env" });
}

build it first npm run build then you can see there's a dist folder inside the hubs/admin

I use mac book, in the macbook just install nginx then

find the nginx config file

sudo nginx -t

OK, let's assume you have knowledge about nginx before.

server {
      listen 8989 ssl;
      server_name localhost;

      location / {
         root   /absolute_path/hubs/admin/dist;
         index  admin.html index.htm;
      }

      ssl_certificate /absolute_path/hubs/admin/certs/cert.pem;
      ssl_certificate_key /absolute_path/hubs/admin/certs/key.pem;
}

Don't forget to restart nginx

then access the hubs admin via reticulum https://localhost:4000/admin


Now you can access, with lock symbol (SSL secure)

Server URL
Hubs https://localhost:4000
Hubs admin https://localhost:4000/admin
Spoke https://localhost:4000/spoke


Buy Me a Coffee at ko-fi.com

Also read:

How to Maintenance Server (Backup, etc)

Hosting Mozilla Hubs on VPS

The Problem I Still Faced

The Problem I Faced and I Already Solved

Tips for Modification

Overview System With Figma

Experience Sharing About Hosting on Other Server

mozilla-hubs-installation-detailed's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mozilla-hubs-installation-detailed's Issues

Is the admin menu working at your place?

Hi, albirrkarim.
Thanks to your documentation, some issues have been resolved and paved the way.
I am very grateful to you. by the way,...
Is the admin menu working at your place?
I can't import scenes and avatars.
The other menu says "server communication error", is this the same for you?

Thank you as always.

Error while running reticulum on iMac with command iex -S mix phx.server

Hi

Thanks for giving this tutorial to set up the hub on localhost.

I have followed all steps from the tutorial up to Step 3 and all steps are working as fine

When I tried Step 4. running
Then it gives me an error

Please check it below

== Compilation error in file lib/ret/schema.ex ==
** (CompileError) lib/ret/schema.ex:39: call to local macro is_struct/1 conflicts with imported Kernel.is_struct/1, please rename the local macro or remove the conflicting import
(elixir 1.14.2) expanding macro: Kernel.and/2
lib/ret/schema.ex:39: Ret.Schema.is_schema/1
(elixir 1.14.2) expanding macro: Kernel.and/2
lib/ret/schema.ex:40: Ret.Schema.is_schema/1
(elixir 1.14.2) expanding macro: Kernel.Utils.defguard/2
lib/ret/schema.ex: Ret.Schema.is_schema/1

Please check the screenshots:
Screenshot at Dec 01 12-25-24

error-screenshot

Installed the version of elixir and erlang per your suggestion
% asdf current
elixir 1.14.2 /Users/iMac/Documents/Work/Hub/reticulum/.tool-versions
erlang 25.1.2 /Users/iMac/Documents/Work/Hub/reticulum/.tool-versions

Any help would be appreciated.

admin hubs

help me hubs admin npm run local server setting error link bad not fount

Bad Gateway

Hi albirrkarim, thank you for your documentation! excuse me, have you found the problem about hub admin 502

Issues installing erlang 23.0

It gives me this:

root@b2a42bf9535c:/# asdf install erlang 23.0
asdf_23.0 is not a kerl-managed Erlang/OTP installation
The asdf_23.0 build has been deleted
Extracting source code
Building Erlang/OTP 23.0 (asdf_23.0), please wait...
APPLICATIONS DISABLED (See: /root/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_build_23.0.log)

  • jinterface : No Java compiler found
  • odbc : ODBC library - link check failed

APPLICATIONS INFORMATION (See: /root/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_build_23.0.log)

  • wx : No OpenGL headers found, wx will NOT be usable
  • No GLU headers (glu.h) found, wx will NOT be usable
  • wxWidgets not found, wx will NOT be usable

DOCUMENTATION INFORMATION (See: /root/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_build_23.0.log)

  • documentation :
  •              xsltproc is missing.
    
  •              fop is missing.
    
  •              xmllint is missing.
    
  •              The documentation cannot be built.
    

Build failed.
cc1: some warnings being treated as errors
gmake[4]: *** [x86_64-unknown-linux-gnu/Makefile:171: ../priv/obj/x86_64-unknown-linux-gnu/pkey.o] Error 1
gmake[4]: Leaving directory '/root/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_src_23.0/lib/crypto/c_src'
gmake[3]: *** [/root/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_src_23.0/make/run_make.mk:35: opt] Error 2
gmake[3]: Leaving directory '/root/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_src_23.0/lib/crypto/c_src'
gmake[2]: *** [/root/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_src_23.0/make/otp_subdir.mk:29: opt] Error 2
gmake[2]: Leaving directory '/root/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_src_23.0/lib/crypto'
gmake[1]: *** [/root/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_src_23.0/make/otp_subdir.mk:29: opt] Error 2
gmake[1]: Leaving directory '/root/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_src_23.0/lib'
gmake: *** [Makefile:504: libs] Error 2

Please see /root/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_build_23.0.log for full details.
root@b2a42bf9535c:/#

hubs.link proxy doesn't work

How can we fix the shortlinks in NGINX? I have already set up SSL for the shortlink and got it connecting to the same server that hosts the hubs domain. My issue is I am having problems writing the nginx rule that redirects the shortlink to fulldomain.com/link/xyz

According to what I know I tried this but its not giving the expected results.

server { server_name short.link location / { return 301 https://fulldomain.com/link/$1; } ... }

Would appreciate any help on this issue.

Thanks

"could not compile dependency :dns" error when running `mix ecto.create`

Environment

OS: Ubuntu 22.04
Erlang version: 23.3 installed via asdf (only possible thanks to this workaround asdf-vm/asdf-erlang#247 (comment))
Elixir version: 1.14.3-otp-23 installed also via asdf

Steps to reproduce

Inside the reticulum repository
mix deps.get
mix ecto.create

Expected Outcome

That it works.

Actual outcome

could not compile dependency :dns error

image

Things I tried to resolve this issue

  • googling the issue, I didn't find anything, there are other people having this type of error but never with this specific library or project
  • looking at the closed issues in this repository, there are two similar issues #24 #18, I tried their fixes, they didn't work for me (still got the same error message both times)

Any idea why this is happening?

jwk file is not creating

I installed mozilla hub on ubunutu 20.03 server
almost done...
but i tried to create the reticulum-jwk.json file , it doesn't works

I executed as follows :
cd /[reticulum root]
iex
iex>Mix.install([{:jose, "~> 1.11"}])
iex>jwk = Application.get_env(:ret, Ret.PermsToken)[:perms_key] |> JOSE.JWK.from_pem(); JOSE.JWK.to_file("reticulum-jwk.json", jwk)
** (FunctionClauseError) no function clause matching in :jose_jwk.from_pem/1

The following arguments were given to :jose_jwk.from_pem/1:

    # 1
    nil

(jose 1.11.2) src/jwk/jose_jwk.erl:443: :jose_jwk.from_pem/1
(jose 1.11.2) lib/jose/jwk.ex:186: JOSE.JWK.from_pem/1

as shown as, the error is appear and i can't create the file.

*I tried to use the "reticulum-jwk.json" file from hubs-repo/ansible/
but the file dosen't works

it is first time to use postgrest so I don't know corrently
but I guess postgrest daemon is important to create jwt token

could not compile dependency :ecto,

Hello, it appears when I am running iex - S mix phx.server “could not compile dependency :ecto, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile ecto --force", update it with "mix deps.update ecto" or clean it with "mix deps.clean ecto"” Where is the problem with this situation?
image

Can not install Erlang 23.0

How are you?
I tried to install erlang 23.0
But I am getting this error when I run asdf install erlang 23.0

The asdf_23.0 build has been deleted
Extracting source code
Building Erlang/OTP 23.0 (asdf_23.0), please wait...
WARNING: It appears that a required development package 'libncurses5-dev' is not installed.
Build failed.
./configure: 353: kill: No such process

Makefile:1229: warning: overriding recipe for target 'dialyzer'
Makefile:516: warning: ignoring old recipe for target 'dialyzer'
Makefile:474: /home/ploi/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_src_23.0/make/x86_64-unknown-linux-gnu/otp.mk: No such file or directory
make: *** No rule to make target '/home/ploi/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_src_23.0/make/x86_64-unknown-linux-gnu/otp.mk'.  Stop.
Makefile:1229: warning: overriding recipe for target 'dialyzer'
Makefile:516: warning: ignoring old recipe for target 'dialyzer'
Makefile:474: /home/ploi/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_src_23.0/make/x86_64-unknown-linux-gnu/otp.mk: No such file or directory
make: *** No rule to make target '/home/ploi/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_src_23.0/make/x86_64-unknown-linux-gnu/otp.mk'.  Stop.

Please see /home/ploi/.asdf/plugins/erlang/kerl-home/builds/asdf_23.0/otp_build_23.0.log for full details.

How can I solve this?
Thank you.

extra settings are required

Hi,
I tried to install the hubs project on the self-hosted project.
Almost done, but could not see the landing page of hubs, hubs_admin, and spoke projects.
I think you probably modified /etc/hosts file regarding your new domain.
Let me know if you did that, then how?
Thanks.

Error with mix ecto.create

I get below error while running "mix ecto.create"

== Compilation error in file lib/ex_rated.ex == ** (KeyError) key :vars not found in: #Macro.Env<aliases: [], context: nil, context_modules: [ExRated], file: "/Users/test2/Documents/SampleApps/reticulum/deps/ex_rated/lib/ex_rated.ex", function: {:delete_bucket, 2}, functions: [{Kernel, [!=: 2, !==: 2, *: 2, **: 2, +: 1, +: 2, ++: 2, -: 1, -: 2, --: 2, /: 2, <: 2, <=: 2, ==: 2, ===: 2, =~: 2, >: 2, >=: 2, abs: 1, apply: 2, apply: 3, binary_part: 3, binary_slice: 2, binary_slice: 3, bit_size: 1, byte_size: 1, ceil: 1, div: 2, elem: 2, exit: 1, floor: 1, function_exported?: 3, get_and_update_in: 3, get_in: 2, hd: 1, inspect: 1, inspect: 2, is_atom: 1, is_binary: 1, is_bitstring: 1, is_boolean: 1, ...]}], lexical_tracker: #PID<0.247.0>, line: 243, macro_aliases: [], macros: [{Ex2ms, [fun: 1]}, {Kernel, [!: 1, &&: 2, ..: 0, ..: 2, ..//: 3, <>: 2, @: 1, alias!: 1, and: 2, binding: 0, binding: 1, dbg: 0, dbg: 1, dbg: 2, def: 1, def: 2, defdelegate: 2, defexception: 1, defguard: 1, defguardp: 1, defimpl: 2, defimpl: 3, defmacro: 1, defmacro: 2, defmacrop: 1, defmacrop: 2, defmodule: 2, defoverridable: 1, defp: 1, defp: 2, defprotocol: 2, defstruct: 1, destructure: 2, get_and_update_in: 2, if: 2, in: 2, ...]}], module: ExRated, requires: [Application, Ex2ms, GenServer, Kernel, Kernel.Typespec], ...> (ex2ms 1.6.0) lib/ex2ms.ex:213: Ex2ms.translate_param/2 (ex2ms 1.6.0) lib/ex2ms.ex:184: Ex2ms.translate_head/2 (ex2ms 1.6.0) lib/ex2ms.ex:116: Ex2ms.translate_clause/2 (elixir 1.14.2) lib/enum.ex:1658: Enum."-map/2-lists^map/1-0-"/2 (ex2ms 1.6.0) expanding macro: Ex2ms.fun/1 lib/ex_rated.ex:243: ExRated.delete_bucket/2 could not compile dependency :ex_rated, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile ex_rated", update it with "mix deps.update ex_rated" or clean it with "mix deps.clean ex_rated"
Installed the version of elixir and erlang per your suggestion
elixir 1.12.3 /Users/test2/Documents/SampleApps/reticulum/.tool-versions
erlang 23.3 /Users/test2/Documents/SampleApps/reticulum/.tool-versions

Any help would be appreciated.

TLS server: In state connection received CLIENT ALERT: Fatal - Bad Certificate

Hello,

Firstly, I want to say this repo is very good. Thank u very much.

And I met one problem as below:

When I follow below instructions, there will be one error:
"
run command mix phx.gen.cert it will generate key selfsigned_key.pem and certificate selfsigned.pem
rename selfsigned_key.pem to key.pem
rename selfsigned.pem to cert.pem
in reticulum directory move that two file into priv/ folder
"
All other steps I have executed normally,
But when I run "iex -S mix phx.server", there will be error in the console:

iex(1)> [info] TLS server: In state connection received CLIENT ALERT: Fatal - Bad Certificate

Then, when I changed key.pem and cert.pem back to the original dev-ssl.key and dev-ssl.cert, there will not appear the error, and the Reticulum server will run normally.

Do you have the problem? And could you pls help to figure out how to solve the problem?

Thanks.

address not available

Hi albirrkarim,
According to your process, hubs can be started normally, but hub admin and spoke cannot be started. The following error is reported

node:events:504

throw er; // Unhandled 'error' event

^

error: listen EADDRNOTAVAIL: address not available ******:8989

at Server. setupListenHandle [as _listen2] (node:net:1313:21)

at listenInCluster (node:net:1378:12)

at GetAddrInfoReqWrap. doListen [as callback] (node:net:1516:7)

at GetAddrInfoReqWrap. onlookup [as oncomplete] (node:dns:73:8)

Emitted 'error' event on Server instance at:

at emitErrorNT (node:net:1357:8)

at processTicksAndRejections (node:internal/process/task_queues:83:21) {

code: 'EADDRNOTAVAIL',

errno: -99,

syscall: 'listen',

address: '********',

port: 8989

}

I don't know about the front end. Did you encounter this problem during deployment? Please help me have a look

I dont know what it is "scene_listings"

This is now issue, just explanation for figma file.
image

Hub table have two columns (scene_id and scene_listing_id). If you have scene_listing_id=null and filled scene_id, when you update project via Spoke and publish scene, hub will get alst version of them. But if you approve scene for hub via Admin panel (and scene_listing_id filled), hub will use only specified version of this scene. Thus you have the opportunity to use one project and many scene versions for different rooms (hubs).

Error running mix ecto.create

root@e9983a04e5a0:/reticulum# mix ecto.create

20:00:07.329 [error] GenServer #PID<0.455.0> terminating
** (RuntimeError) connect raised UndefinedFunctionError exception. The exception details are hidden, as they may contain sensitive data such as database credentials. You may set :show_sensitive_data_on_connection_error to true when starting your connection if you wish to see all of the details
(crypto 5.0.5) :crypto.hmac/3
(postgrex 0.15.3) lib/postgrex/scram.ex:52: Postgrex.SCRAM.hash_password/6
(postgrex 0.15.3) lib/postgrex/scram.ex:26: Postgrex.SCRAM.verify/2
(postgrex 0.15.3) lib/postgrex/protocol.ex:734: Postgrex.Protocol.auth_cont/4
(postgrex 0.15.3) lib/postgrex/protocol.ex:579: Postgrex.Protocol.handshake/2
(db_connection 2.2.1) lib/db_connection/connection.ex:69: DBConnection.Connection.connect/2
(connection 1.0.4) lib/connection.ex:622: Connection.enter_connect/5
(stdlib 3.17) proc_lib.erl:226: :proc_lib.init_p_do_apply/3
Last message: nil
State: Postgrex.Protocol
** (Mix) The database for Ret.Repo couldn't be created: killed
root@e9983a04e5a0:/reticulum#

I checked to make sure the database is up and listening and checked the dev.exs file and everything is correct.

Run dialog Failed..

22

4.2 Run dialog is in progress.

When I type 'npm run start', the error message of the screenshot is displayed and it stops. May I know the cause or solution?

Please help.
have a good day.

npm ci stop(emojione)

hello.

Thanks for making the mozilla hubs installation tutorial.
I ran into a problem during installation following your guide.
I've searched and searched for the cause, but I can't find a solution.
I want to get help.

1.4 Hubs
Clone and install dependencies in progress
npm ci hangs while running.
No matter how many times I try, the same emojione freezes.

I attach a screenshot below.

2022-07-15 112926

After npm ci failed, I tried npm install , but it still fails. in the same section.

The failure section is attached to the screenshot above.

I am using WSL2 on Windows 10 operating system.
I am using Ubuntu 20.04.4 LTS version.

Nodejs version is 10.19.0.
elixir version is 1.12.3-otp-23 .
erlang version is 23.2.1 .

Everything else was installed according to the procedure you gave.

Any help would be appreciated.
have a good day.

Missing translation for key: "JWSError JWSInvalidSignature"

Hi

Thanks for giving this tutorial first and it is best for beginner developer.

I've almost got it setup on a self hosted server with ubuntu 20.04.

After setup this, I am facing only one error when I am trying to access admin menu in backend

spoke, hub frontend and everything else is working fine

Please check screenshot:
Screenshot at Dec 28 19-07-01

That is Missing translation for key: "JWSError JWSInvalidSignature".

I have followed you tutorial all steps.

I am trying to fix this from last 3 days and still I can't solve it as I am a beginner developer.

Can someone help me to tell what is missing in the setup of mozilla hub.

Thanks

Error: JsonWebTokenError: invalid signature

Hi

First Thanks for giving this tutorial And Its working fine.

After Setup it, I am facing error when I am trying to create room.

Please check screenshot:
Hubs error

I have updated the Ret.PermsToken in reticulum/config/prod.exs

config :ret, Ret.PermsToken,
  # This config value is for local development only.
  perms_key:
"-----BEGIN PRIVATE KEY-----\nMIIEvg***********************TjuAsTj\n-----END PRIVATE KEY-----"

Still facing same issue.

Thanks

Can't find HTML documents when visiting port 4000

I followed all the steps by the tutorial (with a little difference), I still got 503 returns when I visit by port 4000 and it shows like:
Missing file index.html. Please try again.

The difference is, I set up the server in a virtual Linux server which means it's not running locally, and I kept using host as "hubs.local" for the server's IP address. I visited it by Firefox on Windows, accepted the risk to continue. Can the reason be from those? Or maybe something else?

Missing file admin.html Error

hello.

Thanks to your tutorial, Dialog, Reticulum, Hubs(+admin), and Spoke were successfully running.
However, when I tried to test by connecting to localhost, the following message appeared.

32

And Reticulum keeps getting this error message, I don't know the cause. The error message is as below. Red text appears repeatedly.

31

I'd like to get help with a solution.

First of all, I am using Windows 10+WSL2+Ubuntu20.04 based.

And version information.
elixir : 1.12.3-otp-23
erlang : 23.2.1
nodejs : 16.16.0
npm : 8.14.0

thank you have a good day!
I am always grateful to you for making tutorials.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.