Getting started with Zope
Not really a full tutorial, but just some notes I've gathered for myself that I thought I'd share.
These notes are taken directly from the official Zope documentation, but have been condensed a bit, and also include some of my own personal information as well.
Firstly, as the official documents mention, on Debian, you'll need some additional system packages installed:
apt-get install python3-dev python3.13-venv git
Once those are installed, back as your normal user, this can be ran to create a Zope Instance via standard pip:
python3.13 -m venv zopecd zopebin/pip install -U pip wheelbin/pip install Zope[wsgi] -c https://zopefoundation.github.io/Zope/releases/6.3/constraints.txtbin/mkwsgiinstance -d . -u admin:admin
This will create the Zope Instance, and set admin as the user and admin as it's password. These can be changed once you log into Zope, it is best not to set your real password through the command-line. Before running Zope, some configuration can be checked and/or changed in etc/zope.ini and etc/zope.conf, the first controls the actual wsgi server, while the second is the actual Zope Application Server configuration. The zope.ini is where you could change the port. If you are going to be using Sessions, then you will want to modify the zope.conf file with the follow:
<zodb_db temporary> <temporarystorage> name Temporary database (for sessions) </temporarystorage> mount-point /temp_folder container-class Products.TemporaryFolder.TemporaryContainer</zodb_db>
By default this is just commented out in the configuration file, so just uncomment those lines if you need Session support. Session support is not required to log into the Zope Management Interface, or use Zope's built-in authentication.
There are a lot of common Zope Products which do not ship in this configuration and they need to be added manually, here are the needed pip commands to install a bunch of them:
bin/pip install Products.ZSQLMethodsbin/pip install Products.ZPsycopgDAbin/pip install Products.ZCatalogbin/pip install Products.PythonScriptsbin/pip install Products.Sessionsbin/pip install Products.TemporaryFolderbin/pip install Products.ZSQLiteDA
Those will install several common class types into Zope which were previously included in a base install, if Session support is enabled in the zope.conf file, then both Products.Sessions and Products.TemporaryFolder must both be installed.
For development, the application server can be started in the foreground with this command:
bin/runwsgi -v etc/zope.ini
If you are going to be using SQLite databases during development, they can be placed under the var/sqlite/ directory, which will need to be created, and each database should have a file extension of .db to work.
During development or for testing Zope Products, they need to go into this directory here:
lib/python3.13/site-packages/Products/
That's about all there I have for this thought.
