buildout.cfg

    my version of a cluster configuration script, circa 2009

    # my main plone cluster buildout, based on plone-3.x buildout.
    # includes plone.app.blob and uses site.cfg for site-specific settings.
    
    [buildout]
    extends =
        site.cfg
        devel.cfg
    parts =
        plone
        zope2
        instance
        zeo
        client1
        client2
    # Carte blanc products:
        quills
    # Optional products:
        clouseau
        pdbdebugmode
        docfindertab
    # access to enablesettrace is failing - could use this code instead:
    #import AccessControl; AccessControl.ModuleSecurityInfo('pdb').declarePublic('set_trace')
    #    enablesettrace
        ptprofiler
        zopeprofiler
        zptdebugger
        deadlockdebugger
        ipzope
    
    find-links =
        http://dist.plone.org
        http://download.zope.org/ppix/
        http://download.zope.org/distribution/
        http://effbot.org/downloads
    eggs =
        elementtree
    
    [plone]
    recipe = plone.recipe.plone >=3.1.1,<3.2dev
    
    [zope2]
    recipe = plone.recipe.zope2install
    url = ${plone:zope2-url}
    
    [instance]
    recipe = plone.recipe.zope2instance
    zope2-location = ${zope2:location}
    var = ${site:var}
    blob-storage = ${site:var}/blobstorage
    user = ${site:user}
    http-address = ${site:http-address}
    port-base = ${site:port-base-instance}
    debug-mode = on
    verbose-security = on
    eggs =
        ${buildout:eggs}
        ${plone:eggs}
        plone.app.blob
        Products.contentmigration
        ${p4a_plonevideo:eggs}
    zcml =
        plone.app.blob
        Products.contentmigration
        ${p4a_plonevideo:zcml}
    products =
        ${site:products}
        ${buildout:directory}/products
        ${plone:products}
        ${quills-settings:products}
    extra-paths =
        ${quills-settings:extra-paths}
    zope-conf-additional = ${site:zope-conf-additional}
        ${quills-settings:zcml}
    
    [zeo]
    recipe = plone.recipe.zope2zeoserver
    zope2-location = ${zope2:location}
    zeo-address = ${site:zeo-address}
    zeo-var = ${site:var}
    blob-storage = ${site:blob-storage}
    effective-user = ${site:effective-user}
    cache-size = 100MB
    # klm 2008-08-16 unsure that Products.contentmigration is necessary.
    eggs =
        plone.app.blob
        Products.contentmigration
    
    [client1]
    recipe = plone.recipe.zope2instance
    zope2-location = ${zope2:location}
    zeo-client = on
    effective-user = ${site:effective-user}
    user = ${site:user}
    var = ${site:var}
    blob-storage = ${site:blob-storage}
    http-address = ${site:http-address}
    port-base = ${site:port-base-client1}
    zeo-address = ${site:zeo-address}
    blob-storage = ${zeo:blob-storage}
    shared-blob = ${site:shared-blob-client1}
    products =
        ${site:products}
        ${plone:products}
        ${docfindertab:location}
        ${quills-settings:products}
    eggs =
        ${buildout:eggs}
        ${plone:eggs}
        plone.app.blob
        ${p4a_plonevideo:eggs}
    zcml =
        plone.app.blob
        ${quills-settings:zcml}
        ${p4a_plonevideo:zcml}
    extra-paths =
        ${quills-settings:extra-paths}
    zope-conf-additional = ${site:zope-conf-additional}
    
    [client2]
    recipe = plone.recipe.zope2instance
    zope2-location = ${zope2:location}
    zeo-client = on
    effective-user = ${site:effective-user}
    user = ${site:user}
    var = ${site:var}
    blob-storage = ${site:blob-storage}
    http-address = ${site:http-address}
    port-base = ${site:port-base-client2}
    zeo-address = ${site:zeo-address}
    blob-storage = ${zeo:blob-storage}
    shared-blob = ${site:shared-blob-client2}
    products =
        ${client1:products}
    # XXX put debugging products here
        ${clouseau:location}
        ${zptdebugger:location}
    #    ${enablesettrace:location}
    # 2008-08-16 getting "No such file or directory" - reenable on next full build
    #    ${zptdebugger:location}
    #    ${zopeprofiler:location}
    # PTProfiler has caused PloneFormGen mail adapter edits to fail.
    #    ${ptprofiler:location}
    # pdbdebugmode triggers pdb too often even for regular debug=on operation -
    # enable in zope.conf only when we want automatic activation of pdb on
    # exceptions, with line:
    #                        products .../parts/pdbdebugmode
    #    ${pdbdebugmode:location}
    eggs = ${client1:eggs}
    # XXX put debugging eggs here
    zcml = ${client1:zcml}
    # XXX put debugging zcml here
    extra-paths = ${client1:extra-paths}
    zope-conf-additional = ${site:zope-conf-additional}