---
myst:
html_meta:
"description": "Plone deployment training setup"
"property=og:description": "Plone deployment training setup"
"property=og:title": "Plone deployment training setup"
"keywords": "Plone, deployment, training, setup"
---
# Training setup
Your computer should have the following software.
Please prepare this before the training starts.
## Software
### Operating System
Use recent versions of Linux or macOS.
For macOS users, also have Homebrew installed.
Windows with [WSL2 and Ubuntu](https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10) could work too but was not checked for this training.
### Code Editor
Code editor of your choice (VSCode, Pycharm, Sublime, VI, Emacs)
### Python
Python version 3.9.x or 3.10.x.
Ensure Pip is installed and up to date.
```{tip}
If the system does not provide a suitable version, you can use [Pyenv](https://github.com/pyenv/pyenv) to install almost any Python version.
```
### Docker
[Docker](https://docs.docker.com/get-docker/) should be version 20.10.18 or above (Check it with `docker --version`)
### Node and Node tools
Latest Node LTS version (Node 16), latest NPM, Yarn (classic, not 2.x) and Yeoman.
Install [NVM](https://github.com/nvm-sh/nvm/blob/master/README.md).
Use it to install the latest version of Node LTS and NPM (hint: check if a newer minor or bugfix release is available).
```shell
nvm install "lts/*"
```
```{warning}
The current Node LTS Version (Node 18 - v18.12.1) is not supported by Volto at this time.
Use the older LTS Version (Node 16 - currently v16.17.1) instead.
```
```shell
nvm install "16"
```
````{todo}
In an upcoming version of the cookiecutter template, there will be a file `.nvmrc` within the generated project that will simplify and combine the foregoing steps.
When it is released, you will use the following commands.
```shell
nvm install
nvm use
```
````
Now with a current Node LTS version installed, install additional tools globally:
* Yeoman
* Yarn
```shell
nvm alias default "lts/*"
npm install -g yo
npm install -g yarn
```
Then execute `curl -o- -L https://yarnpkg.com/install.sh | bash` to install Yarn.
### Vagrant
- [Vagrant](https://developer.hashicorp.com/vagrant/downloads) and VirtualBox or libvirt (Linux / macOS).
```{warning}
VirtualBox does not run on Apple Silicon, use libvirt+qemu instead.
```
```{note}
We use Vagrant boxes in this training as a replacement for an external server.
```
## External Services
### GitHub Account
Please make sure your computer has the correct keys to your Github account.
### Container Registry
During the training we will use the GitHub Container Registry, but everything explained here also applies to Docker Hub usage.
If you are willing to follow the training using Docker Hub as your registry, please:
- Create an account at [Docker Hub](https://hub.docker.com/).
- Configure your local Docker to use Docker Hub credentials with `docker login`
While Gitlab with it's container registry works the same, we do not include it in the training.
## Cookiecutter
- Install or upgrade {term}`Cookiecutter` in your user's Python:
```shell
pip install --user --upgrade cookiecutter
```
## Make
{term}`Make` comes installed on most Linux distributions.
On macOS, you must first [install Xcode](https://developer.apple.com/xcode/resources/), then install its command line tools.
On Windows, it is strongly recommended to [Install Linux on Windows with WSL](https://learn.microsoft.com/en-us/windows/wsl/install), which will include `make`.