27 releases (15 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.0.0 | Feb 8, 2023 |
#432 in Database interfaces
1,614 downloads per month
56KB
1K
SLoC
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
example/controller.toml file. It can be copied to the root directory:
cp ./example/controller.toml ./controller.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_webbased 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
OpenTalk Controller API Specification
The <docs/developer/api.yaml> file contains the OpenTalk API specification formalized in OpenAPI format.
Checking the consistency with Spectral
Stoplight Spectral is a linter tool for structured data such as JSON and YAML. It contains built-in support to ensure the consistency of an OpenAPI specification. These checks go far beyond what most other linters detect, resulting in significantly higher consistency of the OpenAPI specification.
Running the checks locally
Prerequisites
The subsequent commands assume that the project root is stored in the environment variable PROJECT_ROOT like this:
export PROJECT_ROOT="/path/to/opentalk/controller"
Alternatively if the project root is the current directory:
export PROJECT_ROOT="$(pwd)"
With spectral installed
spectral lint --ruleset "$PROJECT_ROOT"/ci/spectral/openapi.yml "$PROJECT_ROOT"/docs/developer/api.yaml
With the stoplight/spectral Docker image
docker run --rm -it -v "$PROJECT_ROOT":/tmp stoplight/spectral lint --ruleset /tmp/ci/spectral/openapi.yml /tmp/api/controller/frontend_api.yaml
Dependencies
~66MB
~785K SLoC