26 releases (14 breaking)
0.28.2 | Jan 28, 2025 |
---|---|
0.28.0 | Dec 12, 2024 |
0.27.0 | Nov 20, 2024 |
0.17.0-rc.1 | Jul 19, 2024 |
0.12.0-alpha | Mar 18, 2024 |
#274 in Configuration
Used in opentalk-database
31KB
754 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
- 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
- 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
~43MB
~464K SLoC