Files
computer-playbook/roles/web-app-opentalk/templates/controller.toml.j2
kevinveenbirkenbachandClaude Opus 5.5 09b594b102 fix(web-app-opentalk): run product version 26.2.1 and follow its bundle
The web frontend, the controller and the recorder were pinned to v2.9.0,
v0.34.1 and v0.16.2, a mix of the 26.2 and the 26.1 line, and excluded
from the image updater with nocheck: docker-version. Nothing moved them.

They now sit on the set OpenTalk publishes as product version 26.2.1 in
ot-setup (v2.9.2, v0.34.5, v0.17.5), and each pin names that bundle as its
version source, so the three move together with the next product version.
The markers are gone.

Recorder v0.17 no longer reads recording jobs from RabbitMQ or logs in
with an OIDC service account. The controller starts recordings on the
recorder's REST API and both sides authenticate with API keys:
recorder.toml.j2 names the controller and the recorder's own key,
controller.toml.j2 enables roomserver.modules.recording, the secret
recorder_api_secret replaces recorder_oidc_client_secret and the Keycloak
client opentalk-recorder is no longer created.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 10:30:48 +02:00

62 lines
2.1 KiB
Django/Jinja

# OpenTalk controller configuration.
# Reference: https://docs.opentalk.eu/admin/controller/core/configuration/
[frontend]
base_url = "{{ OPENTALK_URL }}"
[http]
port = {{ OPENTALK_CTRL_INTERNAL_PORT }}
service_api_keys = [{ "id" = "{{ OPENTALK_CTRL_SERVICE_API_KEY_ID }}", "secret" = "{{ OPENTALK_CTRL_SERVICE_API_SECRET }}" }]
[database]
url = "postgres://{{ lookup('database', application_id, 'username') }}:{{ lookup('database', application_id, 'password') }}@{{ lookup('database', application_id, 'host') }}:{{ lookup('database', application_id, 'port') }}/{{ lookup('database', application_id, 'name') }}"
max_connections = 100
[oidc]
authority = "{{ OIDC.CLIENT.ISSUER_URL }}"
[oidc.frontend]
client_id = "{{ OIDC.CLIENT.ID }}"
[oidc.controller]
client_id = "{{ OPENTALK_CTRL_OIDC_CLIENT_ID }}"
client_secret = "{{ OPENTALK_CTRL_OIDC_CLIENT_SECRET }}"
[user_search]
backend = "keycloak_webapi"
api_base_url = "{{ OPENTALK_KEYCLOAK_BASE_URL }}/admin/realms/{{ OPENTALK_KEYCLOAK_REALM }}"
client_id = "{{ OPENTALK_KEYCLOAK_CLIENT_ID }}"
client_secret = "{{ OPENTALK_KEYCLOAK_CLIENT_SECRET }}"
users_find_behavior = "from_user_search_backend"
[roomserver]
kind = "internal"
[roomserver.modules]
[roomserver.modules.livekit]
public_url = "wss://{{ OPENTALK_DOMAIN }}/livekit"
service_url = "http://livekit:{{ OPENTALK_LIVEKIT_HTTP_PORT }}"
api_key = "{{ OPENTALK_LIVEKIT_API_KEY }}"
api_secret = "{{ OPENTALK_LIVEKIT_API_SECRET }}"
[roomserver.modules.recording]
url = "http://recorder:{{ OPENTALK_RECORDER_HTTP_PORT }}"
api_key = { id = "{{ OPENTALK_RECORDER_API_KEY_ID }}", secret = "{{ OPENTALK_RECORDER_API_SECRET }}" }
[roomserver.modules.echo]
[roomserver.modules.chat]
[roomserver.modules.polls]
[roomserver.modules.timer]
[redis]
url = "{{ lookup('engine', 'redis', application_id, 'url') }}"
[minio]
uri = "{{ lookup('objstore', application_id, 'url') }}"
bucket = "{{ lookup('objstore', application_id, 'bucket') }}"
access_key = "{{ lookup('objstore', application_id, 'access_key') }}"
secret_key = "{{ lookup('objstore', application_id, 'secret_key') }}"
[rabbit_mq]
url = "amqp://guest:guest@rabbit/%2F"
mail_task_queue = "opentalk_mailer"