Plone Installer 6.0.4 for Ubuntu: Simplify Your Plone Installation Today!

We are excited to present Plone Installer 6.0.4, developed by Cybrosys Technologies. This user-friendly tool streamlines the Plone installation process, making it easier than ever before. Our primary goal with this installer is to simplify the Plone installation process, making it accessible to users of all technical backgrounds.

Visit our website https://plone.cybrosys.com/how-to-install-plone-602-classic-using-plone-installer/ to download Plone Installer 6.0.4 and explore the documentation.

We value your feedback and look forward to your experience with our installer.

Regards

1 Like

hello @Cybrosystech
This is great - its the 'wget installation' (as I call it) method.
I know more experienced programmers seem to like the docker installation method; however, I prefer this simply because Docker is another layer of abstraction for simple Plone sites.
More importantly, I've found that any problem with Plone (in my case, problems I created) need an understanding of Docker to troubleshoot.
Thanks for this method, I'll try it and let you know if I have any issues.

2 Likes

Hi @rileydog ,
Thank you for your feedback If you encounter any issues, please contact us at plone@cybrosys.com.

Regards

Feedback on Plone-6.0.4-Unified-Installer:

  • The name Plone-6.0.4-Unified-Installer suggests a similarity to Plone`s UnifiedInstaller. This might be misleading. I'd suggest to consider renaming it or at least put a disclaimer in the documentation.
  • It works only on apt-based Linux distros (i.e. debian/ubuntu and its derivatives) .
  • It uses tkinter which requires a Window Manager. The installer won't work in a system without Window Manager.
  • It installs python3.9 which might conflict with already installed python versions.
  • It installs Plone Classic UI. This should be explicitly mentioned in the documentation (not only in the screenshots).
  • It installs Plone with buildout instead of pip.
  • Although it is a Plone Classic UI installation it installs the package Plone which has the package plone.volto in its install_requires. The package plone.volto is also defined in the buildout.cfg which is redundant. The package plone.volto is not necessary for Plone Classic UI and it might produce conflicts with some Dexterity types.

The current git-version only publishes the source of the main python file Plone-6.0.4-Unified-Installer.py. It is not clear what is in the executable Plone-6.0.4-Unified-Installer. This is relevant since this installer asks the user's sudo-password. BTW: asking the user's sudo-password would be unnecessary if the installer were called as sudo Plone-6.0.4-Unified-Installer.

Under the tk-hood this installer does basically the following:

  • It creates a buildout.cfg file
  • It apt-get installs the packages build-essential, python-dev-is-python3, libjpeg-dev, libxslt-dev, python3.9, and python3.9-venv
  • It creates a venv in the current directory and it pip-installs requirements from (https://dist.plone.org/release/6.0.4/requirements.txt)
  • It runs buildout to create a zope2instance and install the eggs Plone and plone.volto

The same could be achieved without using this installer simply running the following few lines (extracted from Plone-6.0.4-Unified-Installer.py, lines LL327-L336 and LL196-L207):

PLONE_HOME=/path/to/dir
PLONE_ADMIN_PASS=secret
sudo apt-get install -y build-essential \
                        libjpeg-dev libxslt-dev \
                        python-dev-is-python3 python3.9 python3.9-venv
mkdir -p ${PLONE_HOME}
cd ${PLONE_HOME}
python3.9 -m venv .
bin/pip install -r https://dist.plone.org/release/6.0.4/requirements.txt
cat <<EOF > buildout.cfg
[buildout]
extends = http://dist.plone.org/release/6.0.4/versions.cfg
parts = instance
[instance]
recipe = plone.recipe.zope2instance
eggs =
    Plone
    plone.volto
user = admin:${PLONE_ADMIN_PASS}
EOF
./bin/buildout
./bin/buildout
2 Likes

Dear @mekell ,

Thank you for your valuable feedback on the Plone-6.0.4-Unified-Installer. We appreciate your suggestions and have taken them into account. We have made some updates to address the issues you raised:

  1. Name and Documentation: We understand your concern about the name. To avoid confusion, we have decided to rename the installer, and we will ensure that the documentation clearly states the purpose and limitations of the installer.

  2. Supported Platforms: We have made changes to the documentation to explicitly state that the installer currently supports only apt-based Linux distributions, such as Debian and Ubuntu, and their derivatives.

  3. Dependency on a Window Manager: We have included it in the documentation to clarify that the installer requires a Window Manager to function properly. This will help users who may encounter issues on systems without a Window Manager.

  4. Python Version Conflict: We have reviewed the installation process Plone 6.0.4 Supports "Python 3.8, 3.9, 3.10, 3.11." to handle potential conflicts with existing Python versions on the system.

  5. Plone Classic UI: Your feedback regarding the installation of Plone Classic UI has been noted. We have updated the documentation to clearly mention that the installer installs Plone with the Classic UI by default.

  6. Redundant Package: We have removed the package "plone.volto" from the "install_requires" list, as it is not necessary for the Plone Classic UI, but the plone.volto package will be installed by default as the default frontend of Plone is Volto .

  7. Transparency of the Installer: We understand your concern about the lack of transparency regarding the executable file. Moving forward, we have included the complete source code and executable are published in the repository. This will provide clarity to users regarding the actions performed by the installer, including the need for administrative privileges.

We would like to emphasize that the purpose of the Plone-6.0.4-Unified-Installer is to simplify the installation process for users who may not be technically proficient. By automating the installation steps, we aim to provide a smoother experience for newcomers to Plone. However, we also understand the importance of providing flexibility and transparency to more experienced users, and we are actively working on providing alternative installation options.

Thank you once again for your feedback. Your input has been invaluable in helping us improve the installer and its documentation..

Best regards

1 Like

@Cybrosystech: Thank you for considering my comments and suggestions.

I'd like to add some comments to point 6:

The words "default" and "frontend" have become kind of plastic words in the Plone community. Due to their elastic semantics both words need some explanation when used.

  • In Plone's marketing jargon the words "default" and "frontend" are mostly used to promote Volto as the preferred "frontend" of a specific type of Plone stack. The precariety of this semantics becomes tangible when trying to explain things like "The Classic UI is an alternative frontend which is installed by default when you install the Plone backend" and "Even in Volto scenarios we have per default the Classic UI frontend installed in the backend." Actually both "frontends" (Classic UI and Volto) are installed per "default" in Volto scenarios (not to be confused with sites).

Fortunately the technical jargon uses a terminology with specific semantics:

  • plone.volto and volto are different packages:

    • plone.volto is a Python package that configures Plone to work with volto.

    • volto is a ReactJS package.

    • plone.volto is not a requirement for a Plone Classic UI scenario.

  • The plone.volto package is installed because it is declared in the install_requires in the [options] section of the setup.cfg file of the package Plone (see setup.cfg).

    • Removing plone.volto from the eggs in the [instance] section of your debug.cfg won't avoid its installation because plone.volto is declared in the install_requires in the [options] section of the setup.cfg file of the package Plone.

    • For a Plone Classic UI installation following packages (instead of the package Plone) could be declared in the eggs in the [instance] section of your debug.cfg (see this comment):

      Products.CMFPlone
      plone.app.caching
      plone.app.upgrade
      # plone.app.iterate
      # plone.restapi
      # Products.CMFPlacefulWorkflow
      
1 Like

Just for the record: This will not work on your systems, since ubuntu uses 'apt' to install things (which CentOs (etc) does not use)

Thanks

I had a problem and emailed them privately but never heard back. I was so excited to get a “wget” installation method. Plone was so easy to install then.

Nowadays Plone (Version 6 Classic UI) is easier to install than ever.

You only need few lines of code to have Plone 6 Classic UI installed and running in a linux machine:

PLONE_VERSION=6.0.5
python3 -m venv Plone-${PLONE_VERSION}
cd Plone-${PLONE_VERSION}
bin/python -m pip install -U \
    pip \
    setuptools \
    wheel \
    -c https://dist.plone.org/release/${PLONE_VERSION}/constraints.txt
bin/pip install \
    Products.CMFPlone \
    Products.CMFPlacefulWorkflow \
    plone.app.caching \
    plone.app.iterate \
    plone.app.upgrade \
    -c https://dist.plone.org/release/${PLONE_VERSION}/constraints.txt
bin/mkwsgiinstance --dir instance --python bin/python --user admin:secret
bin/runwsgi instance/etc/zope.ini

Needles to say that if you need a Plone Stack not that simple then the installation will certainly become not that simple as well.

i also put a simple setup together, which one can use as a start and add more packages as dependencies where needed.

Most users will probably need to change port 'sometimes' and add their own add-on (from /src) (?)

thats not hard, just adapt the zope.conf/ini files for every instance.

To change host and/or port:

HOST=192.168.1.123
PORT=8081
sed -i 's/^host *=.*$/host = '${HOST}'/' instance/etc/zope.ini
sed -i 's/^port *=.*$/port = '${PORT}'/' instance/etc/zope.ini

To add other addons:

bin/pip install \
    some.addon \
    another.addon

To add own addons from src:

bin/pip install -e src/your.addon

Or together:

bin/pip install \
    some.addon \
    another.addon \
    -e src/your.addon

Update

In a more generic way you could use variable assignments using %(http_hostt)s and %(http_port)s in the config files:

sed -i 's/^host *=.*$/host = %(http_host)s/' instance/etc/zope.ini
sed -i 's/^port *=.*$/port = %(http_port)s/' instance/etc/zope.ini

and then calling runwsgi with whatever http_host and http_port you need.

bin/runwsgi instance/etc/zope.ini http_host=192.168.1.123 http_port=8081

Dear @rileydog,

We wanted to inform you that we have responded to your email. However, it seems that our response may not have reached you.

Please let us know, and we will be happy to resend it to you.

Thank you for your attention.