[buildout] parts = nginx-service htpasswd htpasswd-runner publish-connection-information eggs-directory = ${buildout:eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory} offline = true [directory] recipe = slapos.cookbook:mkdirectory etc = $${buildout:directory}/etc bin = $${buildout:directory}/bin srv = $${buildout:directory}/srv var = $${buildout:directory}/var run = $${:var}/run log = $${:var}/log varnginx = $${:var}/nginx services = $${:etc}/service cron-entries = $${:etc}/cron.d www = $${:srv}/www ssl = $${:etc}/ssl ################################# # Nginx service ################################# [nginx-service] recipe = slapos.recipe.template url = ${template-nginx-service:output} output = $${directory:services}/nginx mode = 0700 virtual-depends = $${nginx-configuration:ip} [nginx-configuration] recipe = slapos.recipe.template url = ${template-nginx-configuration:output} output = $${directory:etc}/nginx.cfg mode = 0600 access_log = $${directory:log}/nginx-access.log error_log = $${directory:log}/nginx-error.log ip = $${slap-network-information:global-ipv6} local_ip = $${slap-network-information:local-ipv4} port = 9443 publisher_location_prefix = /pub publisher_push_stream_store_messages = off publisher_client_max_body_size = 16k publisher_client_body_buffer_size = 16k subscriber_allow_origin = '*' subscriber_location_prefix = /sub # Prevent to use credential if origin is star subscriber_allow_credential = 'false' subscriber_allow_methods = 'GET, HEAD, OPTIONS' subscriber_allow_headers = 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Alive,X-Requested-With,If-Modified-Since' [htpasswd] recipe = slapos.cookbook:generate.password storage-path = $${directory:etc}/.pwd bytes = 8 [htpasswd-runner] recipe = plone.recipe.command stop-on-error = true htpasswd-path = $${directory:etc}/.htpasswd command = if [ ! -f "$${:htpasswd-path}" ]; then ${buildout:bin-directory}/htpasswd -cb $${:htpasswd-path} $${:user} $${:password}; fi update-command = $${:command} user = admin password = $${htpasswd:passwd} [publish-connection-information] recipe = slapos.cookbook:publish init-password = $${htpasswd:passwd} init-user = $${htpasswd-runner:user} publisher-url = http://$${htpasswd-runner:user}:$${htpasswd:passwd}@[$${nginx-configuration:ip}]:$${nginx-configuration:port}$${nginx-configuration:publisher_location_prefix} subscriber-url = http://$${htpasswd-runner:user}:$${htpasswd:passwd}@[$${nginx-configuration:ip}]:$${nginx-configuration:port}$${nginx-configuration:subscriber_location_prefix}