[buildout] parts = url request-mariadb apache-php stunnel certificate-authority ca-stunnel logrotate logrotate-entry-apache logrotate-entry-stunnel cron cron-entry-logrotate eggs-directory = ${buildout:eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory} offline = true [url] recipe = slapos.cookbook:publishurl url = http://[$${apache-php:ip}]:$${apache-php:port}/ [mariadb-urlparse] recipe = slapos.cookbook:urlparse url = $${request-mariadb:connection-url} [apache-php] recipe = slapos.cookbook:apachephp source = ${application:location} template = ${application-template:location}/${application-template:filename} configuration = ${application-configuration:location} htdocs = $${directory:htdocs} pid-file = $${basedirectory:run}/apache.pid lock-file = $${basedirectory:run}/apache.lock ip = $${slap-network-information:global-ipv6} port = 8080 error-log = $${directory:httpd-log}/error.log access-log = $${directory:httpd-log}/access.log php-ini-dir = $${directory:php-ini-dir} tmp-dir = $${directory:tmp-php} httpd-conf = $${rootdirectory:etc}/apache.conf wrapper = $${basedirectory:services}/apache promise = $${basedirectory:promises}/apache httpd-binary = ${apache:location}/bin/httpd mysql-username = $${mariadb-urlparse:username} mysql-password = $${mariadb-urlparse:password} mysql-database = $${mariadb-urlparse:path} mysql-host = $${stunnel:local-host} mysql-port = $${stunnel:local-port} [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/ [ca-stunnel] <= certificate-authority recipe = slapos.cookbook:certificate_authority.request executable = $${stunnel:wrapper} wrapper = $${basedirectory:services}/stunnel key-file = $${stunnel:key-file} cert-file = $${stunnel:cert-file} [stunnel] recipe = slapos.cookbook:stunnel client = true stunnel-binary = ${stunnel:location}/bin/stunnel remote-host = $${mariadb-urlparse:host} remote-port = $${mariadb-urlparse:port} local-host = $${slap-network-information:local-ipv4} local-port = 3306 log-file = $${basedirectory:log}/stunnel.log config-file = $${directory:stunnel-conf}/stunnel.conf key-file = $${directory:stunnel-conf}/stunnel.key cert-file = $${directory:stunnel-conf}/stunnel.crt pid-file = $${basedirectory:run}/stunnel.pid wrapper = $${rootdirectory:bin}/raw_stunnel post-rotate-script = $${rootdirectory:bin}/stunnel_post_rotate [request-mariadb] <= slap-connection recipe = slapos.cookbook:request name = MariaDB software-url = $${slap-connection:software-release-url} software-type = mariadb return = url [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-apache] <= logrotate recipe = slapos.cookbook:logrotate.d name = apache log = $${apache-php:error-log} $${apache-php:access-log} frequency = daily rotate-num = 30 sharedscripts = true notifempty = true create = true [logrotate-entry-stunnel] <= logrotate recipe = slapos.cookbook:logrotate.d name = stunnel log = $${stunnel:log-file} frequency = daily rotate-num = 30 notifempty = true create = true post = $${stunnel:post-rotate-script} [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 = $${basedirectory:services}/crond [cron-simplelogger] recipe = slapos.cookbook:simplelogger wrapper = $${rootdirectory:bin}/cron_simplelogger log = $${basedirectory:log}/crond.log [cron-entry-logrotate] <= cron recipe = slapos.cookbook:cron.d name = logrotate frequency = 0 0 * * * command = $${logrotate:wrapper} [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/ promises = $${rootdirectory:etc}/promise/ [directory] recipe = slapos.cookbook:mkdirectory ca-dir = $${rootdirectory:srv}/ssl/ htdocs = $${rootdirectory:srv}/www/ httpd-log = $${basedirectory:log}/apache/ php-ini-dir = $${rootdirectory:etc}/php/ tmp-php = $${rootdirectory:tmp}/php/ logrotate-entries = $${rootdirectory:etc}/logrotate.d/ logrotate-backup = $${basedirectory:backup}/logrotate/ stunnel-conf = $${rootdirectory:etc}/stunnel/ cronstamps = $${rootdirectory:etc}/cronstamps/ cron-entries = $${rootdirectory:etc}/cron.d/ crontabs = $${rootdirectory:etc}/crontabs/