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
ADDITIONAL_PROFILES="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
ADDITIONAL_PROFILES Comma-separated GenericSetup profiles to install
ADMIN_PASSWORD Password for Zope admin user (optional)

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.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]

Release files for collective.big.bang 1.2.2

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.2
File Size Uploaded
collective_big_bang-1.2.2.tar.gz 34.5 kB Details

Built distribution (wheel)

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

Total release size: 67.2 kB

Release files / collective_big_bang-1.2.2.tar.gz

Download URL collective_big_bang-1.2.2.tar.gz
Size 34.5 kB
Tags Source
SHA-256 checksum
How to use checksums
57e341b88d87ae97351382c791009a70ca2dd9c0757ac2f45a02197a40150b5b
BLAKE2b-256 checksum
How to use checksums
0eb8666b8f312a1cf1035c6ebeee68a80c2c4ab45db2b7631ed4fb889cbac4d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

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

Download URL collective_big_bang-1.2.2-py3-none-any.whl
Size 32.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
68608308c6b95d6c208f893467aefdec4c5ebca4946dea5902b9af208c1f27a7
BLAKE2b-256 checksum
How to use checksums
52f5273a0d3e2df5b9666334658a1a9c328df44a961416ea71f34c7be2290e88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.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