diff --git a/software/hexaglobe-watermarking/common.cfg b/software/hexaglobe-watermarking/common.cfg index 86c2054047a5a1b9a050a8be7201d6710414c8c0..25a582176a4b899cf4f0e4df1a86d4015d07df4c 100644 --- a/software/hexaglobe-watermarking/common.cfg +++ b/software/hexaglobe-watermarking/common.cfg @@ -2,6 +2,7 @@ extends = ../../component/dash/buildout.cfg ../../component/dcron/buildout.cfg + ../../component/curl/buildout.cfg ../../component/gzip/buildout.cfg ../../component/logrotate/buildout.cfg ../../component/nginx/buildout.cfg @@ -10,59 +11,78 @@ extends = parts = slapos-cookbook - watermarkingadmin eggs instance-profile -develop = - ${buildout:directory}/parts/watermarkingadmin - -[watermarkingadmin] +[nginx-rtmp-module] recipe = hexagonit.recipe.download -url = http://easicloud-p.cdn.hexaglobe.net/api10.tar.gz -#md5sum = +url = https://github.com/arut/nginx-rtmp-module/archive/748192877a98fea3088bcc6f9da5819de1b37663.zip +strip-top-level-dir = true + +[nginx] +recipe = hexagonit.recipe.cmmi +url = http://nginx.org/download/nginx-1.4.3.tar.gz +md5sum = 4740dad2f0ed7f5fa16e8caaa8a9438e +configure-options= + --with-ipv6 + --with-http_ssl_module + --with-ld-opt="-L ${zlib:location}/lib -L ${openssl:location}/lib -L ${pcre:location}/lib -Wl,-rpath=${pcre:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${openssl:location}/lib" + --with-cc-opt="-I ${pcre:location}/include -I ${openssl:location}/include -I ${zlib:location}/include" + --add-module=${nginx-rtmp-module:location} [eggs] recipe = zc.recipe.egg eggs = - watermarkingadmin slapos.toolbox + collective.recipe.template + + + +[instance-profile] +recipe = slapos.recipe.template +url = ${:_profile_base_location_}/instance.cfg.in +output = ${buildout:directory}/instance.cfg +#md5sum = 650cd2527158734fd6ccd9ec374b5e69 +mode = 0644 + +[instance-streaming-profile] +recipe = hexagonit.recipe.download +url = ${:_profile_base_location_}/instance-streaming.cfg.jinja2 +mode = 644 +#md5sum = e16c15f72fdeb92ce1854bc25daf5ad7 +download-only = true +on-update = true + +[instance-streaming-frontend-profile] +recipe = slapos.recipe.template:jinja2 +template = ${:_profile_base_location_}/instance-streaming-frontend.cfg.jinja2 +rendered = ${buildout:directory}/template-streaming-frontend.cfg +extensions = jinja2.ext.do +context = + key develop_eggs_directory buildout:develop-eggs-directory + key eggs_directory buildout:eggs-directory + raw nginx_conf_in ${nginx-frontend.conf.in:location}/nginx-frontend.conf.in + raw nginx_executable_location ${nginx:location}/sbin/nginx +mode = 0644 -[watermarkadmin.ini.in] +[nginx.conf.in] recipe = slapos.recipe.download url = ${:_profile_base_location_}/template/${:_buildout_section_name_} -md5sum = 2edc2acd102a465a0f21d8cd982ba4bf +#md5sum = 7e41dfcb633ce52be42457ffd5b123d8 download-only = true #filename = template.in mode = 0644 location = ${buildout:parts-directory}/${:_buildout_section_name_} -[nginx.conf.in] +[nginx-frontend.conf.in] recipe = slapos.recipe.download url = ${:_profile_base_location_}/template/${:_buildout_section_name_} -md5sum = 7e41dfcb633ce52be42457ffd5b123d8 +#md5sum = 7e41dfcb633ce52be42457ffd5b123d8 download-only = true #filename = template.in mode = 0644 location = ${buildout:parts-directory}/${:_buildout_section_name_} -[instance-profile] -recipe = slapos.recipe.template -url = ${:_profile_base_location_}/instance.cfg.in -output = ${buildout:directory}/instance.cfg -#md5sum = 650cd2527158734fd6ccd9ec374b5e69 -mode = 0644 - -[watermarking-instance-profile] -recipe = slapos.recipe.template -url = ${:_profile_base_location_}/instance-watermarking.cfg.in -output = ${buildout:directory}/instance-watermarking.cfg -#md5sum = 76c88bfc59bc9c2d05fa13cc960349c7 -mode = 0644 +[versions] +hexagonit.recipe.download = 1.7nxd002 -[edge-instance-profile] -recipe = slapos.recipe.template -url = ${:_profile_base_location_}/instance-edge.cfg.in -output = ${buildout:directory}/instance-edge.cfg -#md5sum = 650cd2527158734fd6ccd9ec374b5e69 -mode = 0644 diff --git a/software/hexaglobe-watermarking/instance-edge.cfg.in b/software/hexaglobe-watermarking/instance-edge.cfg.in deleted file mode 100644 index ce7004bac9f6459ba499eb603fc04d92b021d756..0000000000000000000000000000000000000000 --- a/software/hexaglobe-watermarking/instance-edge.cfg.in +++ /dev/null @@ -1,26 +0,0 @@ -# This instance will request other instances of lamp-generic depending on a -# list of countries. - -[buildout] - -parts = - request-edge - publish-connection-parameter - -eggs-directory = ${buildout:eggs-directory} -develop-eggs-directory = ${buildout:develop-eggs-directory} -offline = true - -[request-edge] -<= slap-connection -recipe = slapos.cookbook:request.edge -# This magic parameter triggers several requests, one request per country. -name = watermark -country-list = $${slap-parameter:country-list} -software-url = $${slap-connection:software-release-url} -software-type = default -return = url admin-url admin-url-ipv6 - -[publish-connection-parameter] -recipe = slapos.cookbook:publishsection -section-list = request-edge diff --git a/software/hexaglobe-watermarking/instance-streaming-frontend.cfg.jinja2 b/software/hexaglobe-watermarking/instance-streaming-frontend.cfg.jinja2 new file mode 100644 index 0000000000000000000000000000000000000000..9a2b3c379ebb2461d6d0ade4631267cf1bdc1192 --- /dev/null +++ b/software/hexaglobe-watermarking/instance-streaming-frontend.cfg.jinja2 @@ -0,0 +1,67 @@ +[buildout] +parts = + directory + nginx + nginx-promise + publish-connection-parameter + +# Define egg directories to be the one from Software Release +# (/opt/slapgrid/...) +eggs-directory = {{ eggs_directory }} +develop-eggs-directory = {{ develop_eggs_directory }} +offline = true + +# Create needed directories +[directory] +recipe = slapos.cookbook:mkdirectory +home = ${buildout:directory} +bin = ${:home}/bin +etc = ${:home}/etc +srv = ${:home}/srv +service = ${:etc}/service +promise = ${:etc}/promise +var = ${:home}/var + +backup = ${:srv}/backup +log = ${:var}/log +run = ${:var}/run + +nginx-configuration = ${:etc}/nginx +nginx-vhost-configuration = ${:nginx-configuration}/vhost +nginx-log = ${:home}/logs +nginx-cache = ${:var}/cache +nginx-temp-path = ${:srv}/nginx-proxy + + +# Deploy nginx +[nginx-configuration] +recipe = collective.recipe.template +input = {{ nginx_conf_in }} +output = ${directory:nginx-configuration}/nginx.conf +frontend-port = 1935 +frontend-http-port = 8080 +frontend-ip = [${slap-network-information:global-ipv6}] +backend-port = ${slap-parameter:backend-port} +backend-host = ${slap-parameter:backend-host} +home-directory = ${buildout:directory} +mode = 700 + +[nginx] +recipe = slapos.cookbook:wrapper +command-line = {{ nginx_executable_location }} -c ${nginx-configuration:output} -p ${directory:home} +wrapper-path = ${directory:service}/nginx + +[nginx-promise] +recipe = slapos.cookbook:check_port_listening +path = ${directory:promise}/nginx-promise +hostname = ${slap-network-information:global-ipv6} +port = ${nginx-configuration:frontend-port} + + + +# Publish instance connection parameters +[publish-connection-parameter] +recipe = slapos.cookbook:publish +url = rtmp://${nginx-configuration:frontend-ip} +stat-url = http://${nginx-configuration:frontend-ip}:${nginx-configuration:frontend-http-port}/stat + diff --git a/software/hexaglobe-watermarking/instance-streaming.cfg.jinja2 b/software/hexaglobe-watermarking/instance-streaming.cfg.jinja2 new file mode 100644 index 0000000000000000000000000000000000000000..ef5e1a6eea77f7311effc3668eb270b563219e3d --- /dev/null +++ b/software/hexaglobe-watermarking/instance-streaming.cfg.jinja2 @@ -0,0 +1,107 @@ +{% set frontend_count = slapparameter_dict.get('frontend-count', 2)|int %} +[buildout] +parts = + directory + nginx + nginx-promise + publish-connection-parameter +{% for i in range(frontend_count) %} + request-frontend-{{i}} +{% endfor %} + +# Define egg directories to be the one from Software Release +# (/opt/slapgrid/...) +eggs-directory = {{ eggs_directory }} +develop-eggs-directory = {{ develop_eggs_directory }} +offline = true + +# XXX: shoudl disappear in favor of slapparameter given by jinja +[slap-parameter] +# Set default parameters +backend-port = 1935 +frontend-port = 1935 + +# Create needed directories +[directory] +recipe = slapos.cookbook:mkdirectory +home = ${buildout:directory} +bin = ${:home}/bin +etc = ${:home}/etc +srv = ${:home}/srv +service = ${:etc}/service +promise = ${:etc}/promise +var = ${:home}/var + +backup = ${:srv}/backup +log = ${:var}/log +run = ${:var}/run + +nginx-configuration = ${:etc}/nginx +nginx-vhost-configuration = ${:nginx-configuration}/vhost +nginx-log = ${:home}/logs +nginx-cache = ${:var}/cache +nginx-temp-path = ${:srv}/nginx-proxy + + + +# Deploy nginx +[nginx-configuration] +recipe = collective.recipe.template +input = {{ nginx_conf_in }} +output = ${directory:nginx-configuration}/nginx.conf +backend-port = ${slap-parameter:backend-port} +backend-ip = [${slap-network-information:global-ipv6}] +home-directory = ${buildout:directory} +mode = 700 + +[nginx] +recipe = slapos.cookbook:wrapper +command-line = {{ nginx_executable_location }} -c ${nginx-configuration:output} -p ${directory:home} +wrapper-path = ${directory:service}/nginx + +[nginx-promise] +recipe = slapos.cookbook:check_port_listening +path = ${directory:promise}/nginx-promise +hostname = ${slap-network-information:global-ipv6} +port = ${nginx-configuration:backend-port} + + + + +# Request frontends for streaming +{% for i in range(frontend_count) %} +[request-frontend-{{i}}] +recipe = slapos.cookbook:request + +software-url = ${slap-parameter:frontend-software-url} +server-url = ${slap-connection:server-url} +key-file = ${slap-connection:key-file} +cert-file = ${slap-connection:cert-file} +computer-id = ${slap-connection:computer-id} +partition-id = ${slap-connection:partition-id} + +name = frontend-{{i}} +software-url = ${slap-connection:software-release-url} +software-type = frontend +config = backend-port backend-host +config-backend-port = ${nginx-configuration:backend-port} +config-backend-host = ${nginx-configuration:backend-ip} +config-frontend-port = ${slap-parameter:frontend-port} +return = url stat-url + +sla = mode +sla-mode = unique_by_network + +[publish-connection-parameter] +frontend-{{i}}-url = ${request-frontend-{{i}}:connection-url} +frontend-{{i}}-stat-url = ${request-frontend-{{i}}:connection-stat-url} + +{% endfor %} + + + +# Publish instance connection parameters +[publish-connection-parameter] +recipe = slapos.cookbook:publish +backend-url = rtmp://[${slap-network-information:global-ipv6}]:${nginx-configuration:backend-port} + diff --git a/software/hexaglobe-watermarking/instance-watermarking.cfg.in b/software/hexaglobe-watermarking/instance-watermarking.cfg.in deleted file mode 100644 index f5e418bdb760a6bdd44db1dc1544e20295f98685..0000000000000000000000000000000000000000 --- a/software/hexaglobe-watermarking/instance-watermarking.cfg.in +++ /dev/null @@ -1,195 +0,0 @@ -[buildout] -parts = - directory - nginx - watermarkadmin - logrotate - logrotate-entry-nginx - cron - cron-entry-logrotate - watermarkadmin-promise - publish-connection-parameter - -# Define egg directories to be the one from Software Release -# (/opt/slapgrid/...) -eggs-directory = ${buildout:eggs-directory} -develop-eggs-directory = ${buildout:develop-eggs-directory} -offline = true - -# Fetch parameters defined in SlapOS Master for this instance -[instance-parameter] -recipe = slapos.cookbook:slapconfiguration -computer = $${slap-connection:computer-id} -partition = $${slap-connection:partition-id} -url = $${slap-connection:server-url} -key = $${slap-connection:key-file} -cert = $${slap-connection:cert-file} - -# Set default parameters -http-port = 8080 -administration-port = 5000 - - -# Create needed directories -[directory] -recipe = slapos.cookbook:mkdirectory -home = $${buildout:directory} -bin = $${:home}/bin -etc = $${:home}/etc -srv = $${:home}/srv -service = $${:etc}/service -promise = $${:etc}/promise -var = $${:home}/var - -backup = $${:srv}/backup -log = $${:var}/log -run = $${:var}/run - -nginx-configuration = $${:etc}/nginx -nginx-vhost-configuration = $${:nginx-configuration}/vhost -nginx-log = $${:home}/logs -nginx-cache = $${:var}/cache -nginx-temp-path = $${:srv}/nginx-proxy - -cron-entries = $${:etc}/cron.d -crontabs = $${:etc}/crontabs -cronstamps = $${:etc}/cronstamps - -logrotate-entries = $${:etc}/logrotate.d -logrotate-backup = $${:backup}/logrotate - - -# Deploy nginx -[nginx-configuration] -recipe = slapos.cookbook:configurationfile -configuration-template-path = ${nginx.conf.in:location}/nginx.conf.in -configuration-file-path = $${directory:nginx-configuration}/nginx.conf - -vhost-configuration-directory-location = $${directory:nginx-vhost-configuration} -nginx-prefix = ${nginx-enable-sub:location} -nginx-temp-path = $${directory:nginx-temp-path} -pid-file = $${directory:run}/nginx.pid -home-directory = $${directory:home} - - -[nginx] -recipe = slapos.cookbook:wrapper -nginx-executable = $${:nginx-prefix}/sbin/nginx -nginx-prefix = ${nginx-enable-sub:location} -command-line = $${:nginx-executable} -c $${nginx-configuration:configuration-file-path} -p $${directory:home} -wrapper-path = $${directory:service}/nginx - - -# Deploy administration API server -[watermarkadmin-configuration] -recipe = slapos.cookbook:configurationfile -configuration-template-path = ${watermarkadmin.ini.in:location}/watermarkadmin.ini.in -configuration-file-path = $${directory:etc}/watermarkadmin.ini - -flask-database-location = $${directory:srv}/flask.db - -nginx-prefix = $${directory:home} -nginx-port = $${instance-parameter:http-port} -nginx-configuration-file-location = $${nginx-configuration:configuration-file-path} -nginx-executable-location = $${nginx:nginx-executable} -nginx-pidfile-location = $${nginx-configuration:pid-file} -nginx-vhost-configuration-directory-location = $${directory:nginx-vhost-configuration} -nginx-log-directory-location = $${directory:nginx-log} -nginx-cache-directory-location = $${directory:nginx-cache} -global-ip = $${instance-parameter:ipv6-random} - -[watermarkadmin] -recipe = slapos.cookbook:wrapper -command-line = - ${buildout:directory}/bin/api $${watermarkadmin-configuration:configuration-file-path} -wrapper-path = $${directory:service}/watermarkingadmin - - -# Deploy logrotate -[logrotate] -recipe = slapos.cookbook:logrotate -# Binaries -logrotate-binary = ${logrotate:location}/usr/sbin/logrotate -gzip-binary = ${gzip:location}/bin/gzip -gunzip-binary = ${gzip:location}/bin/gunzip -# Directories -wrapper = $${directory:bin}/logrotate -conf = $${directory:etc}/logrotate.conf -logrotate-entries = $${directory:logrotate-entries} -backup = $${directory:logrotate-backup} -state-file = $${directory:srv}/logrotate.status - -[logrotate-entry-nginx] -<= logrotate -recipe = slapos.cookbook:logrotate.d -name = nginx -log = $${watermarkadmin-configuration:nginx-log-directory-location}/*.log -frequency = daily -rotate-num = 30 -post = ${buildout:bin-directory}/killpidfromfile $${nginx-configuration:pid-file} SIGUSR1 -sharedscripts = true -notifempty = true -create = true - - -# Deploy cron and configure it -[cron-simplelogger] -recipe = slapos.cookbook:simplelogger -wrapper = $${directory:bin}/cron_simplelogger -log = $${directory:log}/crond.log - -[cron] -recipe = slapos.cookbook:cron -dcrond-binary = ${dcron:location}/sbin/crond -cron-entries = $${directory:cron-entries} -crontabs = $${directory:crontabs} -cronstamps = $${directory:cronstamps} -catcher = $${cron-simplelogger:wrapper} -binary = $${directory:service}/crond - -[cron-entry-logrotate] -<= cron -recipe = slapos.cookbook:cron.d -name = logrotate -frequency = 0 0 * * * -command = $${logrotate:wrapper} - - - - -# Request frontend -[request-frontend] -<= slap-connection -recipe = slapos.cookbook:requestoptional -name = Frontend for $${slap-connection:computer-id} $${slap-connection:partition-id} -# XXX We have hardcoded SR URL here. -software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg -slave = true -config = url -config-url = http://[$${instance-parameter:ipv6-random}]:5000 -return = site_url - - -# Check promises -[watermarkadmin-promise] -recipe = slapos.cookbook:check_port_listening -path = $${directory:promise}/watermarkadmin-promise -hostname = $${instance-parameter:ipv6-random} -port = $${instance-parameter:administration-port} - -[watermarkadmin-promise-frontend] -recipe = slapos.cookbook:check_page_content -path = $${directory:promises}/watermarkadmin-frontend-promise -url = $${request-frontend:connection-site_url} -dash_path = ${dash:location}/bin/dash -curl_path = ${curl:location}/bin/curl -match = If you entered the URL manually please check your spelling and try again. - -# Publish instance connection parameters -[publish-connection-parameter] -recipe = slapos.cookbook:publish -url = http://[$${instance-parameter:ipv6-random}]:$${instance-parameter:http-port} -# XXX-Cedric: hardcoded -admin-url-ipv6 = http://[$${instance-parameter:ipv6-random}]:5000 -admin-url = $${request-frontend:connection-site_url} - diff --git a/software/hexaglobe-watermarking/instance.cfg.in b/software/hexaglobe-watermarking/instance.cfg.in index 3f2c196140ceadb5f7f994a96868d3a14f510f85..6023a59f5ecefe4789df761767540c4bfed101d7 100644 --- a/software/hexaglobe-watermarking/instance.cfg.in +++ b/software/hexaglobe-watermarking/instance.cfg.in @@ -8,7 +8,29 @@ offline = true [switch-softwaretype] recipe = slapos.cookbook:softwaretype -default = ${watermarking-instance-profile:output} -watermarking = ${watermarking-instance-profile:output} -edge = ${edge-instance-profile:output} +default = $${:backend} +backend = $${dynamic-template-streaming:rendered} +frontend = ${instance-streaming-frontend-profile:rendered} + + +[slap-configuration] +recipe = slapos.cookbook:slapconfiguration.serialised +computer = $${slap-connection:computer-id} +partition = $${slap-connection:partition-id} +url = $${slap-connection:server-url} +key = $${slap-connection:key-file} +cert = $${slap-connection:cert-file} + +[dynamic-template-streaming] +recipe = slapos.recipe.template:jinja2 +template = ${instance-streaming-profile:location}/instance-streaming.cfg.jinja2 +rendered = $${buildout:directory}/template-streaming.cfg +extensions = jinja2.ext.do +context = + key develop_eggs_directory buildout:develop-eggs-directory + key eggs_directory buildout:eggs-directory + key slapparameter_dict slap-configuration:configuration + raw nginx_conf_in ${nginx.conf.in:location}/nginx.conf.in + raw nginx_executable_location ${nginx:location}/sbin/nginx +mode = 0644 diff --git a/software/hexaglobe-watermarking/software.cfg b/software/hexaglobe-watermarking/software.cfg new file mode 100644 index 0000000000000000000000000000000000000000..af4c9312009ea333cf93d1946a66c153848e561f --- /dev/null +++ b/software/hexaglobe-watermarking/software.cfg @@ -0,0 +1,120 @@ +[buildout] +extends = common.cfg + + +[networkcache] +# signature certificates of the following uploaders. +# Romain Courteaud +# Sebastien Robin +# Kazuhiko Shiozaki +# Cedric de Saint Martin +# Yingjie Xu +# Gabriel Monnerat +# Test Agent (Automatic update from tests) +# Aurélien Calonne +signature-certificate-list = + -----BEGIN CERTIFICATE----- + MIIB4DCCAUkCADANBgkqhkiG9w0BAQsFADA5MQswCQYDVQQGEwJGUjEZMBcGA1UE + CBMQRGVmYXVsdCBQcm92aW5jZTEPMA0GA1UEChMGTmV4ZWRpMB4XDTExMDkxNTA5 + MDAwMloXDTEyMDkxNTA5MDAwMlowOTELMAkGA1UEBhMCRlIxGTAXBgNVBAgTEERl + ZmF1bHQgUHJvdmluY2UxDzANBgNVBAoTBk5leGVkaTCBnzANBgkqhkiG9w0BAQEF + AAOBjQAwgYkCgYEApYZv6OstoqNzxG1KI6iE5U4Ts2Xx9lgLeUGAMyfJLyMmRLhw + boKOyJ9Xke4dncoBAyNPokUR6iWOcnPHtMvNOsBFZ2f7VA28em3+E1JRYdeNUEtX + Z0s3HjcouaNAnPfjFTXHYj4um1wOw2cURSPuU5dpzKBbV+/QCb5DLheynisCAwEA + ATANBgkqhkiG9w0BAQsFAAOBgQBCZLbTVdrw3RZlVVMFezSHrhBYKAukTwZrNmJX + mHqi2tN8tNo6FX+wmxUUAf3e8R2Ymbdbn2bfbPpcKQ2fG7PuKGvhwMG3BlF9paEC + q7jdfWO18Zp/BG7tagz0jmmC4y/8akzHsVlruo2+2du2freE8dK746uoMlXlP93g + QUUGLQ== + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + MIIB8jCCAVugAwIBAgIJAPu2zchZ2BxoMA0GCSqGSIb3DQEBBQUAMBIxEDAOBgNV + BAMMB3RzeGRldjMwHhcNMTExMDE0MTIxNjIzWhcNMTIxMDEzMTIxNjIzWjASMRAw + DgYDVQQDDAd0c3hkZXYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrPbh+ + YGmo6mWmhVb1vTqX0BbeU0jCTB8TK3i6ep3tzSw2rkUGSx3niXn9LNTFNcIn3MZN + XHqbb4AS2Zxyk/2tr3939qqOrS4YRCtXBwTCuFY6r+a7pZsjiTNddPsEhuj4lEnR + L8Ax5mmzoi9nE+hiPSwqjRwWRU1+182rzXmN4QIDAQABo1AwTjAdBgNVHQ4EFgQU + /4XXREzqBbBNJvX5gU8tLWxZaeQwHwYDVR0jBBgwFoAU/4XXREzqBbBNJvX5gU8t + LWxZaeQwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQA07q/rKoE7fAda + FED57/SR00OvY9wLlFEF2QJ5OLu+O33YUXDDbGpfUSF9R8l0g9dix1JbWK9nQ6Yd + R/KCo6D0sw0ZgeQv1aUXbl/xJ9k4jlTxmWbPeiiPZEqU1W9wN5lkGuLxV4CEGTKU + hJA/yXa1wbwIPGvX3tVKdOEWPRXZLg== + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + MIIB7jCCAVegAwIBAgIJAJWA0jQ4o9DGMA0GCSqGSIb3DQEBBQUAMA8xDTALBgNV + BAMMBHg2MXMwIBcNMTExMTI0MTAyNDQzWhgPMjExMTEwMzExMDI0NDNaMA8xDTAL + BgNVBAMMBHg2MXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANdJNiFsRlkH + vq2kHP2zdxEyzPAWZH3CQ3Myb3F8hERXTIFSUqntPXDKXDb7Y/laqjMXdj+vptKk + 3Q36J+8VnJbSwjGwmEG6tym9qMSGIPPNw1JXY1R29eF3o4aj21o7DHAkhuNc5Tso + 67fUSKgvyVnyH4G6ShQUAtghPaAwS0KvAgMBAAGjUDBOMB0GA1UdDgQWBBSjxFUE + RfnTvABRLAa34Ytkhz5vPzAfBgNVHSMEGDAWgBSjxFUERfnTvABRLAa34Ytkhz5v + PzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAFLDS7zNhlrQYSQO5KIj + z2RJe3fj4rLPklo3TmP5KLvendG+LErE2cbKPqnhQ2oVoj6u9tWVwo/g03PMrrnL + KrDm39slYD/1KoE5kB4l/p6KVOdeJ4I6xcgu9rnkqqHzDwI4v7e8/D3WZbpiFUsY + vaZhjNYKWQf79l6zXfOvphzJ + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + MIIB9jCCAV+gAwIBAgIJAO4V/jiMoICoMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV + BAMMCENPTVAtMjMyMCAXDTEyMDIxNjExMTAyM1oYDzIxMTIwMTIzMTExMDIzWjAT + MREwDwYDVQQDDAhDT01QLTIzMjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA + wi/3Z8W9pUiegUXIk/AiFDQ0UJ4JFAwjqr+HSRUirlUsHHT+8DzH/hfcTDX1I5BB + D1ADk+ydXjMm3OZrQcXjn29OUfM5C+g+oqeMnYQImN0DDQIOcUyr7AJc4xhvuXQ1 + P2pJ5NOd3tbd0kexETa1LVhR6EgBC25LyRBRae76qosCAwEAAaNQME4wHQYDVR0O + BBYEFMDmW9aFy1sKTfCpcRkYnP6zUd1cMB8GA1UdIwQYMBaAFMDmW9aFy1sKTfCp + cRkYnP6zUd1cMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAskbFizHr + b6d3iIyN+wffxz/V9epbKIZVEGJd/6LrTdLiUfJPec7FaxVCWNyKBlCpINBM7cEV + Gn9t8mdVQflNqOlAMkOlUv1ZugCt9rXYQOV7rrEYJBWirn43BOMn9Flp2nibblby + If1a2ZoqHRxoNo2yTmm7TSYRORWVS+vvfjY= + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + MIIB9jCCAV+gAwIBAgIJAIlBksrZVkK8MA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV + BAMMCENPTVAtMzU3MCAXDTEyMDEyNjEwNTUyOFoYDzIxMTIwMTAyMTA1NTI4WjAT + MREwDwYDVQQDDAhDT01QLTM1NzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA + ts+iGUwi44vtIfwXR8DCnLtHV4ydl0YTK2joJflj0/Ws7mz5BYkxIU4fea/6+VF3 + i11nwBgYgxQyjNztgc9u9O71k1W5tU95yO7U7bFdYd5uxYA9/22fjObaTQoC4Nc9 + mTu6r/VHyJ1yRsunBZXvnk/XaKp7gGE9vNEyJvPn2bkCAwEAAaNQME4wHQYDVR0O + BBYEFKuGIYu8+6aEkTVg62BRYaD11PILMB8GA1UdIwQYMBaAFKuGIYu8+6aEkTVg + 62BRYaD11PILMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAMoTRpBxK + YLEZJbofF7gSrRIcrlUJYXfTfw1QUBOKkGFFDsiJpEg4y5pUk1s5Jq9K3SDzNq/W + it1oYjOhuGg3al8OOeKFrU6nvNTF1BAvJCl0tr3POai5yXyN5jlK/zPfypmQYxE+ + TaqQSGBJPVXYt6lrq/PRD9ciZgKLOwEqK8w= + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + MIIB9jCCAV+gAwIBAgIJAPHoWu90gbsgMA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNV + BAMMCXZpZmlibm9kZTAeFw0xMjAzMTkyMzIwNTVaFw0xMzAzMTkyMzIwNTVaMBQx + EjAQBgNVBAMMCXZpZmlibm9kZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA + ozBijpO8PS5RTeKTzA90vi9ezvv4vVjNaguqT4UwP9+O1+i6yq1Y2W5zZxw/Klbn + oudyNzie3/wqs9VfPmcyU9ajFzBv/Tobm3obmOqBN0GSYs5fyGw+O9G3//6ZEhf0 + NinwdKmrRX+d0P5bHewadZWIvlmOupcnVJmkks852BECAwEAAaNQME4wHQYDVR0O + BBYEFF9EtgfZZs8L2ZxBJxSiY6eTsTEwMB8GA1UdIwQYMBaAFF9EtgfZZs8L2ZxB + JxSiY6eTsTEwMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAc43YTfc6 + baSemaMAc/jz8LNLhRE5dLfLOcRSoHda8y0lOrfe4lHT6yP5l8uyWAzLW+g6s3DA + Yme/bhX0g51BmI6gjKJo5DoPtiXk/Y9lxwD3p7PWi+RhN+AZQ5rpo8UfwnnN059n + yDuimQfvJjBFMVrdn9iP6SfMjxKaGk6gVmI= + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + MIIB9jCCAV+gAwIBAgIJAKRvzcy7OH0UMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV + BAMMCENPTVAtNzcyMCAXDTEyMDgxMDE1NDI1MVoYDzIxMTIwNzE3MTU0MjUxWjAT + MREwDwYDVQQDDAhDT01QLTc3MjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA + o7aipd6MbnuGDeR1UJUjuMLQUariAyQ2l2ZDS6TfOwjHiPw/mhzkielgk73kqN7A + sUREx41eTcYCXzTq3WP3xCLE4LxLg1eIhd4nwNHj8H18xR9aP0AGjo4UFl5BOMa1 + mwoyBt3VtfGtUmb8whpeJgHhqrPPxLoON+i6fIbXDaUCAwEAAaNQME4wHQYDVR0O + BBYEFEfjy3OopT2lOksKmKBNHTJE2hFlMB8GA1UdIwQYMBaAFEfjy3OopT2lOksK + mKBNHTJE2hFlMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAaNRx6YN2 + M/p3R8/xS6zvH1EqJ3FFD7XeAQ52WuQnKSREzuw0dsw12ClxjcHiQEFioyTiTtjs + 5pW18Ry5Ie7iFK4cQMerZwWPxBodEbAteYlRsI6kePV7Gf735Y1RpuN8qZ2sYL6e + x2IMeSwJ82BpdEI5niXxB+iT0HxhmR+XaMI= + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + MIIB+DCCAWGgAwIBAgIJAKGd0vpks6T/MA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNV + BAMMCUNPTVAtMTU4NDAgFw0xMzA2MjAxMjE5MjBaGA8yMTEzMDUyNzEyMTkyMFow + FDESMBAGA1UEAwwJQ09NUC0xNTg0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB + gQDZTH9etPUC+wMZQ3UIiOwyyCfHsJ+7duCFYjuo1uZrhtDt/fp8qb8qK9ob+df3 + EEYgA0IgI2j/9jNUEnKbc5+OrfKznzXjrlrH7zU8lKBVNCLzQuqBKRNajZ+UvO8R + nlqK2jZCXP/p3HXDYUTEwIR5W3tVCEn/Vda4upTLcPVE5wIDAQABo1AwTjAdBgNV + HQ4EFgQU7KXaNDheQWoy5uOU01tn1M5vNkEwHwYDVR0jBBgwFoAU7KXaNDheQWoy + 5uOU01tn1M5vNkEwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQASmqCU + Znbvu6izdicvjuE3aKnBa7G++Fdp2bdne5VCwVbVLYCQWatB+n4crKqGdnVply/u + +uZ16u1DbO9rYoKgWqjLk1GfiLw5v86pd5+wZd5I9QJ0/Sbz2vZk5S4ciMIGwArc + m711+GzlW5xe6GyH9SZaGOPAdUbI6JTDwLzEgA== + -----END CERTIFICATE----- + diff --git a/software/hexaglobe-watermarking/template/nginx-frontend.conf.in b/software/hexaglobe-watermarking/template/nginx-frontend.conf.in new file mode 100644 index 0000000000000000000000000000000000000000..6b22d81962e4da70809f58cf66ebb7fcb293d22b --- /dev/null +++ b/software/hexaglobe-watermarking/template/nginx-frontend.conf.in @@ -0,0 +1,33 @@ +rtmp_auto_push on; +rtmp_auto_push_reconnect 1s; + +daemon off; + +events { + worker_connections 1024; +} + +rtmp_socket_dir ${:home-directory}; + +rtmp { + server { + listen ${:frontend-ip}:${:frontend-port}; + deny publish all; + allow play all; + + application easicloud { + live on; + pull rtmp://${:backend-host}:${:backend-port}/easicloud/live; + session_relay on; + } + } +} + +http { + server { + listen ${:frontend-ip}:${:frontend-http-port}; + location /stat { + rtmp_stat all; + } + } +} diff --git a/software/hexaglobe-watermarking/template/nginx.conf.in b/software/hexaglobe-watermarking/template/nginx.conf.in index 1c666d3b0aa3a35be476da3a8c8d738a4d6c17f3..1e2372b27d9da51759c11dbbc1717984e04aa1f4 100644 --- a/software/hexaglobe-watermarking/template/nginx.conf.in +++ b/software/hexaglobe-watermarking/template/nginx.conf.in @@ -1,30 +1,26 @@ -daemon off; +rtmp_auto_push on; +rtmp_auto_push_reconnect 1s; -worker_processes 1; +daemon off; +worker_processes 1; -pid %(pid-file)s; +# XXX: add pid events { - worker_connections 1024; + worker_connections 1024; } -http { - log_format up_log '$remote_addr - $remote_user [$time_local] $request ' - 'upstream_response_time $upstream_response_time ' - 'msec $msec request_time $request_time' - 'cache_status $upstream_cache_status'; - - log_format sysl '"$time_local", "$http_referer", "$host", "$request", ' - '"$status", "$http_user_agent", "$remote_addr", ' - '"$bytes_sent", "$request_time"'; +rtmp_socket_dir ${:home-directory}; - proxy_temp_path %(nginx-temp-path)s; +rtmp { + server { + listen ${:backend-ip}:${:backend-port}; + allow publish all; + allow play all; - include %(nginx-prefix)s/conf/mime.types; - default_type application/octet-stream; - sendfile on; - - keepalive_timeout 65; - - include %(vhost-configuration-directory-location)s/*.conf; + application easicloud { + live on; + } + } } + diff --git a/software/hexaglobe-watermarking/template/watermarkadmin.ini.in b/software/hexaglobe-watermarking/template/watermarkadmin.ini.in deleted file mode 100644 index 5f91db5ab6feb218f3a852cbdf4ae9881c15c995..0000000000000000000000000000000000000000 --- a/software/hexaglobe-watermarking/template/watermarkadmin.ini.in +++ /dev/null @@ -1,20 +0,0 @@ -[nginx] -vhosts = %(nginx-vhost-configuration-directory-location)s -log = %(nginx-log-directory-location)s -data = %(nginx-cache-directory-location)s -max_size = 1024m -inactive = 120m -port = %(nginx-port)s -pidfile = %(nginx-pidfile-location)s -nginx_bin = %(nginx-executable-location)s -conf = %(nginx-configuration-file-location)s -prefix = %(nginx-prefix)s - -[flask] -DATABASE = %(flask-database-location)s -MAX_CONTENT_LENGTH = 4096 - -[api] -user = admin -pass = 276eeed9056ac2486f9c0237bb0be227 -ip = %(global-ip)s