Installation¶
Supported versions¶
Wafer supports Django 3.2, 4.0-4.2, 5.0 and Python 3.8 to 3.12.
Requirements¶
In addition to Django, wafer has some requirements on external
libraries. They’re listed in setup.py
.
Basic Dev install¶
Install all the dependencies
pip install -r requirements.txt
Create the initial database schema
manage.py migrate
If you don’t have one yet, create a superuser with
manage.py createsuperuser
.Wafer uses npm to manage front-end dependencies
Make sure you have a recent version of Node.js installed that includes
npm
.Run
npm install
to install all dependencies, which also copies them towafer/static/vendor
.
Wafer uses the Django caching infrastructure in several places, so the cache table needs to be created using
manage.py createcachetable
.Create the default ‘Page Editors’, ‘Talk Mentors’, and ‘Talk Reviewers’ groups using
manage.py wafer_add_default_groups
.Log in and configure the Site:
The domain will be used as the base for emails sent during registration.
The name will be the conference’s name.
By default, wafer assumes that the site will be accessible over SSL, so the registration emails will use an ‘https’ prefix. If this is not the case, override the
wafer/registration/activation_email.txt
template.
Ensure the permissions on the
MEDIA_ROOT
directory are correctly set so the webserver can create new files there. This location is used for files uploaded for pages and sponsor information.Have a fun conference.
Recommended production setup¶
Create a new Django app, in your own VCS repository. Add wafer (probably pinned) as a requirement.
Include wafer’s
wafer.settings
in yoursettings.py
:from wafer.settings import * TIME_ZONE = 'Africa/Johannesburg' ...
You’ll want to include wafer’s default values for some settings, e.g.
INSTALLED_APPS
, rather than completely overriding them. See Settings for the wafer-specific settings.Override templates as necessary, by putting your own templates directory early in
TEMPLATES
.And then continue with the basic instructions above.
Example setup¶
For an example of a conference using wafer, see the 2017 PyCon ZA conference repository, available from github