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_HOSTS
this 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