OpenTalk v25.3.1
- Release date: 2025-11-04
- Release series: 25.3
- Previous release: v25.3.0+security-patch.1
Component versions
| Category | Component | Version |
|---|---|---|
| Frontend | web-frontend | v2.6.4 |
| Services | controller | v0.31.2 |
| Services | obelisk | v0.20.6 |
| Services | recorder | v0.15.1-1 |
| Services | smtp-mailer | v0.15.2 |
| Integrations | outlook-add-in | v0.2.6-1 |
| Documentation | ot-setup | v25.3.1 |
| 3rd-Party Components | ot-spacedeck | v2.0.2-1 |
| 3rd-Party Components | ot-etherpad | v2.0.2 |
| 3rd-Party Components | livekit-server | v1.9.1 |
| 3rd-Party Components | keycloak | v26.3.2 |
| 3rd-Party Components | postgres | v16.10.0 |
| 3rd-Party Components | rabbitmq | v4.1.2 |
| 3rd-Party Components | redis | v8.0.3 |
| 3rd-Party Components | minio | RELEASE.2025-06-13T11-33-47Z |
web-frontend v2.6.4
🐛 Bug fixes
- (screen-share) Pass the configured resolution (!2599)
- (waiting-room) Prevent disabling media controls (!2589)
- Hide sip text field in meeting details when not available (!2551)
- (screen-share) Bring back audio option (!2585)
- Change decline label for recurring events (!2575)
- (subroom-audio) Prevent media buttons from deactivating when leaving whisper group (!2525)
- Moving into the waiting room causes a hangup (!2591)
⚙ Miscellaneous
- (livekit) Rework reconnection process (!2589)
- (subroom-audio) Fix indicator and declining message content (!2531)
Ci
- Upgrade packages during image build (!2617)
web-frontend v2.6.3
🐛 Bug fixes
- Active ui on browser screen share stop (!2497)
- Redirect back to page is broken after user re-auth (!2522)
- Training participants default values (!2522)
- Breakout rooms are stopping without reason (!2532)
- ExitingRoomContext action breaks room entering (!2560)
- Keyboard interaction for participant menu (!2309)
web-frontend v2.6.2
🐛 Bug fixes
- (chat) Display missing join/leave events (#2756)
controller v0.31.2
⚙ Miscellaneous
- (ci) Update opentalk-ci-doc-updater image to 0.2.0
- Update default ci and container image to Debian Trixie (#1107)
controller v0.31.1+security-patch.1
🐛 Bug fixes
📦 Dependencies
Security Patch
- update base image to Debian trixie
controller v0.31.0
🚀 New features
- (migrations) Add migration to update ends_at for recurring events (!1609, bugs#113)
- (metrics) Show warning on metrics denial (!1616, #1051)
- (metrics) Add room life time (!1620)
- (metrics) Add participant meeting time (!1620)
- (metrics) Add participants per room (!1620)
- (settings) Add
Frontendto config (!1627, #1052) - (settings) Add
OperatorInformationto config (!1627, #1052) - (settings) Update
example/controller.toml(!1627, #1052) - (cli) Print license information (!1573)
- (chat) Chunk message history and add server side history search (!1637, #1071, bugs#137)
- (timezone) Determine fallback timezone from configuration and/or environment variables (!1671, #1090)
- (control) Kick participants when they exceed the websocket rate limit (!1655, #1072)
- (auth) Implement guests_allowed module feature (!1704, #1082)
- (api) Add GET /events/instances endpoint (!1632, #1061)
- (roomserver) Add experimental start endpoints for the roomserver signaling (!1621, #994)
- (roomserver) Set experimental roomserver modules via config (!1652, #1083)
🐛 Bug fixes
- (config) Install configuration to /etc/opentalk/controller.toml in container (!1612, #1059)
- (migrations) Check for invalid quotas, modules and features for tariffs (!1613, #772)
- (metrics) Add content type for the metrics endpoint (!1617)
- (api) Make paginated query work in async trait functions (!1619)
- (api) Don't expose expired invite links in meeting details (!1645, #1074)
- (api) Fix
NoBreakoutRoomserror on start_invited endpoint (!1649) - (oidc) Compare e-mail address in lowercase when updating user from OIDC information (!1656, #1084)
- (auth) User creation race condition resulting in unique constraint violation (!1662, #1086)
- (db) Properly compare expiration date for valid room invites (!1665)
- (db) User creation race condition which is still present in database transaction (!1670, #1094)
- (chat) Redis args for last seen timestamps (!1637, #1071)
- (oidc) Handle optional
expfield (!1667, #1092) - (recording) Improve error message when recorder is unavailable (!1615)
📚 Documentation
- (openapi) Align documentation with behavior (!1697, #1097)
- (config) Improve consistency and documentation of user search configuration (!1610, #1058)
- (config) Add
operator_informationsection to admin docs (!1715, #1109) - (config) Add
frontendsection to admin docs (!1716, #1110) - (config) Use default values as examples in example.toml (!1642, #869)
- Change index of admin docs to clarify requirement of redis and rabbitmq (!1719, #1098)
- Make links to Keycloak documentation point to latest (!1717, #1095)
- Fix some rough edges in the documentation (!1623)
🔨 Refactor
- (metric) Restructure metric initialization (!1620)
- (database) Return vec instead of single item from module resource patch function (!1630, #1070)
- (database) Create opentalk-inventory database abstraction layer (!1631, #1068)
- (recording) Move module into a separate crate (!1638)
- (inventory) Use inventory interface instead of direct database access (!1614, #1069)
- (chat) Move
RoomPrivateChatHistoryto a separate module (!1637, #1071) - (tariff) Enforce tariff features consistently in all locations (!1700, #1103)
- (code) Remove unused api v1 streaming services file (!1657)
📦 Dependencies
- Update all dependencies to the latest version possible (!1679)
- Update alpine docker tag to v3.22 (!1611)
- Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.89.0 (!1634, !1690)
- Update opentalk-types (!1604)
- Update pre-commit hook daveshanley/vacuum to v0.17.8 (!1673, !1668, !1658, !1651)
- Update pre-commit hook embarkstudios/cargo-deny to v0.18.4 (!1705)
- Update pre-commit hook pre-commit/pre-commit-hooks to v6 (!1691)
- Update redocly/cli docker tag to v1.34.5 (!1660, !1635)
- Update rust crate async-trait to v0.1.89 (!1706)
- Update rust crate aws-sdk-s3 to v1.102.0 (!1702)
- Update rust crate bincode to v2 (!1534)
- Update rust crate cargo_metadata to 0.21 (!1647, !1606)
- Update rust crate clap to v4.5.45 (!1699, !1696)
- Update rust crate config to v0.15.14 (!1701)
- Update rust crate md5 to 0.8 (!1633)
- Update rust crate sysinfo to 0.37 (!1693, !1648)
- Update rust crate tabled to 0.20 (!1618)
- Update rust crate tempfile to v3.21.0 (!1714)
- Update rust crate toml to 0.9 (!1646)
- Update rust crate uuid to v1.18.0 (!1695)
- Downgrade lapin and lapin-pool for now while the new versions are broken (!1688, #1101)
- Lock file maintenance (!1709, !1676, !1694)
⚙ Miscellaneous
- Update pre-commit hooks (!1644)
- Update to rust edition 2024 (!1643)
- Add ignoreDeps renovate rule for actix-web-actors (!1674)
- Fix clippy lints (!1676, !1687)
- (ci) Remove rabbitmq service from check:docs-generated-parts job (!1628)
obelisk v0.20.6
Security Patch
- update base image to Debian Trixie
obelisk v0.20.5+security-patch.1
🐛 Bug fixes
- Mute microphone when recording is active and consent is pending (#208)
Security Patch
- update base image to Debian trixie
obelisk v0.20.5
🐛 Bug fixes
- Mute microphone when recording is active and consent is pending (#208)
obelisk v0.20.3
🐛 Bug fixes
- Use workaround to include padding in STUN attribute value lengths (!304)
smtp-mailer v0.15.2
⚙ Miscellaneous
- Update default ci and container image to Debian Trixie (#146)
smtp-mailer v0.15.1+security-patch.1
🐛 Bug fixes
⚙ Miscellaneous
- Ignore unmaintained warning
Security Patch
- update base image to Debian trixie
smtp-mailer v0.15.0
🚀 New features
- Print license information (!438)
📦 Dependencies
- (deps) Lock file maintenance (!463, !469, !473, !477, !479, !482, !486, !491, !497, !502, !510, !519)
- (deps) Update alpine docker tag to v3.22 (!462)
- (deps) Update git.opentalk.dev:5050/opentalk/backend/containers/rust docker tag to v1.89.0 (!507, !478)
- (deps) Update pre-commit hook adrienverge/yamllint to v1.37.1 (!488)
- (deps) Update pre-commit hook embarkstudios/cargo-deny to v0.18.4 (!517, !487)
- (deps) Update pre-commit hook pre-commit/pre-commit-hooks to v6 (!509)
- (deps) Update rust crate anyhow to v1.0.99 (!513)
- (deps) Update rust crate clap to v4.5.45 (!514, !512, !505, !499, !485, !470)
- (deps) Update rust crate config to v0.15.14 (!515, !484, !483)
- (deps) Update rust crate css-inline to 0.17.0 (!496, !489, !476)
- (deps) Update rust crate lapin to v2.5.4 (!493)
- (deps) Update rust crate lettre to v0.11.18 (!498)
- (deps) Update opentalk-types rust crates (!506, !492, !503, !504)
- (deps) Update rust crate rstest to 0.26.0 (!495)
- (deps) Update rust crate serde_json to v1.0.143 (!520, !500)
- (deps) Update rust crate snafu to v0.8.7 (!521)
- (deps) Update rust crate tokio to v1.46.0 (!480)
- (deps) Update rust crate uuid to v1.18.0 (!511)
⚙ Miscellaneous
- Move back to single crate structure (!464)
- Add cargo-machete to ci and pre-commit (!466)
- (justfile) Include the update-changelog job in prepare-release (!522)
ot-setup v25.3.1
Changed
- Update container image versions related to the product version v25.3.1.
ot-setup v25.3.0
Changed
- Update container image versions related to the product version v25.3.0.
Migration Guide OpenTalk Product Version v25.3
This guide describes how to migrate from earlier OpenTalk product versions to v25.3. It is assumed that all subsequent commands are executed from the deployment directory /opt/opentalk.
1. Backup data and prepare migration
Create a Dump of the controller database and remove old database files so that they do not interfere later. Run the following command to create a dump of the existing controller database. The dump file will be saved in /var/tmp/ with a timestamp in its filename. Feel free to change the destination path.
1.1 Backup/Dump controller database
docker compose exec -T postgres pg_dump -U ot -d opentalk > /var/tmp/pg_dump_controller_db_$(date +%Y-%m-%d_%H-%M-%S).sql
1.2 Backup/Export Keycloak Realms
docker compose exec -T keycloak /opt/keycloak/bin/kc.sh export --realm opentalk --file /opt/keycloak/data/import/export_realm_opentalk-$(date +%Y-%m-%d_%H-%M-%S).json
1.3 Backup MinIO and rename bucket
Newer MinIO versions do not support bucket names containing an underscore ("_"). Previously, the default bucket name was s3_bucket and therefore must be renamed. Starting with OpenTalk v25.3, the default bucket name is now opentalk. If you are still using s3_bucket, perform the following steps to rename it to opentalk.
docker compose stop minio
tar -czf /var/tmp/minio-backup_$(date +%Y-%m-%d_%H-%M-%S).tar.gz ./data/minio
docker compose start minio
Rename MinIO Bucket:
docker compose exec -T minio sh -c "
chmod +x /opt/bin/mc &&
mc alias set local http://localhost:9000 \$MINIO_ROOT_USER \$MINIO_ROOT_PASSWORD &&
mc mb local/opentalk &&
mc mirror --overwrite local/s3_bucket local/opentalk &&
mc rb --force local/s3_bucket
"
Change config to opentalk as bucket name:
sed -i 's/s3_bucket/opentalk/g' config/controller.toml .env
1.4 Stop Container Services
docker compose down
1.5 Remove existing PostgreSQL and Keycloak data
rm -rf data/pg_data/*
rm -rf data/kc_data/h2/*
2. Upgrade to Product Version v25.3.x
2.1 Checkout git tag v25.3.x
Replace tag with the appropriate target version.
git checkout v25.3.x
2.2 Start the PostgreSQL container with its new version
Start only the PostgreSQL container to prepare for the restore:
docker compose up -d postgres
2.3 Restore the Database
Restore the previously created dump into the new PostgreSQL 16 instance: (Replace the file with your actual dump filename.)
docker compose exec -T postgres psql -U ot -d opentalk < /var/tmp/pg_dump_controller_db_<timestamp>.sql
2.4 Start Keycloak und KC Database containers
When Keycloak starts it automatically imports the previously exported realm JSON (see step 1.2) from its import directory and initializes the new database. No manual action required. For details on realm import behavior, consult the official Keycloak import/export documentation.
docker compose up -d keycloak postgres-kc
Check the Keycloak logs and wait until the Keycloak realm import has finished before proceeding to the next step.
2.5 Start All Services
Finally, start all containers again:
docker compose up -d
ot-etherpad v2.0.2
🐛 Bug fixes
⚙ Miscellaneous
Ci
- Update packages when building container (!19)
ot-etherpad v2.0.1
livekit-server v1.9.1
Generation of this document was supported by retoki.