Skip to content

Start Admin Guide, revamp install/getting started #1746

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 33 commits into from
Nov 4, 2024
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
dda3bd4
Start Admin Guide
davisagli Oct 25, 2024
440c34e
Merge branch '6.0' into admin-guide
davisagli Oct 25, 2024
2603852
Add run-plone to admin guide
davisagli Oct 27, 2024
323429e
Add info about how to stop
davisagli Oct 27, 2024
2645edd
Add chapter about backend add-ons to admin guide
davisagli Oct 27, 2024
af5ced1
Add overrides & zope config, remove old manage section
davisagli Oct 27, 2024
4b688a7
move docs back to their old paths to avoid need for redirects
davisagli Oct 29, 2024
e74851f
Merge branch '6.0' into admin-guide
davisagli Oct 30, 2024
87562cf
fixes
davisagli Oct 30, 2024
1974821
Merge branch '6.0' into admin-guide
stevepiercy Nov 1, 2024
50873f1
Fix duplicate glossary entry
stevepiercy Nov 1, 2024
ad103a9
Revise Admin guide, adding commented link to new Volto add-ons index.
stevepiercy Nov 2, 2024
8ee9339
Comments not supported in toctree, move after it
stevepiercy Nov 2, 2024
dda4f2f
Split SUPPORTED_PYTHON_VERSIONS into two replacement variables for Pl…
stevepiercy Nov 2, 2024
6a1211b
Add include for installing Python.
stevepiercy Nov 2, 2024
ee90925
Update include for installing Python, to avoid repetition.
stevepiercy Nov 2, 2024
a9163ca
The buildout instructions install only Plone 6.0.x
stevepiercy Nov 2, 2024
f40a973
Remove redundant installation of buildout
davisagli Nov 2, 2024
0ce3e06
Recommend Plone 6.1 Python versions for core development
davisagli Nov 2, 2024
242ba6f
Make includes for Python version more consistent and explicit
stevepiercy Nov 3, 2024
cec89fe
Use an include for creating a Classic UI instance in foreground mode
stevepiercy Nov 3, 2024
1628502
Update create-project.md, removing note about not documenting how to …
stevepiercy Nov 3, 2024
b9e86b0
Rename _create-classic-ui-instance.inc to .md
stevepiercy Nov 3, 2024
bc07aa7
Tidy up run-plone.md, removing "with "s.
stevepiercy Nov 3, 2024
72bfeee
Tidy up configure-zope.md
stevepiercy Nov 3, 2024
8facc74
Shorten headings
stevepiercy Nov 3, 2024
7f7ba8c
Tidy up add-ons.md
stevepiercy Nov 3, 2024
d8900d0
Tidy up override-core.md
stevepiercy Nov 3, 2024
6665d7b
Merge branch '6.0' into admin-guide
stevepiercy Nov 3, 2024
e2f617c
Change passive to active voice
stevepiercy Nov 3, 2024
0675809
Tidy up docs/install/index.md by reformatting Try a Plone demo sectio…
stevepiercy Nov 3, 2024
c4954cf
Use include for Python section of docs setup
davisagli Nov 3, 2024
52e2cd9
Use a myst-parser comment for TODO in /install/index.md
davisagli Nov 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
204 changes: 204 additions & 0 deletions docs/admin-guide/add-ons.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
---
myst:
html_meta:
"description": "Install Plone Add-ons"
"property=og:description": "Install Plone Add-ons"
"property=og:title": "Install Plone Add-ons"
"keywords": "Plone 6, addon, add-on, package, plugin, extension, install"
---

(install-plone-addons-label)=

# Install Plone Add-ons

This chapter explains how to install {term}`add-ons <Add-on>` as Python packages to extend the functionality of the Plone backend or Classic UI.

```{note}
The Volto frontend has its own system of add-ons using Node.js packages. See {doc}`/volto/addons/index`.
```

## with Cookieplone

Use the following instructions if you installed Plone with Cookieplone or `cookiecutter-plone-starter`.

### Install an add-on

Add a line with the name of your add-on in `backend/requirements.txt`.
This example uses [`collective.easyform`](https://pypi.org/project/collective.easyform/).

```
collective.easyform==4.2.1
```

```{tip}
Including the add-on version ensures that it won't accidentally get upgraded in the future.
```

Also add the add-on to `zcml_package_includes` in {file}`backend/instance.yaml` to make sure its configuration will be loaded:

```yaml
default_context:
zcml_package_includes: project_title, collective.easyform
```

Stop the backend with {kbd}`ctrl-c`.

To actually download and install the new add-on, run:

```shell
make backend-build
```

```{note}
If you installed Plone using `cookiecutter-plone-starter`, run `make build-backend` instead.`
```

Now restart the backend.

In your web browser, and assuming you are currently logged in as `admin`, visit the URL http://localhost:8080/Plone/prefs_install_products_form.

Then click the {guilabel}`Install` button next to your add-on to complete installation of the add-on.

Some add-ons have configuration options.
To configure such add-ons, return to the {guilabel}`Site Setup` control panel.
At the bottom of the page, you should see the heading {guilabel}`Add-on Configuration`, and a control panel to configure the add-on that you just installed.


### Install an add-on from source

An add-on can be installed from a source control system such as GitHub.

Add a line with the name of your add-on in `backend/requirements.txt`.
This example uses [`collective.easyform`](https://pypi.org/project/collective.easyform/).

```
collective.easyform
```

```{note}
When installing an add-on from source, it's best to not pin a version, to make sure we use the version that's currently available in the source control system.
```

Also add the add-on to `zcml_package_includes` in {file}`backend/instance.yaml` to make sure its configuration will be loaded:

```yaml
default_context:
zcml_package_includes: project_title, collective.easyform
```

Finally, add the package's source to {file}`mx.ini`:

```cfg
[collective.easyform]
url=git@github.com:collective/collective.easyform.git
branch=dev-branch-name
extras=test
```

```{seealso}
The {file}`mx.ini` file configures a tool called {term}`mxdev`.
See the [documentation of `mxdev` in its README.md](https://github.com/mxstack/mxdev/blob/main/README.md) for complete information.
```

Stop the backend with {kbd}`ctrl-c`.

To actually download and install the new add-on, run:

```shell
make backend-build
```

```{note}
If you installed Plone using `cookiecutter-plone-starter`, run `make build-backend` instead.`
```

Now restart the backend.

In your web browser, and assuming you are currently logged in as `admin`, visit the URL http://localhost:8080/Plone/prefs_install_products_form.
An upgrade step might need to be performed in the Plone control panel.
Follow the upgrade information, if present.
Else click the {guilabel}`Install` button to complete installation of the add-on.


## with Buildout

Use the following instructions if you installed Plone with Buildout.

### Install an add-on

Update {file}`buildout.cfg`.
This example uses [`collective.easyform`](https://pypi.org/project/collective.easyform/).

```cfg
[buildout]
extends =
https://dist.plone.org/release/6-latest/versions.cfg

parts =
instance

[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
http-address = 8080
eggs =
Plone
collective.easyform

[versions]
collective.easyform = 4.2.1
```

```{tip}
Including the add-on version ensures that it won't accidentally get upgraded in the future.
```

To actually download and install the new add-on, run:

```shell
bin/buildout
```

Then restart your instance.

### Install an add-on from source

An add-on can be installed from a source control system such as GitHub.

Update {file}`buildout.cfg`.
This example uses [`collective.easyform`](https://pypi.org/project/collective.easyform/).

```cfg
[buildout]
extends =
https://dist.plone.org/release/6-latest/versions.cfg
extensions = mr.developer
auto-checkout =
collective.easyform

parts =
instance

[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
http-address = 8080
eggs =
Plone
collective.easyform

[sources]
collective.easyform = git https://github.com/collective/collective.easyform.git
```

To actually download and install the new add-on, run:

```shell
bin/buildout
```

Then restart your instance.

```{seealso}
This approach uses the [`mr.developer`](https://pypi.org/project/mr.developer/) Buildout extension.
```
33 changes: 33 additions & 0 deletions docs/admin-guide/configure-zope.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
myst:
html_meta:
"description": "Configure Zope options"
"property=og:description": "Configure Zope options"
"property=og:title": "Configure Zope"
"keywords": "Plone 6, Zope, instance, app server, config, cookiecutter-zope-instance"
---

(configure-zope-label)=

# Configure Zope

Plone runs in an application server called {term}`Zope`.

You can configure your Zope instance's options, including the following.

* persistent storage: blobs, direct filestorage, relation database, ZEO, and so on
* ports
* threads
* cache
* logging
* debugging and profiling for development

## with Cookieplone

If you installed Plone using Cookieplone, `cookiecutter-plone-starter`, or pip, then Zope is configured using {term}`cookiecutter-zope-instance`.
For a complete list of features, usage, and options, read [`cookiecutter-zope-instance`'s README](https://github.com/plone/cookiecutter-zope-instance#readme).

## with Buildout

If you installed Plone using Buildout, then Zope is configured using `plone.recipe.zope2instance`.
For a complete list of features, usage, and options, read [`plone.recipe.zope2instance`'s README](https://pypi.org/project/plone.recipe.zope2instance/).
43 changes: 43 additions & 0 deletions docs/admin-guide/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
myst:
html_meta:
"description": "How to install, operate, configure, and deploy Plone 6"
"property=og:description": "How to install, operate, configure, and deploy Plone 6"
"property=og:title": "Admin Guide"
"keywords": "Plone 6, admin, install, configuration, deploy"
---

(admin-index-label)=

# Admin Guide

In this part of the documentation, you can find how to install, operate, configure, and deploy Plone.


```{toctree}
:caption: Install
:maxdepth: 1

/install/create-project-cookieplone
install-buildout
install-pip
/install/create-project
```

```{toctree}
:caption: Operate
:maxdepth: 1

run-plone
configure-zope
add-ons
override-core
/upgrade/index
```

```{toctree}
:maxdepth: 1
:caption: Deploy

/install/containers/index
```
105 changes: 105 additions & 0 deletions docs/admin-guide/install-buildout.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
---
myst:
html_meta:
"description": "Install Plone with Buildout"
"property=og:description": "Install Plone with Buildout"
"property=og:title": "Install Plone with Buildout"
"keywords": "Plone 6, install, Classic UI, buildout"
---

(install-buildout-label)=

# Install Plone with Buildout

This chapter describes how you can install Plone using {term}`Buildout`.

This is one way to install Plone with the Classic UI.
Using Buildout will be the most familiar approach for admins who have experience with Plone 3, 4, or 5.

```{seealso}
For other installation options, see {ref}`get-started-install-label`.
```

(install-buildout-prerequisites)=

## Prerequisites

- Python 3.10 or greater

On Debian-based Linux systems you can install Python with the following command:

```shell
sudo apt install python3.12 python3.12-dev python3.12-venv
```

## Installation

Select a directory of your choice:

```shell
mkdir -p /opt/plone && cd /opt/plone
```

Create a Python virtual environment:

```shell
python3 -m venv .
```

Install the minimal Python packages needed in order to run Buildout:

```shell
bin/pip install -r https://dist.plone.org/release/6-latest/requirements.txt
```

Create a `buildout.cfg` file in your directory with the following contents:

```cfg
[buildout]
extends =
https://dist.plone.org/release/6-latest/versions.cfg

parts =
instance

[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
http-address = 8080
eggs =
Plone
```

Run buildout:

```shell
bin/buildout
```

## Run Plone in foreground mode

Start the instance for a quick test in foreground mode:

```shell
bin/instance fg
```

Your instance starts in foreground mode, which is only advisable for troubleshooting or for local demonstration purposes.

Now you can call the url `http://localhost:8080` in your browser and you can add a **Classic UI Plone site**.

## Start Plone as a background service

Start the instance:

```shell
bin/instance start
```

## Stop Plone as a background service

Stop the instance:

```shell
bin/instance stop
```
Loading