Skip to main content

Latest Version Tests Status Supported - Python Versions License

collective.big.bang

Our whole universe was in a hot, dense state
Then nearly fourteen billion years ago expansion started, wait
The earth began to cool, the autotrophs began to drool
Neanderthals developed tools
We built a wall (we built the pyramids)
Math, science, history, unraveling the mysteries
That all started with the big bang! Hey!

So all started with the Plone site! Hey! This package is used to create a Plone site when Zope is started (just before the Ready to handle requests sentence).

You can use environment variables to create the Plone site and choose which packages you would like to install. See "Environment variables".

You can also expand your Plone site by starting automaticaly all pending upgrade steps when database opened.

Why not use collective.recipe.plonesite?

The goal is to create the Plone site when you deploy a new Plone in a containerized environment. We think it's easier to create the Plone site on start-up, without an entrypoint or extra commands. It's simpler in a containerized environment than starting a buildout part to create a Plone site.


Fun fact: This package is now called collective.big.bang instead of the original collective.bigbang, because the name collective.bigbang was rejected by PyPI.

Environment variables

You can add environment variables into your buildout under the instance part using environment-vars:

...
[instance]
...
environment-vars =
    PLONE_EXTENSION_IDS plone.app.caching:default,plonetheme.barceloneta:default
    DEFAULT_LANGUAGE fr
    ADMIN_PASSWORD mysuperpa$$w0rd
    ACTIVE_BIGBANG True
    ACTIVE_BIGBANG_EXPANSION True

Or use tools like direnv (example .envrc file):

export PLONE_EXTENSION_IDS=plone.app.caching:default,plonetheme.barceloneta:default
export DEFAULT_LANGUAGE=fr
export ADMIN_PASSWORD=mysuperpa$$w0rd
export ACTIVE_BIGBANG=True
export ACTIVE_BIGBANG_EXPANSION=True

PLONE_EXTENSION_IDS

A list of GenericSetup profiles to install. Default: plone.app.caching:default,plonetheme.barceloneta:default

DEFAULT_LANGUAGE

The default language of the Plone site. Default: en

ADMIN_PASSWORD

The password for the Zope "admin" user. Note: No default. If not set, the admin password will not be updated.

ACTIVE_BIGBANG

Create a Plone site on this instance. Used to avoid conflict errors; should be True on only one instance. Default: False

ACTIVE_BIGBANG_EXPANSION

Expansion of the Plone universe, it run all pending upgrades. Used to avoid conflict errors; should be True on only one instance. Default: False


Features

  • Creates Plone site when Zope is started.
  • Run all pending upgrade steps when database is open.
  • Run scripts to create sites and run upgrade steps on demand.

Run Scripts

In addition to automatic site creation on startup, collective.big.bang provides run scripts for manual execution. These are useful when you want more control over when sites are created or upgrades are run.

bin/create-site

Creates a Plone site using the modern plone.distribution API, supporting distributions like default, classic, or volto.

Usage:

# Create site with defaults
SITE_ID=Plone DISTRIBUTION=classic ./bin/create-site parts/instance/etc/zope.conf

# Recreate existing site
DELETE_EXISTING=True ./bin/create-site parts/instance/etc/zope.conf

# With additional profiles
PLONE_EXTENSION_IDS="my.addon:default,another.addon:default" ./bin/create-site parts/instance/etc/zope.conf

Environment Variables:

Variable Default Description
DISTRIBUTION classic Distribution name (default, classic, volto)
SITE_ID Plone Site ID in Zope
DEFAULT_LANGUAGE en Default language code
SETUP_CONTENT True Create example content
TIMEZONE Europe/Brussels Portal timezone
DELETE_EXISTING False Delete existing site if present
PLONE_EXTENSION_IDS Comma-separated GenericSetup profiles to install (on top of the distribution's own profiles)
ADMIN_PASSWORD Password for Zope admin user (optional)

Note: ADDITIONAL_PROFILES is deprecated in favor of PLONE_EXTENSION_IDS. It is still read (with a warning) when PLONE_EXTENSION_IDS is not set; if both are set, PLONE_EXTENSION_IDS wins.

Unlike the startup hook (ACTIVE_BIGBANG), create-site does not notify DarwinStartedEvent.

bin/upgrade-steps

Runs all pending GenericSetup upgrade steps for all installed profiles.

Usage:

# Run upgrade steps on default site
SITE_ID=Plone ./bin/upgrade-steps parts/instance/etc/zope.conf

# Run upgrade steps on specific site
SITE_ID=Plone ./bin/upgrade-steps parts/instance/etc/zope.conf

Environment Variables:

Variable Default Description
SITE_ID Plone Site ID in Zope

Installation

Install collective.big.bang by adding it to your buildout:

[buildout]

...

eggs +=
    collective.big.bang

...

[instance]
...
environment-vars =
    PLONE_EXTENSION_IDS plone.app.caching:default,plonetheme.barceloneta:default
    DEFAULT_LANGUAGE fr
    ADMIN_PASSWORD mysuperpa$$w0rd
    ACTIVE_BIGBANG True
    ACTIVE_BIGBANG_EXPANSION True

Then run:

bin/buildout

Contribute

Support

If you're having issues, please let us know by opening an issue.

License

The project is licensed under the GPLv2.

Contributors

Changelog

1.2.3 (2026-10-08)

  • create-site script now reads extension profiles from PLONE_EXTENSION_IDS, like the startup hook. ADDITIONAL_PROFILES is deprecated: it is still read (with a warning) when PLONE_EXTENSION_IDS is not set. [remdub]

1.2.2 (2026-08-26)

  • Fix upgrade-steps script (and expansion.started) raising TypeError: ('Not enough context information to get parent', None) on upgrade steps that touch local utilities. The site was never registered via zope.component.hooks.setSite() before running upgrade steps, unlike create_plone_site. [bsuttor]

1.2.1 (2026-07-06)

  • Make the create-site script idempotent: when the target site already exists (and DELETE_EXISTING is not set), log an info message and exit successfully instead of failing. This lets the Kubernetes create-site Job re-run safely on every deploy without hitting its backoff limit. [bsuttor]

1.2.0 (2026-07-06)

  • Add ensure_admin_user() to ensure Zope admin user exists on fresh Data.fs (container environments). [bsuttor]

  • Add console script entry points create-site and upgrade-steps. [bsuttor]

  • Refactor test suite to use pytest and uv. [bsuttor]

1.1.0 (2025-10-14)

  • Added expansion feature, which allows to perform all pending upgrade steps in one operation. [bsuttor]

  • Upgrade dev environment to Plone 6.1 [remdub]

1.0.3 (2022-05-13)

  • Do not notify DarwinStartedEvent if site doesn't exist. [odelaere]

1.0.2 (2022-05-13)

  • Fix mountpoints break bid.bang execution. [odelaere]

1.0.1 (2022-04-15)

  • Notify an event after bang. [odelaere]

1.0 (2022-03-01)

  • Do not set "admin" password if ADMIN_PASSWORD env variable is not set. [bsuttor]

1.0b2 (2022-01-27)

  • Ignore mountpoint configurations in site creation. [odelaere]

1.0b1 (2022-01-25)

  • Added tests and better support for plone from 4.3 to 6.0. [odelaere]

1.0a3 (2021-10-04)

  • Strip extension ids. [odelaere]
  • Do not attempt to do anything if ACTIVE_BIGBANG id not True. [odelaere]

1.0a2 (2021-08-17)

  • Fix package after renaming from collective.bigbang to collective.big.bang [laulaz]

1.0a1 (2021-08-13)

  • Initial release. [bsuttor]

Metadata

Release files for collective.big.bang 1.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for collective.big.bang 1.2.3
File Size Uploaded
collective_big_bang-1.2.3.tar.gz 35.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for collective.big.bang 1.2.3
File Interpreter ABI Platform
collective_big_bang-1.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 69.0 kB

Release files / collective_big_bang-1.2.3.tar.gz

Download URL collective_big_bang-1.2.3.tar.gz
Size 35.6 kB
Tags Source
SHA-256 checksum
How to use checksums
949c3923af47f151fb568aeb3f7e1b73f0ea98cbdf145d53d6b2e204f26efe7b
BLAKE2b-256 checksum
How to use checksums
fa2502b9693e035634f40053b256eab0b7ee2f498a24318c6d87f9fc5cc28dd9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / collective_big_bang-1.2.3-py3-none-any.whl

Download URL collective_big_bang-1.2.3-py3-none-any.whl
Size 33.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d68c2fda993cf42c9686c5bbc77943967966abbd033a667c37d7b2ae017e72d
BLAKE2b-256 checksum
How to use checksums
652e27e53e7bfce07d451247d74990a7137b990ac298bd4039baefb51ca7e26b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page