commit
a9d78ea908
@ -30,9 +30,7 @@ MINIO_SECRET_KEY=minioadmin
|
||||
MONGO_ADMIN_USERNAME=mongoadmin
|
||||
MONGO_ADMIN_PASSWORD=mongoadmin
|
||||
|
||||
# Default App (OpenVidu Call)
|
||||
CALL_PRIVATE_ACCESS=false
|
||||
CALL_USER=
|
||||
CALL_SECRET=
|
||||
CALL_ADMIN_USER=admin
|
||||
CALL_ADMIN_SECRET=admin
|
||||
# OpenVidu Meet configuration.
|
||||
MEET_INITIAL_ADMIN_USER=admin
|
||||
MEET_INITIAL_ADMIN_PASSWORD=admin
|
||||
MEET_INITIAL_API_KEY=meet-api-key
|
||||
|
||||
@ -1,16 +1,22 @@
|
||||
# Docker image of the agent.
|
||||
docker_image: docker.io/openvidu/agent-speech-processing:3.3.0
|
||||
docker_image: docker.io/openvidu/agent-speech-processing:main
|
||||
|
||||
# Whether to run the agent or not.
|
||||
enabled: false
|
||||
|
||||
# Maximum CPU load threshold for the agent to accept new jobs. Value between 0 and 1.
|
||||
load_threshold: 1.0
|
||||
|
||||
# Log level for the agent [DEBUG, INFO, WARNING, ERROR, CRITICAL]
|
||||
log_level: INFO
|
||||
|
||||
live_captions:
|
||||
# How this agent will connect to Rooms [automatic, manual]
|
||||
# - automatic: the agent will automatically connect to new Rooms.
|
||||
# - manual: the agent will connect to new Rooms only when your application dictates it by using the Agent Dispatch API.
|
||||
processing: automatic
|
||||
|
||||
# Which speech-to-text AI provider to use [aws, azure, google, opeanai, groq, deepgram, assemblyai, fal, clova, speechmatics, gladia, sarvam]
|
||||
# Which speech-to-text AI provider to use [aws, azure, google, openai, groq, deepgram, assemblyai, fal, clova, speechmatics, gladia, sarvam, spitch]
|
||||
# The custom configuration for the selected provider must be set below
|
||||
provider:
|
||||
|
||||
@ -154,8 +160,8 @@ live_captions:
|
||||
detect_language: false
|
||||
# Whether to return interim (non-final) transcription results. Defaults to true. See https://developers.deepgram.com/docs/interim-results
|
||||
interim_results: true
|
||||
# Whether to apply smart formatting to numbers, dates, etc. Defaults to true. See https://developers.deepgram.com/docs/smart-format
|
||||
smart_format: true
|
||||
# Whether to apply smart formatting to numbers, dates, etc. Defaults to false. See https://developers.deepgram.com/docs/smart-format
|
||||
smart_format: false
|
||||
# When smart_format is used, ensures it does not wait for sequence to be complete before returning results. Defaults to true. See https://developers.deepgram.com/docs/smart-format#using-no-delay
|
||||
no_delay: true
|
||||
# Whether to add punctuations to the transcription. Defaults to true. Turn detector will work better with punctuations. See https://developers.deepgram.com/docs/punctuation
|
||||
@ -222,7 +228,7 @@ live_captions:
|
||||
speaker_sensitivity:
|
||||
# See https://docs.speechmatics.com/features/diarization#prefer-current-speaker
|
||||
prefer_current_speaker:
|
||||
# Permitted puctuation marks for advanced punctuation. See https://docs.speechmatics.com/features/punctuation-settings
|
||||
# Permitted punctuation marks for advanced punctuation. See https://docs.speechmatics.com/features/punctuation-settings
|
||||
# Commented is an example of punctuation settings
|
||||
punctuation_overrides:
|
||||
# permitted_marks: [ ".", "," ]
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
services:
|
||||
caddy-proxy:
|
||||
image: docker.io/openvidu/openvidu-caddy-local:3.3.0
|
||||
image: docker.io/openvidu/openvidu-caddy-local:main
|
||||
platform: linux/amd64
|
||||
container_name: caddy-proxy
|
||||
restart: unless-stopped
|
||||
@ -17,6 +17,9 @@ services:
|
||||
- DASHBOARD_ADMIN_PASSWORD=${DASHBOARD_ADMIN_PASSWORD:-}
|
||||
- MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY:-}
|
||||
- MINIO_SECRET_KEY=${MINIO_SECRET_KEY:-}
|
||||
- MEET_INITIAL_ADMIN_USER=${MEET_INITIAL_ADMIN_USER:-}
|
||||
- MEET_INITIAL_ADMIN_PASSWORD=${MEET_INITIAL_ADMIN_PASSWORD:-}
|
||||
- MEET_INITIAL_API_KEY=${MEET_INITIAL_API_KEY:-}
|
||||
volumes:
|
||||
- ./custom-layout:/var/www/custom-layout
|
||||
ports:
|
||||
@ -24,6 +27,7 @@ services:
|
||||
- 6443:6443
|
||||
- 7443:7443
|
||||
- 7880:7880
|
||||
- 9443:9443
|
||||
depends_on:
|
||||
setup:
|
||||
condition: service_completed_successfully
|
||||
@ -66,7 +70,7 @@ services:
|
||||
condition: service_completed_successfully
|
||||
|
||||
mongo:
|
||||
image: docker.io/openvidu/mongodb:8.0.9
|
||||
image: docker.io/openvidu/mongodb:8.0.12-r0
|
||||
platform: linux/amd64
|
||||
container_name: mongo
|
||||
restart: unless-stopped
|
||||
@ -87,7 +91,7 @@ services:
|
||||
condition: service_completed_successfully
|
||||
|
||||
dashboard:
|
||||
image: docker.io/openvidu/openvidu-dashboard:3.3.0
|
||||
image: docker.io/openvidu/openvidu-dashboard:main
|
||||
platform: linux/amd64
|
||||
container_name: dashboard
|
||||
restart: unless-stopped
|
||||
@ -101,7 +105,7 @@ services:
|
||||
condition: service_completed_successfully
|
||||
|
||||
openvidu:
|
||||
image: docker.io/openvidu/openvidu-server:3.3.0
|
||||
image: docker.io/openvidu/openvidu-server:main
|
||||
platform: linux/amd64
|
||||
restart: unless-stopped
|
||||
container_name: openvidu
|
||||
@ -109,6 +113,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
environment:
|
||||
- LAN_PRIVATE_IP=${LAN_PRIVATE_IP:-}
|
||||
- LAN_MODE=${LAN_MODE:-false}
|
||||
ports:
|
||||
- 3478:3478/udp
|
||||
- 7881:7881/tcp
|
||||
@ -123,7 +128,7 @@ services:
|
||||
condition: service_completed_successfully
|
||||
|
||||
ingress:
|
||||
image: docker.io/openvidu/ingress:3.3.0
|
||||
image: docker.io/openvidu/ingress:main
|
||||
platform: linux/amd64
|
||||
container_name: ingress
|
||||
restart: unless-stopped
|
||||
@ -142,7 +147,7 @@ services:
|
||||
condition: service_completed_successfully
|
||||
|
||||
egress:
|
||||
image: docker.io/livekit/egress:v1.9.1
|
||||
image: docker.io/livekit/egress:v1.10.0
|
||||
platform: linux/amd64
|
||||
restart: unless-stopped
|
||||
container_name: egress
|
||||
@ -157,36 +162,45 @@ services:
|
||||
setup:
|
||||
condition: service_completed_successfully
|
||||
|
||||
default-app:
|
||||
image: docker.io/openvidu/openvidu-call:3.3.0-demo
|
||||
openvidu-meet:
|
||||
image: docker.io/openvidu/openvidu-meet:main
|
||||
platform: linux/amd64
|
||||
container_name: openvidu-call
|
||||
container_name: openvidu-meet
|
||||
restart: on-failure
|
||||
ports:
|
||||
- 9080:6080
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
environment:
|
||||
- USE_HTTPS=${USE_HTTPS:-false}
|
||||
- LAN_MODE=${LAN_MODE:-false}
|
||||
- LAN_DOMAIN=${LAN_DOMAIN:-}
|
||||
- LAN_PRIVATE_IP=${LAN_PRIVATE_IP:-}
|
||||
- SERVER_PORT=6080
|
||||
- CALL_NAME_ID=OpenViduCall-LOCAL
|
||||
- MEET_LOG_LEVEL=${MEET_LOG_LEVEL:-info}
|
||||
- MEET_NAME_ID=openviduMeet-LOCAL
|
||||
- MEET_INITIAL_API_KEY=${MEET_INITIAL_API_KEY:-meet-api-key}
|
||||
- MEET_INITIAL_ADMIN_USER=${MEET_INITIAL_ADMIN_USER:-admin}
|
||||
- MEET_INITIAL_ADMIN_PASSWORD=${MEET_INITIAL_ADMIN_PASSWORD:-admin}
|
||||
- MEET_COOKIE_SECURE=false
|
||||
- MEET_INITIAL_WEBHOOK_ENABLED=true
|
||||
- MEET_INITIAL_WEBHOOK_URL=${MEET_INITIAL_WEBHOOK_URL:-http://host.docker.internal:6080/webhook}
|
||||
- LIVEKIT_URL_PRIVATE=ws://openvidu:7880/
|
||||
- LIVEKIT_API_KEY=${LIVEKIT_API_KEY}
|
||||
- LIVEKIT_API_SECRET=${LIVEKIT_API_SECRET}
|
||||
- CALL_PRIVATE_ACCESS=${CALL_PRIVATE_ACCESS:-false}
|
||||
- CALL_USER=${CALL_USER:-}
|
||||
- CALL_SECRET=${CALL_SECRET:-}
|
||||
- CALL_RECORDING=${CALL_RECORDING:-}
|
||||
- CALL_ADMIN_USER=${CALL_ADMIN_USER:-admin}
|
||||
- CALL_ADMIN_SECRET=${CALL_ADMIN_SECRET:-admin}
|
||||
- CALL_LOG_LEVEL=${CALL_LOG_LEVEL:-info}
|
||||
- CALL_S3_BUCKET=${CALL_S3_BUCKET:-openvidu-appdata}
|
||||
- CALL_S3_SERVICE_ENDPOINT=${CALL_S3_SERVICE_ENDPOINT:-http://minio:9000}
|
||||
- CALL_S3_ACCESS_KEY=${MINIO_ACCESS_KEY}
|
||||
- CALL_S3_SECRET_KEY=${MINIO_SECRET_KEY}
|
||||
- CALL_AWS_REGION=${CALL_AWS_REGION:-us-east-1}
|
||||
- CALL_S3_WITH_PATH_STYLE_ACCESS=${CALL_S3_WITH_PATH_STYLE_ACCESS:-true}
|
||||
- MEET_S3_BUCKET=${MEET_S3_BUCKET:-openvidu-appdata}
|
||||
- MEET_S3_SUBBUCKET=${MEET_S3_SUBBUCKET:-openvidu-meet}
|
||||
- MEET_S3_SERVICE_ENDPOINT=${MEET_S3_SERVICE_ENDPOINT:-http://minio:9000}
|
||||
- MEET_S3_ACCESS_KEY=${MINIO_ACCESS_KEY}
|
||||
- MEET_S3_SECRET_KEY=${MINIO_SECRET_KEY}
|
||||
- MEET_AWS_REGION=${MEET_AWS_REGION:-us-east-1}
|
||||
- MEET_S3_WITH_PATH_STYLE_ACCESS=${MEET_S3_WITH_PATH_STYLE_ACCESS:-true}
|
||||
- MEET_REDIS_HOST=redis
|
||||
- MEET_REDIS_PORT=6379
|
||||
- MEET_REDIS_PASSWORD=${REDIS_PASSWORD:-}
|
||||
- MEET_REDIS_DB=0
|
||||
volumes:
|
||||
- ./scripts/entrypoint_default_app.sh:/scripts/entrypoint.sh
|
||||
- ./scripts/entrypoint_openvidu_meet.sh:/scripts/entrypoint.sh
|
||||
- ./scripts/utils.sh:/scripts/utils.sh
|
||||
entrypoint: /bin/sh /scripts/entrypoint.sh
|
||||
depends_on:
|
||||
@ -194,7 +208,7 @@ services:
|
||||
condition: service_completed_successfully
|
||||
|
||||
operator:
|
||||
image: docker.io/openvidu/openvidu-operator:3.3.0
|
||||
image: docker.io/openvidu/openvidu-operator:main
|
||||
platform: linux/amd64
|
||||
container_name: operator
|
||||
restart: unless-stopped
|
||||
@ -219,21 +233,26 @@ services:
|
||||
condition: service_completed_successfully
|
||||
|
||||
ready-check:
|
||||
image: docker.io/curlimages/curl:8.13.0
|
||||
image: docker.io/openvidu/openvidu-operator:main
|
||||
platform: linux/amd64
|
||||
container_name: ready-check
|
||||
restart: on-failure
|
||||
environment:
|
||||
- MODE=local-ready-check
|
||||
- OPENVIDU_ENVIRONMENT=local-platform
|
||||
- USE_HTTPS=${USE_HTTPS:-false}
|
||||
- LAN_DOMAIN=${LAN_DOMAIN:-}
|
||||
- LAN_MODE=${LAN_MODE:-false}
|
||||
- LAN_PRIVATE_IP=${LAN_PRIVATE_IP:-}
|
||||
- LIVEKIT_API_KEY=${LIVEKIT_API_KEY:-}
|
||||
- LIVEKIT_API_SECRET=${LIVEKIT_API_SECRET:-}
|
||||
- DASHBOARD_ADMIN_USERNAME=${DASHBOARD_ADMIN_USERNAME:-}
|
||||
- DASHBOARD_ADMIN_PASSWORD=${DASHBOARD_ADMIN_PASSWORD:-}
|
||||
- MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY:-}
|
||||
- MINIO_SECRET_KEY=${MINIO_SECRET_KEY:-}
|
||||
- LIVEKIT_API_KEY=${LIVEKIT_API_KEY:-}
|
||||
- LIVEKIT_API_SECRET=${LIVEKIT_API_SECRET:-}
|
||||
- MEET_INITIAL_ADMIN_USER=${MEET_INITIAL_ADMIN_USER:-}
|
||||
- MEET_INITIAL_ADMIN_PASSWORD=${MEET_INITIAL_ADMIN_PASSWORD:-}
|
||||
- MEET_INITIAL_API_KEY=${MEET_INITIAL_API_KEY:-}
|
||||
depends_on:
|
||||
- openvidu
|
||||
- ingress
|
||||
@ -241,10 +260,6 @@ services:
|
||||
- dashboard
|
||||
- minio
|
||||
- mongo
|
||||
volumes:
|
||||
- ./scripts/ready-check.sh:/scripts/ready-check.sh
|
||||
- ./scripts/utils.sh:/scripts/utils.sh
|
||||
command: /bin/sh /scripts/ready-check.sh
|
||||
|
||||
setup:
|
||||
image: docker.io/busybox:1.37.0
|
||||
|
||||
@ -27,6 +27,10 @@ storage:
|
||||
# account_name: your_account_name
|
||||
# account_key: your_account_key
|
||||
# container_name: openvidu-appdata
|
||||
# gcp:
|
||||
# credentials_json: |
|
||||
# your_credentials_json
|
||||
# bucket: openvidu-appdata
|
||||
|
||||
# CPU cost for each type of Egress operation.
|
||||
cpu_cost:
|
||||
@ -38,3 +42,12 @@ cpu_cost:
|
||||
participant_cpu_cost: 0.01
|
||||
track_composite_cpu_cost: 0.01
|
||||
track_cpu_cost: 0.01
|
||||
|
||||
openvidu:
|
||||
# Allocation strategy for new egress requests
|
||||
# - cpuload: the node with the lowest CPU load will be selected. Distributes the CPU load evenly across all nodes.
|
||||
# - binpack: some node already hosting at least one Egress will be selected. Fills up nodes before assigning work to new ones.
|
||||
allocation_strategy: cpuload
|
||||
# Disables the automatic killing of the most expensive egress when CPU is overloaded.
|
||||
# The default "false" value helps keeping the node stable, but may cause unexpected egress terminations under high load.
|
||||
disable_cpu_overload_killer: false
|
||||
@ -31,7 +31,7 @@ webhook:
|
||||
api_key: devkey
|
||||
urls:
|
||||
- http://host.docker.internal:6080/livekit/webhook
|
||||
- http://default-app:6080/livekit/webhook
|
||||
- http://openvidu-meet:6080/livekit/webhook
|
||||
ingress:
|
||||
rtmp_base_url: rtmp://localhost:1935/rtmp
|
||||
whip_base_url: http://localhost:8085/whip
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
if [ "$LAN_PRIVATE_IP" != "none" ]; then
|
||||
if [ "$LAN_PRIVATE_IP" != "" ] && [ "$LAN_MODE" = 'true' ]; then
|
||||
echo "Using as NODE_IP: $LAN_PRIVATE_IP"
|
||||
export NODE_IP="$LAN_PRIVATE_IP"
|
||||
fi
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
. /scripts/utils.sh
|
||||
|
||||
URL=$(getDeploymentUrl)
|
||||
URL=$(getDeploymentUrl ws)
|
||||
export LIVEKIT_URL="${URL}"
|
||||
|
||||
/usr/local/bin/entrypoint.sh
|
||||
@ -1,70 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
. /scripts/utils.sh
|
||||
|
||||
trap 'handle_sigint' SIGINT
|
||||
|
||||
handle_sigint() {
|
||||
echo "SIGINT signal received, exiting..."
|
||||
exit 1
|
||||
}
|
||||
|
||||
wait_for_service() {
|
||||
SERVICE_NAME=$1
|
||||
SERVICE_URL=$2
|
||||
shift 2
|
||||
EXTRA=$@
|
||||
if [ -n "$EXTRA" ]; then
|
||||
until curl $EXTRA $SERVICE_URL > /dev/null; do
|
||||
echo "Waiting for $SERVICE_NAME to start...";
|
||||
sleep 1;
|
||||
done;
|
||||
else
|
||||
until curl --silent --head --fail $SERVICE_URL > /dev/null; do
|
||||
echo "Waiting for $SERVICE_NAME to start...";
|
||||
sleep 1;
|
||||
done;
|
||||
fi;
|
||||
}
|
||||
|
||||
wait_for_service 'OpenVidu' 'http://openvidu:7880'
|
||||
wait_for_service 'Ingress' 'http://ingress:9091'
|
||||
wait_for_service 'Egress' 'http://egress:9091'
|
||||
wait_for_service 'Dashboard' 'http://dashboard:5000'
|
||||
wait_for_service 'Minio' 'http://minio:9000/minio/health/live'
|
||||
wait_for_service 'Minio Console' 'http://minio:9001/minio-console'
|
||||
wait_for_service 'Mongo' 'http://mongo:27017' --connect-timeout 10 --silent
|
||||
|
||||
LAN_HTTP_URL=$(getDeploymentUrl http)
|
||||
LAN_WS_URL=$(getDeploymentUrl ws)
|
||||
|
||||
for i in $(seq 1 10); do
|
||||
echo 'Starting OpenVidu... Please be patient...'
|
||||
sleep 1
|
||||
done;
|
||||
echo ''
|
||||
echo ''
|
||||
echo '========================================='
|
||||
echo '🎉 OpenVidu is ready! 🎉'
|
||||
echo '========================================='
|
||||
echo ''
|
||||
echo 'OpenVidu Server & LiveKit Server URLs:'
|
||||
echo ''
|
||||
echo ' - From this machine:'
|
||||
echo ''
|
||||
echo ' - http://localhost:7880'
|
||||
echo ' - ws://localhost:7880'
|
||||
echo ''
|
||||
echo ' - From other devices in your LAN:'
|
||||
echo ''
|
||||
echo " - $LAN_HTTP_URL"
|
||||
echo " - $LAN_WS_URL"
|
||||
echo ''
|
||||
echo '========================================='
|
||||
echo ''
|
||||
echo 'OpenVidu Developer UI (services and passwords):'
|
||||
echo ''
|
||||
echo ' - http://localhost:7880'
|
||||
echo " - $LAN_HTTP_URL"
|
||||
echo ''
|
||||
echo '========================================='
|
||||
@ -1,6 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ -z "$LAN_PRIVATE_IP" ]; then
|
||||
if [ "$LAN_MODE" = 'true' ] && [ "$USE_HTTPS" = 'false' ]; then
|
||||
echo 'LAN_MODE cannot be "true" if USE_HTTPS is "false"'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$LAN_MODE" = 'true' ] && [ -z "$LAN_PRIVATE_IP" ]; then
|
||||
echo '------------------------'
|
||||
echo ''
|
||||
echo 'LAN_PRIVATE_IP is required in the .env file.'
|
||||
@ -14,7 +19,9 @@ if [ -z "$LAN_PRIVATE_IP" ]; then
|
||||
echo 'If it can'\''t be found, you can manually set it in the .env file'
|
||||
echo '------------------------'
|
||||
exit 1
|
||||
else
|
||||
fi
|
||||
|
||||
if [ "$LAN_MODE" = 'true' ] && [ -n "$LAN_PRIVATE_IP" ]; then
|
||||
# Check if the LAN_PRIVATE_IP is reachable
|
||||
if ! ping -c 1 -W 1 "$LAN_PRIVATE_IP" > /dev/null; then
|
||||
echo "ERROR: LAN_PRIVATE_IP $LAN_PRIVATE_IP is not reachable"
|
||||
@ -26,15 +33,16 @@ else
|
||||
echo " - MacOS: ./configure_lan_private_ip_macos.sh"
|
||||
echo " - Windows: .\configure_lan_private_ip_windows.bat"
|
||||
echo ""
|
||||
echo " If you don't want to access OpenVidu through your LAN,"
|
||||
echo " you can run without LAN_MODE enabled, simply set"
|
||||
echo " the following variables in the .env file:"
|
||||
echo " USE_HTTPS=false"
|
||||
echo " LAN_MODE=false"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$LAN_MODE" = 'true' ] && [ "$USE_HTTPS" = 'false' ]; then
|
||||
echo 'LAN_MODE cannot be "true" if USE_HTTPS is "false"'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Prepare volumes
|
||||
mkdir -p /minio/data
|
||||
mkdir -p /mongo/data
|
||||
|
||||
10
pro/.env
10
pro/.env
@ -30,9 +30,7 @@ MINIO_SECRET_KEY=minioadmin
|
||||
MONGO_ADMIN_USERNAME=mongoadmin
|
||||
MONGO_ADMIN_PASSWORD=mongoadmin
|
||||
|
||||
# Default App (OpenVidu Call)
|
||||
CALL_PRIVATE_ACCESS=false
|
||||
CALL_USER=
|
||||
CALL_SECRET=
|
||||
CALL_ADMIN_USER=admin
|
||||
CALL_ADMIN_SECRET=admin
|
||||
# OpenVidu Meet configuration.
|
||||
MEET_INITIAL_ADMIN_USER=admin
|
||||
MEET_INITIAL_ADMIN_PASSWORD=admin
|
||||
MEET_INITIAL_API_KEY=meet-api-key
|
||||
|
||||
@ -1,16 +1,22 @@
|
||||
# Docker image of the agent.
|
||||
docker_image: docker.io/openvidu/agent-speech-processing:3.3.0
|
||||
docker_image: docker.io/openvidu/agent-speech-processing:main
|
||||
|
||||
# Whether to run the agent or not.
|
||||
enabled: false
|
||||
|
||||
# Maximum CPU load threshold for the agent to accept new jobs. Value between 0 and 1.
|
||||
load_threshold: 1.0
|
||||
|
||||
# Log level for the agent [DEBUG, INFO, WARNING, ERROR, CRITICAL]
|
||||
log_level: INFO
|
||||
|
||||
live_captions:
|
||||
# How this agent will connect to Rooms [automatic, manual]
|
||||
# - automatic: the agent will automatically connect to new Rooms.
|
||||
# - manual: the agent will connect to new Rooms only when your application dictates it by using the Agent Dispatch API.
|
||||
processing: automatic
|
||||
|
||||
# Which speech-to-text AI provider to use [aws, azure, google, opeanai, groq, deepgram, assemblyai, fal, clova, speechmatics, gladia, sarvam]
|
||||
# Which speech-to-text AI provider to use [aws, azure, google, openai, groq, deepgram, assemblyai, fal, clova, speechmatics, gladia, sarvam, spitch]
|
||||
# The custom configuration for the selected provider must be set below
|
||||
provider:
|
||||
|
||||
@ -154,8 +160,8 @@ live_captions:
|
||||
detect_language: false
|
||||
# Whether to return interim (non-final) transcription results. Defaults to true. See https://developers.deepgram.com/docs/interim-results
|
||||
interim_results: true
|
||||
# Whether to apply smart formatting to numbers, dates, etc. Defaults to true. See https://developers.deepgram.com/docs/smart-format
|
||||
smart_format: true
|
||||
# Whether to apply smart formatting to numbers, dates, etc. Defaults to false. See https://developers.deepgram.com/docs/smart-format
|
||||
smart_format: false
|
||||
# When smart_format is used, ensures it does not wait for sequence to be complete before returning results. Defaults to true. See https://developers.deepgram.com/docs/smart-format#using-no-delay
|
||||
no_delay: true
|
||||
# Whether to add punctuations to the transcription. Defaults to true. Turn detector will work better with punctuations. See https://developers.deepgram.com/docs/punctuation
|
||||
@ -222,7 +228,7 @@ live_captions:
|
||||
speaker_sensitivity:
|
||||
# See https://docs.speechmatics.com/features/diarization#prefer-current-speaker
|
||||
prefer_current_speaker:
|
||||
# Permitted puctuation marks for advanced punctuation. See https://docs.speechmatics.com/features/punctuation-settings
|
||||
# Permitted punctuation marks for advanced punctuation. See https://docs.speechmatics.com/features/punctuation-settings
|
||||
# Commented is an example of punctuation settings
|
||||
punctuation_overrides:
|
||||
# permitted_marks: [ ".", "," ]
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
services:
|
||||
caddy-proxy:
|
||||
image: docker.io/openvidu/openvidu-caddy-local:3.3.0
|
||||
image: docker.io/openvidu/openvidu-caddy-local:main
|
||||
platform: linux/amd64
|
||||
container_name: caddy-proxy
|
||||
restart: unless-stopped
|
||||
@ -18,6 +18,9 @@ services:
|
||||
- MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY:-}
|
||||
- MINIO_SECRET_KEY=${MINIO_SECRET_KEY:-}
|
||||
- V2COMPAT_OPENVIDU_SECRET=${LIVEKIT_API_SECRET:-}
|
||||
- MEET_INITIAL_ADMIN_USER=${MEET_INITIAL_ADMIN_USER:-}
|
||||
- MEET_INITIAL_ADMIN_PASSWORD=${MEET_INITIAL_ADMIN_PASSWORD:-}
|
||||
- MEET_INITIAL_API_KEY=${MEET_INITIAL_API_KEY:-}
|
||||
volumes:
|
||||
- ./custom-layout:/var/www/custom-layout
|
||||
ports:
|
||||
@ -25,6 +28,7 @@ services:
|
||||
- 6443:6443
|
||||
- 7443:7443
|
||||
- 7880:7880
|
||||
- 9443:9443
|
||||
depends_on:
|
||||
setup:
|
||||
condition: service_completed_successfully
|
||||
@ -66,7 +70,7 @@ services:
|
||||
condition: service_completed_successfully
|
||||
|
||||
mongo:
|
||||
image: docker.io/openvidu/mongodb:8.0.9
|
||||
image: docker.io/openvidu/mongodb:8.0.12-r0
|
||||
platform: linux/amd64
|
||||
container_name: mongo
|
||||
restart: unless-stopped
|
||||
@ -87,7 +91,7 @@ services:
|
||||
condition: service_completed_successfully
|
||||
|
||||
dashboard:
|
||||
image: docker.io/openvidu/openvidu-dashboard:3.3.0
|
||||
image: docker.io/openvidu/openvidu-dashboard:main
|
||||
platform: linux/amd64
|
||||
container_name: dashboard
|
||||
restart: unless-stopped
|
||||
@ -101,13 +105,14 @@ services:
|
||||
condition: service_completed_successfully
|
||||
|
||||
openvidu:
|
||||
image: docker.io/openvidu/openvidu-server-pro:3.3.0
|
||||
image: docker.io/openvidu/openvidu-server-pro:main
|
||||
platform: linux/amd64
|
||||
restart: unless-stopped
|
||||
container_name: openvidu
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
environment:
|
||||
- LAN_MODE=${LAN_MODE:-false}
|
||||
- LAN_PRIVATE_IP=${LAN_PRIVATE_IP:-}
|
||||
- OPENVIDU_DEPLOYMENT_TYPE=local
|
||||
- OPENVIDU_ENVIRONMENT=on_premise
|
||||
@ -125,7 +130,7 @@ services:
|
||||
condition: service_completed_successfully
|
||||
|
||||
ingress:
|
||||
image: docker.io/openvidu/ingress:3.3.0
|
||||
image: docker.io/openvidu/ingress:main
|
||||
platform: linux/amd64
|
||||
container_name: ingress
|
||||
restart: unless-stopped
|
||||
@ -144,7 +149,7 @@ services:
|
||||
condition: service_completed_successfully
|
||||
|
||||
egress:
|
||||
image: docker.io/livekit/egress:v1.9.1
|
||||
image: docker.io/livekit/egress:v1.10.0
|
||||
platform: linux/amd64
|
||||
restart: unless-stopped
|
||||
container_name: egress
|
||||
@ -159,36 +164,45 @@ services:
|
||||
setup:
|
||||
condition: service_completed_successfully
|
||||
|
||||
default-app:
|
||||
image: docker.io/openvidu/openvidu-call:3.3.0-demo
|
||||
openvidu-meet:
|
||||
image: docker.io/openvidu/openvidu-meet:main
|
||||
platform: linux/amd64
|
||||
container_name: openvidu-call
|
||||
container_name: openvidu-meet
|
||||
restart: on-failure
|
||||
ports:
|
||||
- 9080:6080
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
environment:
|
||||
- USE_HTTPS=${USE_HTTPS:-false}
|
||||
- LAN_MODE=${LAN_MODE:-false}
|
||||
- LAN_DOMAIN=${LAN_DOMAIN:-}
|
||||
- LAN_PRIVATE_IP=${LAN_PRIVATE_IP:-}
|
||||
- SERVER_PORT=6080
|
||||
- CALL_NAME_ID=OpenViduCall-LOCAL
|
||||
- MEET_LOG_LEVEL=${MEET_LOG_LEVEL:-info}
|
||||
- MEET_NAME_ID=openviduMeet-LOCAL
|
||||
- MEET_INITIAL_API_KEY=${MEET_INITIAL_API_KEY:-meet-api-key}
|
||||
- MEET_INITIAL_ADMIN_USER=${MEET_INITIAL_ADMIN_USER:-admin}
|
||||
- MEET_INITIAL_ADMIN_PASSWORD=${MEET_INITIAL_ADMIN_PASSWORD:-admin}
|
||||
- MEET_COOKIE_SECURE=false
|
||||
- MEET_INITIAL_WEBHOOK_ENABLED=true
|
||||
- MEET_INITIAL_WEBHOOK_URL=${MEET_INITIAL_WEBHOOK_URL:-http://host.docker.internal:6080/webhook}
|
||||
- LIVEKIT_URL_PRIVATE=ws://openvidu:7880/
|
||||
- LIVEKIT_API_KEY=${LIVEKIT_API_KEY}
|
||||
- LIVEKIT_API_SECRET=${LIVEKIT_API_SECRET}
|
||||
- CALL_PRIVATE_ACCESS=${CALL_PRIVATE_ACCESS:-false}
|
||||
- CALL_USER=${CALL_USER:-}
|
||||
- CALL_SECRET=${CALL_SECRET:-}
|
||||
- CALL_RECORDING=${CALL_RECORDING:-}
|
||||
- CALL_ADMIN_USER=${CALL_ADMIN_USER:-admin}
|
||||
- CALL_ADMIN_SECRET=${CALL_ADMIN_SECRET:-admin}
|
||||
- CALL_LOG_LEVEL=${CALL_LOG_LEVEL:-info}
|
||||
- CALL_S3_BUCKET=${CALL_S3_BUCKET:-openvidu-appdata}
|
||||
- CALL_S3_SERVICE_ENDPOINT=${CALL_S3_SERVICE_ENDPOINT:-http://minio:9000}
|
||||
- CALL_S3_ACCESS_KEY=${MINIO_ACCESS_KEY}
|
||||
- CALL_S3_SECRET_KEY=${MINIO_SECRET_KEY}
|
||||
- CALL_AWS_REGION=${CALL_AWS_REGION:-us-east-1}
|
||||
- CALL_S3_WITH_PATH_STYLE_ACCESS=${CALL_S3_WITH_PATH_STYLE_ACCESS:-true}
|
||||
- MEET_S3_BUCKET=${MEET_S3_BUCKET:-openvidu-appdata}
|
||||
- MEET_S3_SUBBUCKET=${MEET_S3_SUBBUCKET:-openvidu-meet}
|
||||
- MEET_S3_SERVICE_ENDPOINT=${MEET_S3_SERVICE_ENDPOINT:-http://minio:9000}
|
||||
- MEET_S3_ACCESS_KEY=${MINIO_ACCESS_KEY}
|
||||
- MEET_S3_SECRET_KEY=${MINIO_SECRET_KEY}
|
||||
- MEET_AWS_REGION=${MEET_AWS_REGION:-us-east-1}
|
||||
- MEET_S3_WITH_PATH_STYLE_ACCESS=${MEET_S3_WITH_PATH_STYLE_ACCESS:-true}
|
||||
- MEET_REDIS_HOST=redis
|
||||
- MEET_REDIS_PORT=6379
|
||||
- MEET_REDIS_PASSWORD=${REDIS_PASSWORD:-}
|
||||
- MEET_REDIS_DB=0
|
||||
volumes:
|
||||
- ./scripts/entrypoint_default_app.sh:/scripts/entrypoint.sh
|
||||
- ./scripts/entrypoint_openvidu_meet.sh:/scripts/entrypoint.sh
|
||||
- ./scripts/utils.sh:/scripts/utils.sh
|
||||
entrypoint: /bin/sh /scripts/entrypoint.sh
|
||||
depends_on:
|
||||
@ -196,7 +210,7 @@ services:
|
||||
condition: service_completed_successfully
|
||||
|
||||
openvidu-v2compatibility:
|
||||
image: docker.io/openvidu/openvidu-v2compatibility:3.3.0
|
||||
image: docker.io/openvidu/openvidu-v2compatibility:main
|
||||
platform: linux/amd64
|
||||
restart: unless-stopped
|
||||
container_name: openvidu-v2compatibility
|
||||
@ -238,22 +252,27 @@ services:
|
||||
condition: service_completed_successfully
|
||||
|
||||
ready-check:
|
||||
image: docker.io/curlimages/curl:8.13.0
|
||||
image: docker.io/openvidu/openvidu-operator:main
|
||||
platform: linux/amd64
|
||||
container_name: ready-check
|
||||
restart: on-failure
|
||||
environment:
|
||||
- MODE=local-ready-check
|
||||
- OPENVIDU_ENVIRONMENT=local-platform
|
||||
- USE_HTTPS=${USE_HTTPS:-false}
|
||||
- LAN_DOMAIN=${LAN_DOMAIN:-}
|
||||
- LAN_MODE=${LAN_MODE:-false}
|
||||
- LAN_PRIVATE_IP=${LAN_PRIVATE_IP:-}
|
||||
- V2COMPAT_OPENVIDU_SECRET=${LIVEKIT_API_SECRET:-}
|
||||
- LIVEKIT_API_KEY=${LIVEKIT_API_KEY:-}
|
||||
- LIVEKIT_API_SECRET=${LIVEKIT_API_SECRET:-}
|
||||
- DASHBOARD_ADMIN_USERNAME=${DASHBOARD_ADMIN_USERNAME:-}
|
||||
- DASHBOARD_ADMIN_PASSWORD=${DASHBOARD_ADMIN_PASSWORD:-}
|
||||
- MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY:-}
|
||||
- MINIO_SECRET_KEY=${MINIO_SECRET_KEY:-}
|
||||
- LIVEKIT_API_KEY=${LIVEKIT_API_KEY:-}
|
||||
- LIVEKIT_API_SECRET=${LIVEKIT_API_SECRET:-}
|
||||
- V2COMPAT_OPENVIDU_SECRET=${LIVEKIT_API_SECRET:-}
|
||||
- MEET_INITIAL_ADMIN_USER=${MEET_INITIAL_ADMIN_USER:-}
|
||||
- MEET_INITIAL_ADMIN_PASSWORD=${MEET_INITIAL_ADMIN_PASSWORD:-}
|
||||
- MEET_INITIAL_API_KEY=${MEET_INITIAL_API_KEY:-}
|
||||
depends_on:
|
||||
- openvidu
|
||||
- ingress
|
||||
@ -261,13 +280,9 @@ services:
|
||||
- dashboard
|
||||
- minio
|
||||
- mongo
|
||||
volumes:
|
||||
- ./scripts/ready-check.sh:/scripts/ready-check.sh
|
||||
- ./scripts/utils.sh:/scripts/utils.sh
|
||||
command: /bin/sh /scripts/ready-check.sh
|
||||
|
||||
operator:
|
||||
image: docker.io/openvidu/openvidu-operator:3.3.0
|
||||
image: docker.io/openvidu/openvidu-operator:main
|
||||
platform: linux/amd64
|
||||
container_name: operator
|
||||
restart: unless-stopped
|
||||
|
||||
@ -27,6 +27,10 @@ storage:
|
||||
# account_name: your_account_name
|
||||
# account_key: your_account_key
|
||||
# container_name: openvidu-appdata
|
||||
# gcp:
|
||||
# credentials_json: |
|
||||
# your_credentials_json
|
||||
# bucket: openvidu-appdata
|
||||
|
||||
# CPU cost for each type of Egress operation.
|
||||
cpu_cost:
|
||||
@ -38,3 +42,12 @@ cpu_cost:
|
||||
participant_cpu_cost: 0.01
|
||||
track_composite_cpu_cost: 0.01
|
||||
track_cpu_cost: 0.01
|
||||
|
||||
openvidu:
|
||||
# Allocation strategy for new egress requests
|
||||
# - cpuload: the node with the lowest CPU load will be selected. Distributes the CPU load evenly across all nodes.
|
||||
# - binpack: some node already hosting at least one Egress will be selected. Fills up nodes before assigning work to new ones.
|
||||
allocation_strategy: cpuload
|
||||
# Disables the automatic killing of the most expensive egress when CPU is overloaded.
|
||||
# The default "false" value helps keeping the node stable, but may cause unexpected egress terminations under high load.
|
||||
disable_cpu_overload_killer: false
|
||||
|
||||
@ -56,7 +56,7 @@ webhook:
|
||||
urls:
|
||||
- http://host.docker.internal:4443/livekit/webhook # For OpenVidu 2 compatibility
|
||||
- http://host.docker.internal:6080/livekit/webhook
|
||||
- http://default-app:6080/livekit/webhook
|
||||
- http://openvidu-meet:6080/livekit/webhook
|
||||
ingress:
|
||||
rtmp_base_url: rtmp://localhost:1935/rtmp
|
||||
whip_base_url: http://localhost:8085/whip
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
if [ "$LAN_PRIVATE_IP" != "none" ]; then
|
||||
if [ "$LAN_PRIVATE_IP" != "" ] && [ "$LAN_MODE" = 'true' ]; then
|
||||
echo "Using as NODE_IP: $LAN_PRIVATE_IP"
|
||||
export NODE_IP="$LAN_PRIVATE_IP"
|
||||
fi
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
. /scripts/utils.sh
|
||||
|
||||
URL=$(getDeploymentUrl)
|
||||
URL=$(getDeploymentUrl ws)
|
||||
export LIVEKIT_URL="${URL}"
|
||||
|
||||
/usr/local/bin/entrypoint.sh
|
||||
@ -1,70 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
. /scripts/utils.sh
|
||||
|
||||
trap 'handle_sigint' SIGINT
|
||||
|
||||
handle_sigint() {
|
||||
echo "SIGINT signal received, exiting..."
|
||||
exit 1
|
||||
}
|
||||
|
||||
wait_for_service() {
|
||||
SERVICE_NAME=$1
|
||||
SERVICE_URL=$2
|
||||
shift 2
|
||||
EXTRA=$@
|
||||
if [ -n "$EXTRA" ]; then
|
||||
until curl $EXTRA $SERVICE_URL > /dev/null; do
|
||||
echo "Waiting for $SERVICE_NAME to start...";
|
||||
sleep 1;
|
||||
done;
|
||||
else
|
||||
until curl --silent --head --fail $SERVICE_URL > /dev/null; do
|
||||
echo "Waiting for $SERVICE_NAME to start...";
|
||||
sleep 1;
|
||||
done;
|
||||
fi;
|
||||
}
|
||||
|
||||
wait_for_service 'OpenVidu' 'http://openvidu:7880'
|
||||
wait_for_service 'Ingress' 'http://ingress:9091'
|
||||
wait_for_service 'Egress' 'http://egress:9091'
|
||||
wait_for_service 'Dashboard' 'http://dashboard:5000'
|
||||
wait_for_service 'Minio' 'http://minio:9000/minio/health/live'
|
||||
wait_for_service 'Minio Console' 'http://minio:9001/minio-console'
|
||||
wait_for_service 'Mongo' 'http://mongo:27017' --connect-timeout 10 --silent
|
||||
|
||||
LAN_HTTP_URL=$(getDeploymentUrl http)
|
||||
LAN_WS_URL=$(getDeploymentUrl ws)
|
||||
|
||||
for i in $(seq 1 10); do
|
||||
echo 'Starting OpenVidu... Please be patient...'
|
||||
sleep 1
|
||||
done;
|
||||
echo ''
|
||||
echo ''
|
||||
echo '========================================='
|
||||
echo '🎉 OpenVidu is ready! 🎉'
|
||||
echo '========================================='
|
||||
echo ''
|
||||
echo 'OpenVidu Server & LiveKit Server URLs:'
|
||||
echo ''
|
||||
echo ' - From this machine:'
|
||||
echo ''
|
||||
echo ' - http://localhost:7880'
|
||||
echo ' - ws://localhost:7880'
|
||||
echo ''
|
||||
echo ' - From other devices in your LAN:'
|
||||
echo ''
|
||||
echo " - $LAN_HTTP_URL"
|
||||
echo " - $LAN_WS_URL"
|
||||
echo ''
|
||||
echo '========================================='
|
||||
echo ''
|
||||
echo 'OpenVidu Developer UI (services and passwords):'
|
||||
echo ''
|
||||
echo ' - http://localhost:7880'
|
||||
echo " - $LAN_HTTP_URL"
|
||||
echo ''
|
||||
echo '========================================='
|
||||
@ -1,6 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ -z "$LAN_PRIVATE_IP" ]; then
|
||||
if [ "$LAN_MODE" = 'true' ] && [ "$USE_HTTPS" = 'false' ]; then
|
||||
echo 'LAN_MODE cannot be "true" if USE_HTTPS is "false"'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$LAN_MODE" = 'true' ] && [ -z "$LAN_PRIVATE_IP" ]; then
|
||||
echo '------------------------'
|
||||
echo ''
|
||||
echo 'LAN_PRIVATE_IP is required in the .env file.'
|
||||
@ -14,7 +19,9 @@ if [ -z "$LAN_PRIVATE_IP" ]; then
|
||||
echo 'If it can'\''t be found, you can manually set it in the .env file'
|
||||
echo '------------------------'
|
||||
exit 1
|
||||
else
|
||||
fi
|
||||
|
||||
if [ "$LAN_MODE" = 'true' ] && [ -n "$LAN_PRIVATE_IP" ]; then
|
||||
# Check if the LAN_PRIVATE_IP is reachable
|
||||
if ! ping -c 1 -W 1 "$LAN_PRIVATE_IP" > /dev/null; then
|
||||
echo "ERROR: LAN_PRIVATE_IP $LAN_PRIVATE_IP is not reachable"
|
||||
@ -26,15 +33,16 @@ else
|
||||
echo " - MacOS: ./configure_lan_private_ip_macos.sh"
|
||||
echo " - Windows: .\configure_lan_private_ip_windows.bat"
|
||||
echo ""
|
||||
echo " If you don't want to access OpenVidu through your LAN,"
|
||||
echo " you can run without LAN_MODE enabled, simply set"
|
||||
echo " the following variables in the .env file:"
|
||||
echo " USE_HTTPS=false"
|
||||
echo " LAN_MODE=false"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$LAN_MODE" = 'true' ] && [ "$USE_HTTPS" = 'false' ]; then
|
||||
echo 'LAN_MODE cannot be "true" if USE_HTTPS is "false"'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Prepare volumes
|
||||
mkdir -p /minio/data
|
||||
mkdir -p /mongo/data
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user