5 unstable releases
new 0.13.0-alpha | Apr 9, 2024 |
---|---|
0.12.0-alpha.1 | Apr 2, 2024 |
0.12.0-alpha | Mar 18, 2024 |
0.11.0 | Apr 9, 2024 |
0.11.0-rc.2 | Apr 2, 2024 |
#406 in Database interfaces
457 downloads per month
Used in 2 crates
(via opentalk-database)
19KB
468 lines
OpenTalk Controller
See the administration guide for more information.
Configuration
See the configuration chapter of the administration guide for more information.
An example configuration is available in the extra/example.toml
(extra/
example.toml) file. It can be copied to the root directory:
cp ./extra/example.toml ./config.toml
Upgrading
See the migration guide for information about upgrading.
Build the container image
The Dockerfile
is located at container/Dockerfile
.
To build the image, execute in the root of the repository:
docker build -f container/Dockerfile . --tag <your tag>
Sub-crates
Inside the crates folder following crates can be found:
- controller
- core crate which contains all of the controllers core features
- OpenID Connect user authentication
- Database connection and interfacing
actix_web
based HTTP servers for external and internal APIs- Extensible signaling websocket endpoint for video room signaling
- controller-settings
- Settings for the controller
- db-storage
- Database types used for the controller and modules
- janus-media
- media signaling module using the
janus-client
crate
- media signaling module using the
- jobs
- Job execution system for maintenance tasks such as removing old meeting information according to GDPR legislation
- community-modules
- functionality for registering all modules in the community edition
- depends on all modules in the community edition
- chat
- chat signaling module which implements a simple room, group and private chat
- automod
- signaling module implementing automoderation for videoconferences
- legal-vote
- signaling module implementing legal vote for videoconferences
- polls
- signaling module implementing polls for videoconferences
- client EXPERIMENTAL
- Client side implementation of the controllers APIs used for testing
- r3dlock
- redis redlock distributed lock implementation for a single instance
- janus-client
- janus client library for interfacing with the Janus WebRTC Server
- kustos
- authz abstraction based on casbin-rs
- test-util
- types
- types that are shared across different crates, such as Web API and signaling messages
lib.rs
:
Contains the application settings.
The application settings are set with a TOML config file. Settings specified in the config file
can be overwritten by environment variables. To do so, set an environment variable
with the prefix OPENTALK_CTRL_
followed by the field names you want to set. Nested fields are separated by two underscores __
.
OPENTALK_CTRL_<field>__<field-of-field>...
Example
set the database.url
field:
OPENTALK_CTRL_DATABASE__URL=postgres://postgres:password123@localhost:5432/opentalk
So the field 'database.max_connections' would resolve to:
OPENTALK_CTRL_DATABASE__MAX_CONNECTIONS=5
Note
Fields set via environment variables do not affect the underlying config file.
Implementation Details:
Setting categories, in which all properties implement a default value, should also implement the Default
trait.
Dependencies
~42MB
~465K SLoC