You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jul 17, 2024. It is now read-only.
Copy file name to clipboardexpand all lines: README.md
+20-20
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
1
# Videoroom
2
2
3
3
Videoroom is an open-source, basic video conferencing platform using WebRTC.
4
-
It is based on [jellyfish](https://github.com/jellyfish-dev/jellyfish), a general-purpose media server.
5
-
Videoroom may be a good starting point for building your own real-time communication solution using Elixir and Jellyfish.
4
+
It is based on [fishjam](https://github.com/fishjam-dev/fishjam), a general-purpose media server.
5
+
Videoroom may be a good starting point for building your own real-time communication solution using Elixir and Fishjam.
6
6
7
7
## Running with Docker
8
8
The simplest way to run videoroom is with use of Docker.
@@ -15,9 +15,9 @@ docker compose --env-file .env.example up
15
15
16
16
Make sure to have installed [Elixir](https://elixir-lang.org/install.html) and [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) first.
17
17
18
-
Running the Videoroom requires connecting to an instance of [Jellyfish Server](https://github.com/jellyfish-dev/jellyfish).
18
+
Running the Videoroom requires connecting to an instance of [Fishjam Server](https://github.com/fishjam-dev/fishjam).
19
19
20
-
When running locally, you can start an instance of Jellyfish inside docker using docker compose.
20
+
When running locally, you can start an instance of Fishjam inside docker using docker compose.
21
21
22
22
```sh
23
23
EXTERNAL_IP=<your ip inlocal network> docker compose -f docker-compose-dev.yaml up
@@ -27,26 +27,26 @@ Now you can start the Videoroom backend:
27
27
- Run `mix setup` to install and setup dependencies
28
28
- Start Phoenix server with `mix phx.server`
29
29
30
-
When running the build version of the Phoenix app, you must specify the addresses of the Jellyfish and backend service.
30
+
When running the build version of the Phoenix app, you must specify the addresses of the Fishjam and backend service.
31
31
As well as the authentication token via the environment variables:
32
32
33
33
```sh
34
-
BE_JF_ADDRESSES=<IP_ADDRESS1>:<PORT1> OR <DOMAIN1><IP_ADDRESS2>:<PORT2> OR <DOMAIN2>#Example of using two jellyfishes: `127.0.0.1:5002 room.fishjam.ovh`, if not provided in dev environment `localhost:5002 localhost:5003` is used.
35
-
BE_JF_SERVER_API_TOKEN=<TOKEN>#This must be the same token that was setup in jellyfish. In `docker-compose-dev.yaml` we setup `development` and this variable is used by default in `dev` environment
34
+
BE_JF_ADDRESSES=<IP_ADDRESS1>:<PORT1> OR <DOMAIN1><IP_ADDRESS2>:<PORT2> OR <DOMAIN2>#Example of using two fishjams: `127.0.0.1:5002 room.fishjam.ovh`, if not provided in dev environment `localhost:5002 localhost:5003` is used.
35
+
BE_JF_SERVER_API_TOKEN=<TOKEN>#This must be the same token that was setup in fishjam. In `docker-compose-dev.yaml` we setup `development` and this variable is used by default in `dev` environment
36
36
```
37
37
38
38
Optionally, in production, these variables can be set:
39
39
*`BE_PEER_JOIN_TIMEOUT` - can be used to limit the period in which a new peer must join the meeting,
40
-
*`BE_JF_SECURE_CONNECTION` - enforces connecting the backend to jellyfish through `wss` protocol,
40
+
*`BE_JF_SECURE_CONNECTION` - enforces connecting the backend to fishjam through `wss` protocol,
41
41
*`BE_HOST` - address of backend
42
-
*`JF_CHECK_ORIGIN` - define whether jellyfish should check origin of incoming requests
42
+
*`JF_CHECK_ORIGIN` - define whether fishjam should check origin of incoming requests
43
43
44
44
45
45
Next you have to start a Videoroom frontend:
46
46
- Run `npm ci --prefix=assets` to install and setup dependencies
47
47
- Start vite server with `npm run dev --prefix=assets`
48
48
49
-
Now you have all needed components to use jellyfish videoroom.
49
+
Now you have all needed components to use fishjam videoroom.
50
50
51
51
## Production
52
52
@@ -56,21 +56,21 @@ You can copy the `.env.example` file to `.env` and adjust it to your needs.
56
56
57
57
## Deployment with load-balancing
58
58
59
-
`docker-compose.yaml` allows to run a jellyfish videoroom with multiple jellyfishes but all of that runs on the same machine.
59
+
`docker-compose.yaml` allows to run a fishjam videoroom with multiple fishjams but all of that runs on the same machine.
60
60
For properly using load-balancing two machines will be needed and `docker-compose-deploy.yaml` will be used.
61
61
You can see our deployment workflow [here](.github/workflows/test_build_and_deploy.yml).
62
62
This deployment is pretty simple.
63
-
All containers besides `jellyfish2` are started on node1 and `jellyfish2` is started on node2.
63
+
All containers besides `fishjam2` are started on node1 and `fishjam2` is started on node2.
64
64
All environment variables used in our deployment are presented below:
65
65
66
66
```sh
67
67
DOMAIN=<FRONTEND_DOMAIN>
68
-
JF1_IP=<NODE1_IP># IP address of first node on which jellyfish will be run
69
-
JF2_IP=<NODE2_IP># IP address of second node on which jellyfish will be run
70
-
JF_SERVER_API_TOKEN=<API_TOKEN>#The same API token is used for all jellyfishes
71
-
JF1_HOST=<DOMAIN_JELLYFISH1> OR <JF1_IP>:<JELLYFISH1_PORT># Value passed to jellyfish and returns by it when creating a room on this speicific jellyfish
72
-
JF2_HOST=<DOMAIN_JELLYFISH2> OR <JF2_IP>:<JELLYFISH2_PORT>
73
-
BE_JF_ADDRESSES=<JF1_HOST><JF2_HOST>#Used by backend to create a notifier to one of jellyfishes
68
+
JF1_IP=<NODE1_IP># IP address of first node on which fishjam will be run
69
+
JF2_IP=<NODE2_IP># IP address of second node on which fishjam will be run
70
+
JF_SERVER_API_TOKEN=<API_TOKEN>#The same API token is used for all fishjams
71
+
JF1_HOST=<DOMAIN_FISHJAM1> OR <JF1_IP>:<FISHJAM1_PORT># Value passed to fishjam and returns by it when creating a room on this speicific fishjam
72
+
JF2_HOST=<DOMAIN_FISHJAM2> OR <JF2_IP>:<FISHJAM2_PORT>
73
+
BE_JF_ADDRESSES=<JF1_HOST><JF2_HOST>#Used by backend to create a notifier to one of fishjams
74
74
PROMETHEUS_TARGETS=<JF1_IP>:9568,<JF2_IP>:9568 #Addresses on which prometheus will query for data
75
75
BE_HOST=<BACKEND_DOMAIN>
76
76
GF_SECURITY_ADMIN_PASSWORD=<GRAFANA_PASSWORD>
@@ -83,9 +83,9 @@ JF_CHECK_ORIGIN=false
83
83
84
84
We use [Divo](https://hexdocs.pm/divo/readme.html) in tests, which is responsible for starting docker containers.
85
85
86
-
When running locally run tests using `mix test`, which starts Jellyfish in a container.
86
+
When running locally run tests using `mix test`, which starts Fishjam in a container.
87
87
88
-
On CI both Jellyfish and the tests are run inside docker. If needed, e.g. when the tests are failing on the CI, but not locally you can simulate those conditions with `mix integration_test`.
88
+
On CI both Fishjam and the tests are run inside docker. If needed, e.g. when the tests are failing on the CI, but not locally you can simulate those conditions with `mix integration_test`.
0 commit comments