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.
Code repository: https://github.com/collective/collective.recipe.plonesite
Report bugs at https://github.com/collective/collective.recipe.plonesite/issues
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
DEPRECATION NOTICE: Installing products in Plone 6 is deprecated since it no longer has Quickinstaller: use profiles instead.
- 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.12.0 (2021-03-06)
Add compatibility with Plone 6 [sneridagh]
1.11.0 (2019-03-20)
Fix brownbag release [sneridagh]
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file collective.recipe.plonesite-1.12.0.tar.gz
.
File metadata
- Download URL: collective.recipe.plonesite-1.12.0.tar.gz
- Upload date:
- Size: 22.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.6.1 requests/2.25.1 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 916be69c9cd4aa682320be3315baa71ff63dccf57063e88ecd98a3100e71176f |
|
MD5 | dd0373ca14a3c69f49efff8b0126a2db |
|
BLAKE2b-256 | a0e6e3a890df0f66892d04fdbca758784bce94436f3fd64a8581f78a27770b82 |