Grouprise 4.0.0¶
Release date: 2021-06-30
New configuration format¶
Previously grouprise was configured directly via Django settings (e.g. /etc/grouprise/settings.py).
This caused problems for the automation of configuration changes and it introduced the complexity of using code instead of a pure data definition.
The new configuration mechanism uses the YAML format and supports multiple configuration files.
The old configuration will be used as long as /etc/grouprisee/settings.py exists, but you are encouraged to migrate to the new format as soon as possible.
Migrate your old settings to the new ones:
upgrade grouprise to v4.0
create the directory
/etc/grouprise/conf.d/manually convert the old settings (
/etc/grouprisee/settings.py) to the new format (e.g./etc/grouprise/conf.d/local.yaml, see below for comprehensive examples)rename or remove the old configuration file (
/etc/grouprisee/settings.py)restart the grouprise service
Migration examples¶
from grouprise.common_settings import *:discard this line
SECRET_KEY = '...'secret_key: '...'[doc]
ALLOWED_HOSTSthis line can be discarded under most circumstances
see extra_allowed_hosts for special cases
DATABASES = {'default': {'engine': '... 'name: '...'}}:database: { engine: ..., name: ... }[doc]
SESSION_COOKIE_AGE = 60 * 60 * 24 * 365:session_cookie_age: 31536000[doc]
ADMINS = [ ... ]log_recipient_emails: [ ... ][doc]
DEFAULT_FROM_EMAIL = '...':default_from_email: ...[doc]
SERVER_EMAIL = '...':can be discarded (indirectly configured via
default_from_email)
SECURE_CONTENT_TYPE_NOSNIFF:can be discarded (enabled by default since grouprise v4.0)
ACCOUNT_DEFAULT_HTTP_PROTOCOL,SECURE_PROXY_SSL_HEADER,SECURE_HSTS_SECONDS,SECURE_HSTS_INCLUDE_SUBDOMAINS,SECURE_SSL_REDIRECT,SESSION_COOKIE_SECURE,CSRF_COOKIE_SECURE:indirectly configured via
transport_security[doc]
TEMPLATES[0]['DIRS'] += '...':template_directories: [ ... ][doc]
DEBUG: False:debug: false[doc]
GROUPRISE['BACKUP_PATH'] = '...':backup_path: ...[doc]
GROUPRISE['CLAIMS'] = [ ... ]:claims: [ ... ][doc]
GROUPRISE['DEFAULT_DISTINCT_FROM_EMAIL'] = '...':default_distinct_from_email: ...[doc]
GROUPRISE['DEFAULT_REPLY_TO_EMAIL'] = '...':default_reply_to_email: ...[doc]
GROUPRISE['COLLECTOR_MAILBOX_ADDRESS']andGROUPRISE['MAILBOX_DELIVERED_TO_EMAIL']collector_mailbox_address: ...[doc]
GROUPRISE['POSTMASTER_EMAIL'] = '...':postmaster_email: ...[doc]
GROUPRISE['MAILINGLIST_ENABLED'] = True:mailinglist_enabled: true[doc]
GROUPRISE['BRANDING_LOGO_BACKDROP'],GROUPRISE['BRANDING_LOGO_FAVICON'],GROUPRISE['BRANDING_LOGO_SQUARE'],GROUPRISE['BRANDING_LOGO_TEXT']:see [documentation]
branding:
logo_backdrop: ...
logo_favicon: ...
logo_square: ...
logo_text: ...
GROUPRISE['FEED_IMPORTER_GESTALT_ID'] = 42:feed_importer_gestalt_id: 42[doc]
GROUPRISE['OPERATOR_GROUP_ID'] = 1:operator_group_id: 1[doc]
GROUPRISE['UNKNOWN_GESTALT_ID'] = 23:unknown_gestalt_id: 23[doc]
GROUPRISE['SCORE_CONTENT_AGE'] = 100:score_content_age: 100[doc]
GROUPRISE['UPLOAD_MAX_FILE_SIZE'] = 10:upload_max_file_size: 10[doc]
CSP_DEFAULT_SRC,CSP_SCRIPT_SRC,CSP_CONNECT_SRC:see documentation
csp:
default_src:
- "https://matomo.grouprise.org/"
script_src:
- "https://matomo.grouprise.org/"
- "'sha256-J/TOUvP2iy3vYT4YNCGNCxigNR11I1/ut517suNX1hk='"
connect_src:
- foo
anything else?
create a separate Django configuration file (e.g.
/etc/grouprise/django_settings.py) with the remaining settingsadd the setting extra_django_settings_filenames to your new grouprise configuration file:
extra_django_settings_filenames:
- /etc/grouprise/django_settings.py