You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/mastering-plone/installation.md
+72-93Lines changed: 72 additions & 93 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,106 +13,118 @@ This chapter provides instructions on how to install **Plone with the training c
13
13
14
14
For general Plone installation, deployment, and hosting instructions, refer to the authoritative Plone 6 documentation in {doc}`plone6docs:install/index`.
15
15
16
-
(installation-tools-label)=
16
+
We encourage you to install and run `Plone` on your own machine, as you will have important benefits:
17
+
18
+
- You can work with your favorite editor.
19
+
- You have all the code of Plone at your fingertips in `site-packages` or `node_modules`.
17
20
18
-
## Technologies and Tools
19
21
20
-
-[Linux (Ubuntu)](https://ubuntu.com/)
21
-
-[Python](https://www.python.org)
22
-
-[React](https://react.dev/)
22
+
(installation-prerequisites-label)=
23
+
24
+
## Prerequisites
23
25
24
26
We recommend to work on Linux or Mac, not Windows.
25
27
28
+
You will need some other software in order to install and run Plone.
29
+
Follow {ref}`create-project-cookieplone-prerequisites-for-installation-label` to install the following tools, if you don't have them already:
30
+
31
+
- uv
32
+
- nvm
33
+
- Node.js
34
+
- GNU make
35
+
- Git
36
+
26
37
27
-
(installation-label)=
38
+
(installation-project-structure)=
28
39
29
-
## Set up
40
+
## The project structure
30
41
31
-
We install the `Plone` backend and its `React`-based frontend `Volto`, starting with the following folder structure:
42
+
The main project for this training is structured as a {term}`monorepo`.
43
+
It is a single Git repository which includes both the Plone backend and its React-based frontend Volto, in the following folder structure:
32
44
33
45
```text
34
-
training
46
+
mastering-plone-project
35
47
├── backend
36
48
└── frontend
37
49
```
38
50
39
-
In {file}`backend`we install Plone and add our custom Python code.
40
-
In {file}`frontend`we install Volto and add our custom React code.
51
+
The {file}`backend`folder contains Plone and our custom backend code and configuration.
52
+
The {file}`frontend`folder contains Volto and our custom frontend code and configuration.
41
53
42
54
43
-
(installation-install-backend-label)=
44
-
45
-
## Installing the backend
46
-
47
-
We encourage you to install and run `Plone` on your own machine, as you will have important benefits:
48
-
49
-
- You can work with your favorite editor.
50
-
- You have all the code of Plone at your fingertips in `site-packages` tree.
55
+
(installation-project-label)=
51
56
57
+
## Install the project
52
58
53
-
### Prerequisites
54
-
55
-
-`make`. We recommend upgrading to at least `make` 4.
56
-
57
-
58
-
### Installation
59
-
60
-
Set up the [backend with the training code](https://github.com/collective/training_buildout): add-ons `ploneconf.site` and `training.votable`.
59
+
Clone the [`mastering-plone-project` repository](https://github.com/collective/mastering-plone-project).
The initial structure for this project repository was created by following {ref}`create-project-cookieplone-create-volto-project-label`.
67
68
```
68
69
69
-
Build your backend with:
70
+
Install the project with:
70
71
71
72
```shell
72
-
make build
73
+
make install
73
74
```
74
75
75
-
This build executes multiple tasks.
76
-
The build
77
-
- creates a Python virtual environment and installs prerequisites
78
-
- generates a file structure to be prepared to install Plone packages with pip
79
-
- generates Zope configuration with Cookiecutter
76
+
The install command executes multiple tasks.
77
+
It will:
78
+
- create a Python virtual environment and install Python dependencies using uv
79
+
- generate configuration for a Zope instance using `cookiecutter-zope-instance`
80
+
- install Node dependencies using pnpm
81
+
- create a new Plone site with our `ploneconf.site` add-on installed
80
82
81
-
By creating and working with a **Python virtual environment**, we are independent of the system Python installation. We install packages and its version according to our needs.
83
+
By creating and working with a **Python virtual environment**, we are independent of the system Python installation.
84
+
The correct version of Python and dependency packages are installed in an isolated path (`backend/.venv`).
82
85
83
-
The build generates a file structure to be prepared to install **Plone from packages** with `pip` and `mxdev`. The tool `mxdev` helps with configuration files to define which add-ons and which versions to install.
84
-
It also allows to override Plone core package versions or force a checkout from `github`.
85
-
The documentation {doc}`plone6docs:admin-guide/add-ons` provides information on common tasks.
86
+
The specification of which Python packages to install comes from {file}`backend/pyproject.toml`.
86
87
87
88
The build generates **Zope configuration** files with Cookiecutter `cookiecutter-zope-instance`.
88
-
The file we will modify to update our Zope / Plone configuration is `instance.yaml`.
89
+
The file we will modify to update our Zope / Plone configuration is {file}`backend/instance.yaml`.
89
90
In this file we will add add-ons that are installed as Python packages and shall be loaded in our instance.
90
91
`instance.yaml` is the one configuration file for our Zope / Plone instance.
91
92
The documentation of [`cookiecutter-zope-instance`](https://github.com/plone/cookiecutter-zope-instance) explains a lot more that can be configured like the port or another storage.
92
93
93
-
After changes in configuration files, a re-build is necessary:
94
+
The specification of which Node.js packages to install comes from {file}`frontend/package.json` and {file}`frontend/mrs.developer.json`.
95
+
96
+
After changes in configuration files, a reinstall is necessary:
94
97
95
98
```shell
96
-
make build
99
+
make install
97
100
```
98
101
102
+
(installation-start-backend-label)=
103
+
104
+
## Start the backend
105
+
99
106
We are now ready to start the backend with:
100
107
101
108
```shell
102
-
make start
109
+
make backend-start
103
110
```
104
111
105
112
Voilà, your Plone is up and running on http://localhost:8080.
106
113
107
114
The output should be similar to:
108
115
109
116
```shell
110
-
katjasuss@purpur training % make start
111
-
112
-
2022-09-27 08:57:23,961 INFO [Zope:42][MainThread] Ready to handle requests
113
-
Starting server in PID 28745.
114
-
2022-09-27 08:57:23,963 INFO [waitress:486][MainThread] Serving on http://[::1]:8080
115
-
2022-09-27 08:57:23,963 INFO [waitress:486][MainThread] Serving on http://127.0.0.1:8080
117
+
% make backend-start
118
+
119
+
2026-07-21 15:12:15,604 INFO [chameleon.config:40][MainThread] directory cache: /Users/davisagli/Plone/mastering-plone-project/backend/instance/var/cache.
120
+
2026-07-21 15:12:16,003 WARNING [ZODB.FileStorage:409][MainThread] Ignoring index for /Users/davisagli/Plone/mastering-plone-project/backend/instance/var/filestorage/Data.fs
121
+
2026-07-21 15:12:16,155 INFO [plone.restapi.patches:15][MainThread] PATCH: Disabled ZPublisher.HTTPRequest.ZopeFieldStorage.VALUE_LIMIT. This enables file uploads larger than 1MB.
122
+
2026-07-21 15:12:16,364 INFO [plone.app.event:17][MainThread] icalendar has been set up to use pytz instead of zoneinfo.
123
+
2026-07-21 15:12:17,232 INFO [plone.volto:22][MainThread] Aliasing collective.folderish classes to plone.volto classes.
124
+
2026-07-21 15:12:17,630 INFO [Zope:42][MainThread] Ready to handle requests
125
+
Starting server in PID 87938.
126
+
2026-07-21 15:12:17,633 INFO [waitress:449][MainThread] Serving on http://127.0.0.1:8080
127
+
2026-07-21 15:12:17,633 INFO [waitress:449][MainThread] Serving on http://[::1]:8080
116
128
```
117
129
118
130
Troubleshooting: We are here to help: Please file an issue in [training repository](https://github.com/plone/training/issues).
@@ -123,58 +135,25 @@ Point your browser to <http://localhost:8080> to see `Plone` running.
123
135
:alt: Plone is running.
124
136
:scale: 50 %
125
137
126
-
`Plone`, up and running.
138
+
Plone, up and running.
127
139
```
128
140
129
-
There is no Plone site yet.
130
-
We will create one in the next chapter.
141
+
You can see that there is already an existing Plone site that was created by the install command.
131
142
132
143
You can stop the running instance anytime using {kbd}`ctrl c`.
133
144
134
145
135
-
(installation-install-frontend-label)=
136
-
137
-
## Installing the frontend
138
-
139
-
You have two options:
140
-
141
-
> 1. Create the frontend from scratch using {term}`Cookieplone`.
142
-
> 2. Use the prepared Volto project [volto-ploneconf](https://github.com/collective/volto-ploneconf) with all the code for the training.
143
-
144
-
145
-
### Option 1: Frontend from scratch
146
-
147
-
148
-
Follow the instructions of `docs.plone.org`: {doc}`plone6docs:volto/development/creating-project`.
149
-
146
+
(installation-start-frontend-label)=
150
147
151
-
### Option 2. Start with prepared training project `volto-ploneconf` with all code for the training
152
-
153
-
Prepare the prerequisites explained in {ref}`plone6docs:create-project-cookieplone-prerequisites-for-installation-label`.
154
-
Be aware that Volto 18 recommends `pnpm` instead of `yarn` as package manager and project manager.
155
-
156
-
Get the code for the frontend from GitHub and install:
0 commit comments