Skip to content

Commit f79d7cf

Browse files
committed
Add deployment options section
1 parent 1c233b8 commit f79d7cf

File tree

3 files changed

+29
-65
lines changed

3 files changed

+29
-65
lines changed

README.md

Lines changed: 29 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -48,76 +48,40 @@ organize the flow of the meeting.
4848
engagement and interactivity to the conversation.
4949

5050

51-
```sh
52-
cp config/config.sample.json public/config.json
53-
# edit public/config.json
54-
```
51+
## 🚀 Deployment Options
5552

56-
The sample needs editing to contain the homeserver and LiveKit backend that you
57-
are using.
53+
Element Call can be packaged in two ways:
5854

59-
Because Element Call uses client-side routing, your server must be able to route
60-
any requests to non-existing paths back to `/index.html`. For example, in Nginx
61-
you can achieve this with the `try_files` directive:
55+
**Full Package** – Supports both **Standalone** and **Widget** mode. Hosted as
56+
a static web page and accessed via a URL when used as a widget.
6257

63-
```jsonc
64-
server {
65-
...
66-
location / {
67-
...
68-
try_files $uri /$uri /index.html;
69-
}
70-
}
71-
```
58+
**Embedded Package** – Designed for **Widget mode** only. Bundled with a
59+
messenger app for seamless integration. This is the recommended method for
60+
embedding Element Call into a messenger app.
7261

73-
Element Call requires a homeserver with registration enabled without any 3pid or
74-
token requirements, if you want it to be used by unregistered users.
75-
Furthermore, it is not recommended to use it with an existing homeserver where
76-
user accounts have joined normal rooms, as it may not be able to handle those
77-
yet and it may behave unreliably.
78-
79-
Therefore, to use a self-hosted homeserver, this is recommended to be a new
80-
server where any user account created has not joined any normal rooms anywhere
81-
in the Matrix federated network. The homeserver used can be setup to disable
82-
federation, so as to prevent spam registrations (if you keep registrations open)
83-
and to ensure Element Call continues to work in case any user decides to log in
84-
to their Element Call account using the standard Element app and joins normal
85-
rooms that Element Call cannot handle.
86-
87-
## Configuration
88-
89-
There are currently two different config files. `.env` holds variables that are
90-
used at build time, while `public/config.json` holds variables that are used at
91-
runtime. Documentation and default values for `public/config.json` can be found
92-
in [ConfigOptions.ts](src/config/ConfigOptions.ts).
93-
94-
If you're using [Synapse](https://github.com/element-hq/synapse/), you'll need
95-
to additionally add the following to `homeserver.yaml` or Element Call won't
96-
work:
97-
98-
```yaml
99-
experimental_features:
100-
# MSC3266: Room summary API. Used for knocking over federation
101-
msc3266_enabled: true
102-
# MSC4222 needed for syncv2 state_after. This allow clients to
103-
# correctly track the state of the room.
104-
msc4222_enabled: true
105-
106-
# The maximum allowed duration by which sent events can be delayed, as
107-
# per MSC4140.
108-
max_event_delay_duration: 24h
109-
110-
rc_message:
111-
# This needs to match at least the heart-beat frequency plus a bit of headroom
112-
# Currently the heart-beat is every 5 seconds which translates into a rate of 0.2s
113-
per_second: 0.5
114-
burst_count: 30
115-
```
62+
### Standalone mode
63+
64+
![Element Call in Standalone Mode](./docs/element_call_standalone.drawio.png)
65+
66+
In Standalone mode Element Call operates as an independent, full-featured video
67+
conferencing web application, allowing users to join or host calls without
68+
requiring a separate Matrix client.
69+
70+
71+
### Widget mode embedded in Messenger Apps
72+
73+
![Element Call in Widget Mode](./docs/element_call_widget.drawio.png)
74+
75+
Element Call can be embedded as a widget inside apps like
76+
[**Element Web**](https://github.com/element-hq/element-web) or **Element X
77+
([iOS](https://github.com/element-hq/element-x-ios),
78+
[Android](https://github.com/element-hq/element-x-android))**, bringing
79+
**MatrixRTC** capabilities to messenger apps for seamless decentralized video
80+
and voice calls within Matrix rooms.
81+
82+
> [!IMPORTANT]
83+
> Embedded packaging is recommended for Element Call in widget mode!
11684
117-
MSC3266 allows to request a room summary of rooms you are not joined. The
118-
summary contains the room join rules. We need that to decide if the user gets
119-
prompted with the option to knock ("Request to join call"), a cannot join error or the
120-
join view.
12185

12286
MSC4222 allow clients to opt-in to a change of the sync v2 API that allows them
12387
to correctly track the state of the room. This is required by Element Call to
908 KB
Loading
865 KB
Loading

0 commit comments

Comments
 (0)