diff --git a/examples/autoscaling/main.tf b/examples/autoscaling/main.tf index 53ce7c8..e00eb64 100644 --- a/examples/autoscaling/main.tf +++ b/examples/autoscaling/main.tf @@ -67,6 +67,8 @@ module "red5pro" { origin_image_red5pro_socialpusher_enable = false # true - enable Red5 Pro server socialpusher, false - disable Red5 Pro server socialpusher (https://www.red5.net/docs/special/social-media-plugin/overview/) origin_image_red5pro_suppressor_enable = false # true - enable Red5 Pro server suppressor, false - disable Red5 Pro server suppressor origin_image_red5pro_hls_enable = false # true - enable Red5 Pro server HLS, false - disable Red5 Pro server HLS (https://www.red5.net/docs/protocols/hls-plugin/hls-vod/) + origin_image_red5pro_webhooks_enable = false # true - enable Red5 Pro server webhooks, false - disable Red5 Pro server webhooks (https://www.red5.net/docs/special/webhooks/overview/) + origin_image_red5pro_webhooks_endpoint = "https://example.com/red5/status" # Red5 Pro server webhooks endpoint origin_image_red5pro_round_trip_auth_enable = false # true - enable Red5 Pro server round trip authentication, false - disable Red5 Pro server round trip authentication (https://www.red5.net/docs/special/round-trip-auth/overview/) origin_image_red5pro_round_trip_auth_host = "round-trip-auth.example.com" # Round trip authentication server host origin_image_red5pro_round_trip_auth_port = 3000 # Round trip authentication server port diff --git a/examples/cluster/main.tf b/examples/cluster/main.tf index 91ceac9..223387c 100644 --- a/examples/cluster/main.tf +++ b/examples/cluster/main.tf @@ -71,6 +71,8 @@ module "red5pro" { origin_image_red5pro_socialpusher_enable = false # true - enable Red5 Pro server socialpusher, false - disable Red5 Pro server socialpusher (https://www.red5.net/docs/special/social-media-plugin/overview/) origin_image_red5pro_suppressor_enable = false # true - enable Red5 Pro server suppressor, false - disable Red5 Pro server suppressor origin_image_red5pro_hls_enable = false # true - enable Red5 Pro server HLS, false - disable Red5 Pro server HLS (https://www.red5.net/docs/protocols/hls-plugin/hls-vod/) + origin_image_red5pro_webhooks_enable = false # true - enable Red5 Pro server webhooks, false - disable Red5 Pro server webhooks (https://www.red5.net/docs/special/webhooks/overview/) + origin_image_red5pro_webhooks_endpoint = "https://example.com/red5/status" # Red5 Pro server webhooks endpoint origin_image_red5pro_round_trip_auth_enable = false # true - enable Red5 Pro server round trip authentication, false - disable Red5 Pro server round trip authentication (https://www.red5.net/docs/special/round-trip-auth/overview/) origin_image_red5pro_round_trip_auth_host = "round-trip-auth.example.com" # Round trip authentication server host origin_image_red5pro_round_trip_auth_port = 3000 # Round trip authentication server port diff --git a/examples/single/main.tf b/examples/single/main.tf index 2b22566..0c6dc8f 100644 --- a/examples/single/main.tf +++ b/examples/single/main.tf @@ -53,6 +53,8 @@ module "red5pro" { red5pro_socialpusher_enable = false # true - enable Red5 Pro server socialpusher, false - disable Red5 Pro server socialpusher (https://www.red5.net/docs/special/social-media-plugin/overview/) red5pro_suppressor_enable = false # true - enable Red5 Pro server suppressor, false - disable Red5 Pro server suppressor red5pro_hls_enable = false # true - enable Red5 Pro server HLS, false - disable Red5 Pro server HLS (https://www.red5.net/docs/protocols/hls-plugin/hls-vod/) + red5pro_webhooks_enable = false # true - enable Red5 Pro server webhooks, false - disable Red5 Pro server webhooks (https://www.red5.net/docs/special/webhooks/overview/) + red5pro_webhooks_endpoint = "https://example.com/red5/status" # Red5 Pro server webhooks endpoint red5pro_round_trip_auth_enable = false # true - enable Red5 Pro server round trip authentication, false - disable Red5 Pro server round trip authentication (https://www.red5.net/docs/special/round-trip-auth/overview/) red5pro_round_trip_auth_host = "round-trip-auth.example.com" # Round trip authentication server host red5pro_round_trip_auth_port = 3000 # Round trip authentication server port diff --git a/main.tf b/main.tf index c67c47b..8843677 100644 --- a/main.tf +++ b/main.tf @@ -687,6 +687,10 @@ resource "aws_instance" "red5pro_node_origin" { "export NODE_SOCIALPUSHER_ENABLE='${var.origin_image_red5pro_socialpusher_enable}'", "export NODE_SUPPRESSOR_ENABLE='${var.origin_image_red5pro_suppressor_enable}'", "export NODE_HLS_ENABLE='${var.origin_image_red5pro_hls_enable}'", + "export NODE_HLS_OUTPUT_FORMAT='${var.origin_image_red5pro_hls_output_format}'", + "export NODE_HLS_DVR_PLAYLIST='${var.origin_image_red5pro_hls_dvr_playlist}'", + "export NODE_WEBHOOKS_ENABLE='${var.origin_image_red5pro_webhooks_enable}'", + "export NODE_WEBHOOKS_ENDPOINT='${var.origin_image_red5pro_webhooks_endpoint}'", "export NODE_ROUND_TRIP_AUTH_ENABLE='${var.origin_image_red5pro_round_trip_auth_enable}'", "export NODE_ROUND_TRIP_AUTH_HOST='${var.origin_image_red5pro_round_trip_auth_host}'", "export NODE_ROUND_TRIP_AUTH_PORT='${var.origin_image_red5pro_round_trip_auth_port}'", @@ -772,6 +776,8 @@ resource "aws_instance" "red5pro_node_edge" { "export NODE_SOCIALPUSHER_ENABLE='${var.edge_image_red5pro_socialpusher_enable}'", "export NODE_SUPPRESSOR_ENABLE='${var.edge_image_red5pro_suppressor_enable}'", "export NODE_HLS_ENABLE='${var.edge_image_red5pro_hls_enable}'", + "export NODE_WEBHOOKS_ENABLE='${var.edge_image_red5pro_webhooks_enable}'", + "export NODE_WEBHOOKS_ENDPOINT='${var.edge_image_red5pro_webhooks_endpoint}'", "export NODE_ROUND_TRIP_AUTH_ENABLE='${var.edge_image_red5pro_round_trip_auth_enable}'", "export NODE_ROUND_TRIP_AUTH_HOST='${var.edge_image_red5pro_round_trip_auth_host}'", "export NODE_ROUND_TRIP_AUTH_PORT='${var.edge_image_red5pro_round_trip_auth_port}'", @@ -846,6 +852,10 @@ resource "aws_instance" "red5pro_node_transcoder" { "export NODE_SOCIALPUSHER_ENABLE='${var.transcoder_image_red5pro_socialpusher_enable}'", "export NODE_SUPPRESSOR_ENABLE='${var.transcoder_image_red5pro_suppressor_enable}'", "export NODE_HLS_ENABLE='${var.transcoder_image_red5pro_hls_enable}'", + "export NODE_HLS_OUTPUT_FORMAT='${var.transcoder_image_red5pro_hls_output_format}'", + "export NODE_HLS_DVR_PLAYLIST='${var.transcoder_image_red5pro_hls_dvr_playlist}'", + "export NODE_WEBHOOKS_ENABLE='${var.transcoder_image_red5pro_webhooks_enable}'", + "export NODE_WEBHOOKS_ENDPOINT='${var.transcoder_image_red5pro_webhooks_endpoint}'", "export NODE_ROUND_TRIP_AUTH_ENABLE='${var.transcoder_image_red5pro_round_trip_auth_enable}'", "export NODE_ROUND_TRIP_AUTH_HOST='${var.transcoder_image_red5pro_round_trip_auth_host}'", "export NODE_ROUND_TRIP_AUTH_PORT='${var.transcoder_image_red5pro_round_trip_auth_port}'", @@ -1008,6 +1018,10 @@ resource "aws_instance" "red5pro_single" { "export NODE_SOCIALPUSHER_ENABLE='${var.red5pro_socialpusher_enable}'", "export NODE_SUPPRESSOR_ENABLE='${var.red5pro_suppressor_enable}'", "export NODE_HLS_ENABLE='${var.red5pro_hls_enable}'", + "export NODE_HLS_OUTPUT_FORMAT='${var.red5pro_hls_output_format}'", + "export NODE_HLS_DVR_PLAYLIST='${var.red5pro_hls_dvr_playlist}'", + "export NODE_WEBHOOKS_ENABLE='${var.red5pro_webhooks_enable}'", + "export NODE_WEBHOOKS_ENDPOINT='${var.red5pro_webhooks_endpoint}'", "export NODE_ROUND_TRIP_AUTH_ENABLE='${var.red5pro_round_trip_auth_enable}'", "export NODE_ROUND_TRIP_AUTH_HOST='${var.red5pro_round_trip_auth_host}'", "export NODE_ROUND_TRIP_AUTH_PORT='${var.red5pro_round_trip_auth_port}'", diff --git a/red5pro-installer/r5p_config_node_apps_plugins.sh b/red5pro-installer/r5p_config_node_apps_plugins.sh index 5cf39de..3e9f4e5 100755 --- a/red5pro-installer/r5p_config_node_apps_plugins.sh +++ b/red5pro-installer/r5p_config_node_apps_plugins.sh @@ -10,6 +10,8 @@ # NODE_SOCIALPUSHER_ENABLE=true # NODE_SUPPRESSOR_ENABLE=true # NODE_HLS_ENABLE=true +# NODE_HLS_OUTPUT_FORMAT=TS #(TS,FMP4,SMP4) +# NODE_HLS_DVR_PLAYLIST=true # NODE_CLOUDSTORAGE_ENABLE=true # NODE_CLOUDSTORAGE_AWS_ACCESS_KEY # NODE_CLOUDSTORAGE_AWS_SECRET_KEY @@ -98,9 +100,17 @@ config_node_apps_plugins(){ rm $RED5_HOME/plugins/inspector.jar fi fi + ### Red5Pro HLS if [[ "$NODE_HLS_ENABLE" == "true" ]]; then - log_i "Red5Pro HLS - enable" + log_i "Red5Pro HLS - enable. Output format: $NODE_HLS_OUTPUT_FORMAT, DVR playlist: $NODE_HLS_DVR_PLAYLIST" + + hls_output_format='' + hls_output_format_new='' + + hls_dvr_playlist='' + hls_dvr_playlist_new='' + sed -i -e "s|$hls_output_format|$hls_output_format_new|" -e "s|$hls_dvr_playlist|$hls_dvr_playlist_new|" "$RED5_HOME/conf/hlsconfig.xml" else log_d "Red5Pro HLS - disable" if ls $RED5_HOME/plugins/red5pro-mpegts-plugin* >/dev/null 2>&1; then @@ -210,6 +220,7 @@ config_node_apps_plugins(){ log_e "Parameter NODE_WEBHOOKS_ENDPOINT is empty. EXIT." exit 1 fi + echo "" >> $RED5_HOME/webapps/live/WEB-INF/red5-web.properties echo "webhooks.endpoint=$NODE_WEBHOOKS_ENDPOINT" >> $RED5_HOME/webapps/live/WEB-INF/red5-web.properties fi ### Red5Pro Round-trip-auth diff --git a/variables.tf b/variables.tf index 5950cff..ec1e94c 100644 --- a/variables.tf +++ b/variables.tf @@ -142,6 +142,26 @@ variable "red5pro_hls_enable" { type = bool default = false } +variable "red5pro_hls_output_format" { + description = "Red5 Pro Single server - HLS output format. Options: TS, FMP4, SMP4" + type = string + default = "TS" +} +variable "red5pro_hls_dvr_playlist" { + description = "Red5 Pro Single server - HLS DVR playlist" + type = string + default = "false" +} +variable "red5pro_webhooks_enable" { + description = "Red5 Pro Single server Webhooks enable/disable (https://www.red5.net/docs/special/webhooks/overview/)" + type = bool + default = false +} +variable "red5pro_webhooks_endpoint" { + description = "Red5 Pro Single server Webhooks endpoint" + type = string + default = "" +} variable "red5pro_round_trip_auth_enable" { description = "Round trip authentication on the red5pro server enable/disable - Auth server should be deployed separately (https://www.red5.net/docs/special/round-trip-auth/overview/)" type = bool @@ -394,6 +414,26 @@ variable "origin_image_red5pro_hls_enable" { type = bool default = false } +variable "origin_image_red5pro_webhooks_enable" { + description = "Origin node image - Webhooks enable/disable (https://www.red5.net/docs/special/webhooks/overview/)" + type = bool + default = false +} +variable "origin_image_red5pro_hls_output_format" { + description = "Origin node image - HLS output format. Options: TS, FMP4, SMP4" + type = string + default = "TS" +} +variable "origin_image_red5pro_hls_dvr_playlist" { + description = "Origin node image - HLS DVR playlist" + type = string + default = "false" +} +variable "origin_image_red5pro_webhooks_endpoint" { + description = "Origin node image - Webhooks endpoint" + type = string + default = "" +} variable "origin_image_red5pro_round_trip_auth_enable" { description = "Origin node image - Round trip authentication on the enable/disable - Auth server should be deployed separately (https://www.red5.net/docs/special/round-trip-auth/overview/)" type = bool @@ -516,6 +556,16 @@ variable "edge_image_red5pro_hls_enable" { type = bool default = false } +variable "edge_image_red5pro_webhooks_enable" { + description = "Edge node image - Webhooks enable/disable (https://www.red5.net/docs/special/webhooks/overview/)" + type = bool + default = false +} +variable "edge_image_red5pro_webhooks_endpoint" { + description = "Edge node image - Webhooks endpoint" + type = string + default = "" +} variable "edge_image_red5pro_round_trip_auth_enable" { description = "Edge node image - Round trip authentication on the enable/disable - Auth server should be deployed separately (https://www.red5.net/docs/special/round-trip-auth/overview/)" type = bool @@ -588,6 +638,26 @@ variable "transcoder_image_red5pro_hls_enable" { type = bool default = false } +variable "transcoder_image_red5pro_hls_output_format" { + description = "Transcoder node image - HLS output format. Options: TS, FMP4, SMP4" + type = string + default = "TS" +} +variable "transcoder_image_red5pro_hls_dvr_playlist" { + description = "Transcoder node image - HLS DVR playlist" + type = string + default = "false" +} +variable "transcoder_image_red5pro_webhooks_enable" { + description = "Transcoder node image - Webhooks enable/disable (https://www.red5.net/docs/special/webhooks/overview/)" + type = bool + default = false +} +variable "transcoder_image_red5pro_webhooks_endpoint" { + description = "Transcoder node image - Webhooks endpoint" + type = string + default = "" +} variable "transcoder_image_red5pro_round_trip_auth_enable" { description = "Transcoder node image - Round trip authentication on the enable/disable - Auth server should be deployed separately (https://www.red5.net/docs/special/round-trip-auth/overview/)" type = bool