Domains
Backend-Keycloak-Service



Frontend



Recorder



Docker-Compose
services:
# *** Web-Frontend
web-frontend:
image: ${OT_FRONTEND_IMAGE_SRC:-registry.opencode.de/opentalk/web-frontend}:${OT_FRONTEND_IMAGE_TAG:-v2.7.2}
profiles: ["core", "web-frontend"]
restart: always
ports:
- ${OT_FRONTEND_EXP_PORT:-8033}:${OT_FRONTEND_PORT:-8034}
environment:
CONTROLLER_HOST: "controller.talk.domain.de"
BASE_URL: "https://talk.domain.de"
PORT: ${OT_FRONTEND_PORT:-8034}
OIDC_ISSUER: "https://keycloak.domain.de/realms/meinrealm"
OIDC_CLIENT_ID: ${OIDC_CLIENT_ID:-opentalk_frontend}
LIVEKIT_SERVER_URL: "https://livekit.talk.domain.de/"
LIVEKIT_E2EE_SALT: "${LIVEKIT_E2EE_SALT:-}"
NDT_SERVER: ${NDT_SERVER:-ndt.example.com}
CHANGE_PASSWORD_URL: "https://keycloak.domain.de/auth/realms/meinrealm/openid-connect"
ERROR_REPORT_ADDRESS: ${ERROR_REPORT_ADDRESS:-reports@example.com}
LIBRAVATAR_DEFAULT_IMAGE: ${LIBRAVATAR_DEFAULT_IMAGE:-identicon}
VIDEO_BACKGROUNDS: ${VIDEO_BACKGROUNDS:-}
IS_BETA_RELEASE: ${IS_BETA_RELEASE:-false}
FEATURE_USER_SEARCH: ${FEATURE_USER_SEARCH:-true}
FEATURE_TIMER: ${FEATURE_TIMER:-true}
FEATURE_WHITEBOARD: ${FEATURE_WHITEBOARD:-true}
FEATURE_PROTOCOL: ${FEATURE_PROTOCOL:-true}
FEATURE_RECORDING: ${FEATURE_RECORDING:-false}
WAITING_ROOM_DEFAULT_VALUE: ${WAITING_ROOM_DEFAULT_VALUE:-false}
HELPDESK_URL: "${HELPDESK_URL:-}"
CONTACT_SUPPORT_URL: "${CONTACT_SUPPORT_URL:-}"
IMPRINT_URL: ${IMPRINT_URL:-}
DATA_PROTECTION_URL: ${DATA_PROTECTION_URL:-}
SENTRY_DSN: ${SENTRY_DSN:-}
PRODUCT_VERSION: "v25.4.1"
# *** controller ***
controller:
image: ${OPENTALK_CONTROLLER_IMAGE_SRC:-registry.opencode.de/opentalk/controller}:${OPENTALK_CONTROLLER_IMAGE_TAG:-v0.32.2}
profiles: ["core", "controller"]
restart: always
ports:
- ${OPENTALK_CONTROLLER_EXP_PORT:-8090}:11311
extra_hosts:
- host.docker.internal:host-gateway
environment:
RUST_LOG: info,k3k=debug,janus_client=info,k3k_janus_media::mcu=OFF
OPENTALK_CTRL_DATABASE__URL: "postgres://${POSTGRES_USER:-ot}:${POSTGRES_PASSWORD}@${POSTGRES_HOST:-postgres}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-opentalk}"
OPENTALK_CTRL_DATABASE__MAX_CONNECTIONS: "${POSTGRES_MAX__CONNECTIONS:-100}"
OPENTALK_CTRL_HTTP__PORT: "${OPENTALK_CTRL_HTTP__PORT:-11311}"
OPENTALK_CTRL_OIDC__OIDC_ISSUER: "https://keycloak.domain.de/realms/meinrealm"
OPENTALK_CTRL_OIDC__CLIENT_ID: "opentalk_backend"
OPENTALK_CTRL_OIDC__CLIENT_SECRET: "hierkommtdergehminiskeyvombackendrein"
####OLD#OPENTALK_CTRL_USER_SEARCH__ENDPOINTS: "disabled"
####OLD#OPENTALK_CTRL_OIDC__
####OLD#OPENTALK_CTRL_KEYCLOAK__BASE_URL: "https://keycloak.domain.de"
####OLD#OPENTALK_CTRL_KEYCLOAK__REALM: "${OPENTALK_CTRL_KEYCLOAK__REALM:-meinrealm}"
####OLD#OPENTALK_CTRL_KEYCLOAK__CLIENT_ID: "opentalk_backend}"
#####OPENTALK_CTRL_KEYCLOAK__CLIENT_SECRET: "hierkommtdergehminiskeiyvombackendrein"
OPENTALK_CTRL_ROOM_SERVER_MAX_VIDEO_BITRATE: "${OPENTALK_CTRL_ROOM_SERVER_MAX_VIDEO_BITRATE:-1500000}"
OPENTALK_CTRL_ROOM_SERVER_MAX_SCREEN_BITRATE: "${OPENTALK_CTRL_ROOM_SERVER_MAX_SCREEN_BITRATE:-8000000}"
OPENTALK_CTRL_ROOM_SERVER_CONNECTIONS__TO_ROUTING_KEY: "to-janus"
OPENTALK_CTRL_ROOM_SERVER_CONNECTIONS__EXCHANGE: "janus-exchange"
OPENTALK_CTRL_ROOM_SERVER_CONNECTIONS__FROM_ROUTING_KEY: "from-janus"
OPENTALK_CTRL_ROOM_SERVER_CONNECTIONS__EVENT_LOOPS: "8"
OPENTALK_CTRL_RABBIT_MQ__URL: "${OPENTALK_CTRL_RABBIT_MQ__URL:-amqp://guest:guest@rabbit/%2F}"
OPENTALK_CTRL_RABBIT_MQ__MAIL_TASK_QUEUE: "${OPENTALK_CTRL_RABBIT_MQ__MAIL_TASK_QUEUE:-opentalk_mailer}"
OPENTALK_CTRL_RABBIT_MQ__RECORDING_TASK_QUEUE: "${OPENTALK_CTRL_RABBIT_MQ__RECORDING_TASK_QUEUE:-opentalk_recorder}"
OPENTALK_CTRL_MINIO__URI: "${OPENTALK_CTRL_MINIO__URI:-http://minio:9000}"
OPENTALK_CTRL_MINIO__BUCKET: "${OPENTALK_CTRL_MINIO__BUCKET:-opentalk}"
OPENTALK_CTRL_MINIO__ACCESS_KEY: "${OPENTALK_CTRL_MINIO__ACCESS_KEY:-minioadmin}"
OPENTALK_CTRL_MINIO__SECRET_KEY: "${OPENTALK_CTRL_MINIO__SECRET_KEY:-minioadmin}"
OPENTALK_CTRL_ENDPOINTS__EVENT_INVITE_EXTERNAL_EMAIL_ADDRESS: "${OPENTALK_CTRL_ENDPOINTS_EVENT_INVITE_EXTERNAL_EMAIL_ADDRESS:-true}"
#OPENTALK_CTRL_ENDPOINTS__USERS_FIND_USE_KC: "${OPENTALK_CTRL_ENDPOINTS_USERS_FIND_USE_KC:-false}"
#OPENTALK_CTRL_ENDPOINTS__DISABLE_USER_FIND: "${OPENTALK_CTRL_ENDPOINTS__DISABLE_USER_FIND:-false}"
OPENTALK_CTRL_SPACEDECK__URL: "${SD_ENDPOINT:-}"
OPENTALK_CTRL_SPACEDECK__API_KEY: "${SPACEDECK_API_TOKEN:-}"
OPENTALK_CTRL_ETHERPAD__URL: "${EP_ENDPOINT:-}"
OPENTALK_CTRL_ETHERPAD__API_KEY: "${ETHERPAD_API_KEY:-}"
OPENTALK_CTRL_CALL_IN__TEL: "${OPENTALK_CTRL_CALL_IN__TEL:-}"
OPENTALK_CTRL_CALL_IN__DEFAULT_COUNTRY_CODE: "${OPENTALK_CTRL_CALL_IN__DEFAULT_COUNTRY_CODE:-DE}"
OPENTALK_CTRL_CALL_IN__ENABLE_PHONE_MAPPING: "${OPENTALK_CTRL_CALL_IN__ENABLE_PHONE_MAPPING:-false}"
OPENTALK_CTRL_SUBROOM_AUDIO__ENABLE_WHISPER: "${OPENTALK_CTRL_SUBROOM_AUDIO__ENABLE_WHISPER:-false}"
volumes:
- ${OPENTALK_CONTROLLER_CONFIG_FILE:-./config/controller.toml/controller_oidc.toml}:/controller/controller.tom
