[buildout] parts = certificate-authority publish-apache-zope-backend-connection-string zope-instance apache-zope-backend-instance ca-apache-zope-backend logrotate erp5-certificate-authority logrotate-entry-zope cron cron-entry-logrotate binary-link eggs-directory = ${buildout:eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory} offline = true [slap-parameter] # By default backend disallows the access access-control-string = none [publish-apache-zope-backend-connection-string] recipe = slapos.cookbook:publishurl url = https://$${zope-instance:user}:$${zope-instance:password}@[$${apache-zope-backend-instance:ip}]:$${apache-zope-backend-instance:port} deadlock-url = $${:url}/$${zope-instance:deadlock-path}?$${zope-instance:deadlock-password} [apache-zope-backend-instance] recipe = slapos.cookbook:apache.zope.backend backend = http://$${zope-instance:ip}:$${zope-instance:port}/ ip = $${slap-network-information:global-ipv6} port = 16001 wrapper = $${rootdirectory:bin}/apache key-file = $${directory:apache-conf}/apache.key cert-file = $${directory:apache-conf}/apache.crt configuration-file = $${directory:apache-conf}/apache.conf access-control-string = $${slap-parameter:access-control-string} pid-file = $${basedirectory:run}/apache.pid lock-file = $${basedirectory:run}/apache.lock error-log = $${basedirectory:log}/apache-error.log access-log = $${basedirectory:log}/apache-access.log apache-binary = ${apache:location}/bin/httpd [ca-apache-zope-backend] <= certificate-authority recipe = slapos.cookbook:certificate_authority.request key-file = $${apache-zope-backend-instance:key-file} cert-file = $${apache-zope-backend-instance:cert-file} executable = $${apache-zope-backend-instance:wrapper} wrapper = $${basedirectory:services}/apache [zope-instance] recipe = slapos.cookbook:generic.zope # XXX: products won't be needed as soon as all ERP5 (and products-deps) # products will be eggified so then it will be possible to use them thanks to # availability in software's eggs products = ${products:list} # Options user = zope port = 12001 ip = $${slap-network-information:local-ipv4} zodb-cache-size = 5000 thread-amount = 4 zodb-path = $${directory:zodb}/main.cfg deadlock-path = /manage_debug_threads # Paths wrapper = $${basedirectory:services}/zope-development instance-path = $${directory:instance} instance-etc = $${directory:instance-etc} instance-products = $${directory:instance-products} bt5-repository = $${rootdirectory:var}/bt5_repository tmp-path = $${rootdirectory:tmp} bin-path = $${rootdirectory:bin} site-zcml = $${:instance-etc}/site.zcml logrotate-post = $${rootdirectory:bin}/zope-post-logrotate pid-file = $${basedirectory:run}/zope.pid lock-file = $${basedirectory:run}/zope.lock event-log = $${basedirectory:log}/zope-event.log z2-log = $${basedirectory:log}/zope-Z2.log configuration-file = $${rootdirectory:etc}/zope.conf inituser = $${:instance-path}/inituser # Binary information runzope-binary = ${buildout:bin-directory}/runzope # Defaults bt5-repository-list = [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 = $${rootdirectory:bin}/logrotate conf = $${rootdirectory:etc}/logrotate.conf logrotate-entries = $${directory:logrotate-entries} backup = $${directory:logrotate-backup} state-file = $${rootdirectory:srv}/logrotate.status [logrotate-entry-zope] <= logrotate recipe = slapos.cookbook:logrotate.d name = zope log = $${zope-instance:event-log} $${zope-instance:z2-log} frequency = daily rotate-num = 30 post = ${buildout:bin-directory}/killpidfromfile $${zope-instance:pid-file} SIGUSR2 sharedscripts = true notifempty = true create = true [logrotate-entry-apache-zope-backend] <= logrotate recipe = slapos.cookbook:logrotate.d name = zope log = $${apache-zope-backend-instance:error-log} $${apache-zope-backend-instance:access-log} frequency = daily rotate-num = 30 post = ${buildout:bin-directory}/killpidfromfile $${apache-zope-backend-instance:pid-file} SIGUSR1 sharedscripts = true notifempty = true create = true [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:binary} binary = $${basedirectory:services}/crond [cron-simplelogger] recipe = slapos.cookbook:simplelogger binary = $${rootdirectory:bin}/cron_simplelogger output = $${directory:cronoutput} [cron-entry-logrotate] <= cron recipe = slapos.cookbook:cron.d name = logrotate frequency = 0 0 * * * command = $${logrotate:wrapper} [binary-link] recipe = slapos.cookbook:symbolic.link target-directory = $${rootdirectory:bin} link-binary = ${coreutils:location}/bin/basename ${coreutils:location}/bin/cat ${coreutils:location}/bin/cp ${coreutils:location}/bin/ls ${coreutils:location}/bin/tr ${coreutils:location}/bin/uname ${git:location}/bin/git ${graphviz:location}/bin/dot ${grep:location}/bin/grep ${imagemagick:location}/bin/convert ${imagemagick:location}/bin/identify ${mariadb:location}/bin/mysql ${mariadb:location}/bin/mysqldump ${pdftk:location}/bin/pdftk ${sed:location}/bin/sed ${tesseract:location}/bin/tesseract ${w3m:location}/bin/w3m ${poppler:location}/bin/pdfinfo ${poppler:location}/bin/pdftotext ${poppler:location}/bin/pdftohtml [certificate-authority] recipe = slapos.cookbook:certificate_authority openssl-binary = ${openssl:location}/bin/openssl ca-dir = $${directory:ca-dir} requests-directory = $${cadirectory:requests} wrapper = $${basedirectory:services}/ca ca-private = $${cadirectory:private} ca-certs = $${cadirectory:certs} ca-newcerts = $${cadirectory:newcerts} ca-crl = $${cadirectory:crl} [cadirectory] recipe = slapos.cookbook:mkdirectory requests = $${directory:ca-dir}/requests private = $${directory:ca-dir}/private certs = $${directory:ca-dir}/certs newcerts = $${directory:ca-dir}/newcerts crl = $${directory:ca-dir}/crl [rootdirectory] recipe = slapos.cookbook:mkdirectory etc = $${buildout:directory}/etc var = $${buildout:directory}/var srv = $${buildout:directory}/srv bin = $${buildout:directory}/bin tmp = $${buildout:directory}/tmp [basedirectory] recipe = slapos.cookbook:mkdirectory log = $${rootdirectory:var}/log services = $${rootdirectory:etc}/run run = $${rootdirectory:var}/run backup = $${rootdirectory:srv}/backup [erp5-certificate-authority] recipe = slapos.cookbook:certificate_authority openssl-binary = ${openssl:location}/bin/openssl ca-dir = $${directory:erp5-ca-dir} requests-directory = $${erp5-cadirectory:requests} wrapper = $${basedirectory:services}/erp5-ca ca-private = $${erp5-cadirectory:private} ca-certs = $${erp5-cadirectory:certs} ca-newcerts = $${erp5-cadirectory:newcerts} ca-crl = $${erp5-cadirectory:crl} [erp5-cadirectory] recipe = slapos.cookbook:mkdirectory requests = $${directory:erp5-ca-dir}/requests/ private = $${directory:erp5-ca-dir}/private/ certs = $${directory:erp5-ca-dir}/certs/ newcerts = $${directory:erp5-ca-dir}/newcerts/ crl = $${directory:erp5-ca-dir}/crl/ [directory] recipe = slapos.cookbook:mkdirectory zodb = $${rootdirectory:srv}/zodb instance = $${rootdirectory:srv}/erp5shared instance-etc = $${:instance}/etc apache-conf = $${rootdirectory:etc}/apache instance-etc-package-include = $${:instance}/etc/package-include # because of bug in slapos.recipe.template keys are lowercased instance-document = $${:instance}/Document instance-propertysheet = $${:instance}/PropertySheet instance-products = $${:instance}/Products instance-extensions = $${:instance}/Extensions instance-constraint = $${:instance}/Constraint instance-import = $${:instance}/import instance-lib = $${:instance}/lib instance-tests = $${:instance}/tests erp5-ca-dir = $${rootdirectory:srv}/erp5-ssl/ ca-dir = $${rootdirectory:srv}/ssl cron-entries = $${rootdirectory:etc}/cron.d crontabs = $${rootdirectory:etc}/crontabs cronstamps = $${rootdirectory:etc}/cronstamps cronoutput = $${basedirectory:log}/cron logrotate-backup = $${basedirectory:backup}/logrotate logrotate-entries = $${rootdirectory:etc}/logrotate.d