Adapting settings

You can specify a configuration file by exporting the UDATA_SETTINGS environment variable.

export UDATA_SETTINGS=/path/to/my/udata.cfg

The configuration file is simply a Python file declaring variables.

uData uses a few Flask extensions and therefore provides all available options for these extensions. Most of the time, it tries to provide sane defaults.

Flask and global behavior options

DEBUG

default: False

A boolean specifying the debug mode.

SEND_MAIL

default: True

A boolean specifying if the emails should actually be sent.

USE_SSL

default: False

A boolean used to force SSL usage for logged in users.

DEFAULT_LANGUAGE

default: 'en'

The default fallback language when no language prefix is provided in URLs.

SECRET_KEY

A secret key used as salt for cryptographic parts. You must specify your own secure key and use the same in all your instances.

SITE_ID

default: 'default'

The site identifier. It is used to attached some database configuration, metrics…

PLUGINS

default: []

A list of enabled uData plugins.

THEME

default: 'default'

The enabled theme name.

TEMPLATE_CACHE_DURATION

default: 5

The duration used for templates’ cache, in minutes.

ElasticSearch configuration

ELASTICSEARCH_URL

default: 'localhost:9200'

The elasticsearch server url used for search indexing.

ELASTICSEARCH_URL = 'elasticserver:9200'

Mongoengine/Flask-Mongoengine options

MONGODB_HOST

default: localhost

The mongodb hostname used by udata.

MONGODB_PORT

default: 27017

The mongodb post used by udata.

MONGODB_DB

default: udata

The mongodb database used by udata. During tests, the test database will use the same name suffixed by -test

See the official Flask-MongoEngine documentation for more details.

Celery options

By default, uData is configured to use Redis as Celery backend and a cutomized MongoDB scheduler.

The defaults are:

BROKER_URL = 'redis://localhost:6379'
BROKER_TRANSPORT_OPTIONS = {
    'fanout_prefix': True,
    'fanout_patterns': True,
}
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_ACCEPT_CONTENT = ['pickle', 'json']
CELERYD_HIJACK_ROOT_LOGGER = False
CELERYBEAT_SCHEDULER = 'udata.tasks.Scheduler'
CELERY_MONGODB_SCHEDULER_COLLECTION = "schedules"

You can see the full list of Celery options in the Celery official documentation.

Flask-Mail options

You can see the full configuration option list in the official Flask-Mail documentation.

MAIL_DEFAULT_SENDER

default: 'webmaster@udata'

The default identity used for outgoing mails.

Flask-OAuthlib options

uData is Oauthlib to provide OAuth2 on the API. The full option list is available in the official Flask-OAuthlib documentation

OAUTH2_PROVIDER_TOKEN_EXPIRES_IN

default: 30 * 24 * 60 * 60 (30 days)

The OAuth2 token duration.

OAUTH2_PROVIDER_ERROR_ENDPOINT

default: 'oauth-i18n.oauth_error'

The OAuth2 error page. Do not modify unless you know what you are doing.

Flask-Cache options

uData uses Flask-Cache to handle cache and use Redis by default. You can see the full options list in the official Flask-Cache documentation

CACHE_TYPE

default: 'redis'

The cache type, which can be adjusted to your needs (ex: null, memcached)

CACHE_KEY_PREFIX

default: 'udata-cache'

A prefix used for cache keys to avoid conflicts with other middleware. It also allows you to use the same backend with different instances.

Flask-FS options

uData use Flask-FS as storage abstraction.

Example configuration file

Here a sample configuration file:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals


DEBUG = True

SEND_MAIL = False

SECRET_KEY = 'A unique secret key'

USE_SSL = True
SERVER_NAME = 'www.data.dev'

DEFAULT_LANGUAGE = 'fr'
PLUGINS =  'gouvfr piwik youckan'.split()

SITE_ID = 'www.data.dev'
SITE_TITLE = 'Data.dev'
SITE_URL = 'www.data.dev'

DEBUG_TOOLBAR = True

FS_PREFIX = '/s'
FS_ROOT = '/srv/http/www.data.dev/fs'