Skip to main content

A buildout recipe to create and update a plone site

Project description

Introduction

This recipe enables you to create and update a Plone site as part of a buildout run. This recipe only aims to run profiles and Quickinstall products. It is assumed that the install methods, setuphandlers, upgrade steps, and other recipes will handle the rest of the work.

Detailed Documentation

Options

General Settings

site-id

The id of the Plone site that the script will create. This will also be used to update the site once created. Default: Plone

admin-user

The id of an admin user that will be used as the Manager. Default: admin

admin-password

The password for the admin user. This is only needed when the use_vhm option is set and the root object of the site is not accessible by Anonymous.

instance

The name of the instance that will run the script. Default: instance

zeoserver

The name of the zeoserver part that should be used. This is only required if you are using a zope/zeo setup. Default: not set

container-path

The path (relative from Zope root) to the container that should hold the Plone site. Default: /

default-language

The default language of the Plone site. Default: en

use-sudo

Run the task under a different user, as specified in the appropriate instance’s buildout section. You need to configure sudo appropriately.

add-mountpoint

Adds the ZODB Mount Point at the path specified by container-path, if it doesn’t exist. Very handy when used in conjunction with collective.recipe.filestorage.

Logging

This recipe honors the log-level buildout-level config value, and the verbosity setting, overriding the running Zope instance’s eventlog level. This allows you to get more logging output when running the part, but have less verbosity when the site is actually running.

Install Products

products-initial

A list of products to quick install just after initial site creation. See above for information about the product name format [2].

profiles-initial

A list of GenericSetup profiles to run just after initial site creation. See above for information on the expected profile id format [1].

products

A list of products to quick install each time buildout is run. See above for information about the product name format [2].

profiles

A list of GenericSetup profiles to run each time buildout is run. See above for information on the expected profile id format [1].

Run Scripts

pre-extras

An absolute path to a file with python code that will be evaluated before running Quickinstaller and GenericSetup profiles. Multiple files can be given. Two variables will be available to you. The app variable is the Zope root. The portal variable is the plone site as defined by the site-id option. NOTE: file path cannot contain spaces. Default: not set

post-extras

An absolute path to a file with python code that will be evaluated after running Quickinstaller and GenericSetup profiles. Multiple files can be given. Two variables will be available to you. The app variable is the Zope root. The portal variable is the plone site as defined by the site-id option. NOTE: file path cannot contain spaces. Default: not set

before-install

A system command to execute before installing Plone. You could use this to start a Supervisor daemon to launch ZEO, instead of launching ZEO directly. You can use this option in place of the zeoserver option. Default: not set

after-install

A system command to execute after installing Plone. Default: not set

Upgrading

upgrade-portal

Upgrade the site to the current version on the filesystem by running all upgrade steps for the site’s base GenericSetup profile. Requires collective.upgrade be installed. Default: false

upgrade-all-profiles

Upgrade all GenericSetup profiles installed in the site to their current versions on the filesystem by running all their upgrade steps. Requires collective.upgrade be installed. Default: false

upgrade-profiles

A list of GenericSetup profiles to run upgrade steps for each time buildout is run. Upgrades are run after profiles-initial and before profiles. See above for information on the expected profile id format [1]. Requires collective.upgrade be installed.

site-replace

Replace any existing plone site named site-id. Default: false

enabled

Option to start up the instance/zeoserver. Default: true. This can be a useful option from the command line if you do not want to start up Zope, but still want to run the complete buildout.

$ bin/buildout -Nv plonesite:enabled=false

VHM (VirtualHostMonster)

host

A hostname used in VirtualHostMonster traversal. This will set the root URL for the portal variable in any pre-extras or post-extras scripts. Default: not set

protocol

Either ‘http’ or ‘https’ for a VirtualHostMonster path. Requires the host option be set. Default: http

port

Port for the Zope site used in a VirtualHostMonster path. Requires the host option be set. Default: 80

use-vhm

Signals whether Plone site should use VirtualHostMonster or ordinary Zope traversal when generating a request. Useful for setting up instances that will not be proxied behind Apache or Nginx, such as local development. Default: True

Example

Here is an example buildout.cfg with the plonesite recipe:

[buildout]
parts =
    zope2
    instance
    zeoserver
    plonesite

[zope2]
recipe = plone.recipe.zope2install
...

[instance]
recipe = plone.recipe.zope2instance
...
eggs =
    ...
    my.package
    my.other.package

zcml =
    ...
    my.package
    my.other.package

[zeoserver]
recipe = plone.recipe.zope2zeoserver
...

[plonesite]
recipe = collective.recipe.plonesite
site-id = test
instance = instance
zeoserver = zeoserver
# A profile with proper upgrade steps
profiles-initial = addon.package:default
profiles =
# A profile not using upgrade steps, such as a simple policy package
    my.package:default
upgrade-portal = True
upgrade-all-profiles = True
post-extras =
    ${buildout:directory}/my_script.py
pre-extras =
    ${buildout:directory}/my_other_script.py
host = www.mysite.com
protocol = https
port = 443

Example with Plone 4 content enabled

Here is another example buildout.cfg with the plone4site recipe:

[buildout]
parts =
    ...
    plone4site

[plone4site]
recipe = collective.recipe.plonesite
site-id = test
instance = instance
zeoserver = zeoserver
# Create default plone content like News, Events...
profiles-initial =
    Products.CMFPlone:plone-content
    my.package:initial
profiles =
    my.package:default
    my.other.package:default

Example with Multiple Mount Points

This uses collective.recipe.filestorage to create the mount point configuration:

[buildout]
parts =
    filestorage
    instance
    zeoserver
    plonesite1
    plonesite2

[filestorage]
recipe = collective.recipe.filestorage
parts =
    mp1
    mp2

[instance]
recipe = plone.recipe.zope2instance
...
eggs =
    ...
    my.package
    my.other.package

zcml =
    ...
    my.package
    my.other.package

[zeoserver]
recipe = plone.recipe.zope2zeoserver
...

[plonesite1]
recipe = collective.recipe.plonesite
add-mountpoint = true
container-path = /mp1
profiles-initial = Products.CMFPlone:plone-content
site-id = portal

[plonesite2]
recipe = collective.recipe.plonesite
add-mountpoint = true
container-path = /mp2
profiles-initial = Products.CMFPlone:plone-content
site-id = portal

Contributors

  • Clayton Parker [claytron], Author

  • Andrew Burkhalter [andrewb]

  • JeanMichel FRANCOIS [toutpt]

  • Andreas Jung [ajung]

  • Jeff Kowalczyk [jeffk]

  • Pelle Krogholt [pelle]

  • Michael Davis [davismr]

  • Nolan Brubaker [nrb]

  • David Blewett [davidblewett]

  • Toni Mueller [muellert]

  • Fabio Rauber [fabiorauber]

  • Bryan Wilson [bryanlandia]

  • Chrissy Wainwright [cdw9]

  • Victor Fernandez de Alba [sneridagh]

Change history

1.10.0 (2019-03-20)

  • Python3 compatibility [sneridagh]

1.9.5 (2016-06-22)

  • for GenericSetup 1.8.0+ set runAllImportStepsFromProfile to reapply the dependency profiles. This will keep our buildouts running as previously expected, with the profiles listed in the policy’s metadata.xml being run every time [cdw9]

1.9.4 (2016-01-20)

  • Nothing new, but pypi was having issues with 1.9.3

1.9.3 (2016-01-15)

  • Plone 5 compatibility [santonelli]

1.9.2 (2015-06-22)

  • Only use valid Python logging levels. Round up to the closest level if the passed in value does not exist. [claytron]

1.9.1 (2014-12-01)

  • Add ability to use_vhm when the homepage is not accessible by Anonymous by setting the admin-password option. [claytron]

  • PEP8 and pyflakes [claytron]

  • Restore Python 2.4 compatibility [bryanlandia]

  • Plone 5 compat, re-use add site form default profile logic. [@rpatterson]

1.9.0 (2014-08-29)

  • Add the add-mountpoint option to automatically create the mount-point if it does not exist. [fabiorauber]

  • Add options for running profile upgrade steps if collective.upgrade is installed. [@rpatterson]

  • Add an option to allow the use of sudo, if you have specified different UIDs for Zope and the ZEO server. [muellert]

  • Clean up the docs and separate the options by headers. [claytron]

1.8.2 (2013-04-08)

  • Handle setSite import for Plone 4.3 [claytron]

1.8.1 (2012-11-16)

  • Add changelog entry for 1.8.90 [nrb]

1.8.0 (2012-11-16)

  • Add the use-vhm option to select traversal mode. Setting use-vhm to False will cause the traversal to use regular Zope traversal when running the recipe. [nrb]

1.7.3 (2012-11-02)

  • Use _delObject(site_id, suppress_events=True) to delete the site. This ignores all events and just removes the site completely when using the site-replace option. [claytron]

1.7.2 (2012-08-06)

  • Fixed typo on logger when removing existing Plone site. [hvelarde]

1.7.1 (2012-07-13)

  • Add support for changing the logging level used when the part runs, honoring the buildout log-level and verbosity. [davidblewett]

  • Update version check to correctly differentiate between Plone 4.1.x and Plone 4.0 and below. [davidblewett]

1.6.3 (2012-07-03)

  • Update VirtualHostMonster support to correct loss of elevated security context. [davidblewett]

1.6.1 (2012-06-27)

  • Fix reST formatting. [nrb]

  • Correct some doc oversights. [nrb]

1.6 (2012-06-26)

  • Add VirtualHostMonster path support for the ‘portal’ variable available in pre-extras and post-extras scripts. [nrb]

  • host recipe option specifices a hostname to be used in a VirtualHostMonster path for extra recipe scripts. [nrb]

  • port recipe option specifies a port to be used in a VirtualHostMonster path for extra recipe scripts. [nrb]

  • protocol recipe option specifies a protocol to be used in a VirtualHostMonster path from extra recipe scripts. [nrb]

  • Fixed typo in documentation. [hvelarde]

  • container-path recipe option specifies the path to the container where the Plone site will be added. [gotcha]

  • default-language recipe option specifies the default language of the Plone site. [sgeulette]

1.5 (2011-09-22)

  • Support for zope.globalrequest. [gotcha]

  • Support Plone 4.1 [gotcha]

1.4.3 (2011-07-07)

  • Minor doc updates. [claytron]

1.4.2 (2011-07-07)

  • Released to plone.org [claytron]

  • Doc updates. [claytron]

1.4.1 (2011-02-15)

  • Minor doc updates [claytron]

1.4 (2011-02-15)

  • PEP8 cleanup [claytron]

  • Handle new zeoserver recipe on windows which changes the name of the executable. [claytron]

  • Use the plone variable not portal otherwise plonesite.py raises NameError: global name 'portal' is not defined on a new install. [pelle]

  • Enable GS profiles to work in plone 2.5 [davismr]

  • Use setSite in the initial creation as well. [claytron]

1.3 (2010-02-11)

  • Use setSite in the plonesite`.py` script so that the component architecture gets initialized properly. This will allow the installation of a product like ``plone.app.dexterity [clayton]

1.2 (2010-02-10)

  • Update docs with info about how to add a Product [claytron]

  • Adjusted the support for Plone4 since the addPloneSite() has changed slightly. [pelle]

1.1 (2009-11-10)

  • Make sure to commit the transaction after adding the plone site to avoid some strange behavior. [claytron]

  • Add support for Plone4 [toutpt]

1.0 (2009-08-24)

  • Added a before-install and after-install option to the recipe. this allows you to use something like supervisor to launch the processes. Thanks to Shane Hathaway for the patch. [claytron]

0.9 (2009-08-10)

  • Fixed the site-id option so that it defaults to Plone properly. Thanks to aclark for the bug report. [claytron]

0.8 (2009-06-24)

  • Subversion 1.6 and setuptools are not friends yet. Fixed upload. [claytron]

0.7 (2009-06-23)

  • Clarification to docs. Cleaning up copy/paste error to post-extras [andrewb]

  • Fixed the instance option so that it defaults to instance properly [claytron]

0.6 (2008-12-16)

  • Make admin-user configuration option truly optional per the documentation. Fallback to admin which would be the common default per ZopeSkel’s plone3_buildout template [andrewb]

  • Added new options pre-extras and post-extras. The two options are files that can be run before and after the quickinstaller and profiles have been run. [claytron]

  • Add condition so that the script can be used on older versions of plone [claytron]

0.5 (2008-11-11)

  • Fixed a bug where already installed Products would not be re-installed [claytron]

  • Added example buildout config and updated the READMEs [claytron]

  • Re-factored the plonesite.py script [claytron]

  • A dash of PEP 8 [claytron]

0.4 (2008-11-11)

  • Added a enabled option so that you can switch the part off from the command line. (buildout:parts-=plonesite doesn’t work yet) [claytron]

  • Change the script so that profiles prefixed with profile- can also be given. [claytron]

  • Added some docs to the recipe [claytron]

0.3 (2008-10-30)

  • Added site-replace option to the readme [claytron]

  • The site-replace option is no longer required [claytron]

0.2 (2008-10-30)

  • new Plone sites will be created with a datetime suffix which is helpful if you need to re-run new instances over and over again e.g. for migration purposes. If you need a fixed site id then explictely set the id using the site-id option. [ajung]

  • Fixed error with uninitialized variable [jeffk]

  • Add buildout recipe option site-replace, defaults to off. Use with site-id.

    New recipe option site-replace = on will remove any existing object in app named site-id. A new plone site will be created to replace it.

    Default option setting site-replace = off will not remove existing objects in app named site-id. [jeffk]

0.1 (2008-10-11)

  • Created recipe with ZopeSkel [claytron]

Download

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

collective.recipe.plonesite-1.10.0.tar.gz (18.6 kB view hashes)

Uploaded Source

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page