[mediagoblin]
# HTML title of the pages
html_title = string(default="GNU MediaGoblin")

# Enabled media types
media_types = string_list(default=list("mediagoblin.media_types.image"))

# database stuff
db_host = string()
db_name = string(default="mediagoblin")
db_port = integer()

# Where temporary files used in processing and etc are kept
workbench_path = string(default="%(here)s/user_dev/media/workbench")

# Where mediagoblin-builtin static assets are kept
direct_remote_path = string(default="/mgoblin_static/")

# set to false to enable sending notices
email_debug_mode = boolean(default=True)
email_sender_address = string(default="notice@mediagoblin.example.org")
email_smtp_host = string(default='')
email_smtp_port = integer(default=25)
email_smtp_user = string(default=None)
email_smtp_pass = string(default=None)

# Set to false to disable registrations
allow_registration = boolean(default=True)

# tag parsing
tags_max_length = integer(default=50)

# Whether comments are ascending or descending
comments_ascending = boolean(default=True)

# By default not set, but you might want something like:
# "%(here)s/user_dev/templates/"
local_templates = string()

# Whether or not celery is set up via an environment variable or
# something else (and thus mediagoblin should not attempt to set it up
# itself)
celery_setup_elsewhere = boolean(default=False)

# Whether or not users are able to upload files of any filetype with
# their media entries -- This is useful if you want to provide the
# source files for a media file but can also be a HUGE security risk.
allow_attachments = boolean(default=False)

# Cookie stuff
csrf_cookie_name = string(default='mediagoblin_csrftoken')

# Push stuff
push_urls = string_list(default=list())

exif_visible = boolean(default=False)
geolocation_map_visible = boolean(default=False)

[storage:publicstore]
storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage")
base_dir = string(default="%(here)s/user_dev/media/public")
base_url = string(default="/mgoblin_media/")

[storage:queuestore]
storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage")
base_dir = string(default="%(here)s/user_dev/media/queue")

[media:medium]
# Dimensions used when creating media display images.
max_width = integer(default=640)
max_height = integer(default=640)

[media:thumb]
# Dimensions used when creating media thumbnails
# This is unfortunately not implemented in the media
# types yet. You can help!
# TODO: Make plugins follow the media size settings
max_width = integer(default=180)
max_height = integer(default=180)

[media_type:mediagoblin.media_types.video]
# Should we keep the original file?
keep_original = boolean(default=False)

[media_type:mediagoblin.media_types.audio]
# vorbisenc qualiy
quality = float(default=0.3)
create_spectrogram = boolean(default=False)


[beaker.cache]
type = string(default="file")
data_dir = string(default="%(here)s/user_dev/beaker/cache/data")
lock_dir = string(default="%(here)s/user_dev/beaker/cache/lock")


[celery]
# known booleans
celery_result_persistent = boolean()
celery_create_missing_queues = boolean()
broker_use_ssl = boolean()
broker_connection_retry = boolean()
celery_always_eager = boolean()
celery_eager_propagates_exceptions = boolean()
celery_ignore_result = boolean()
celery_track_started = boolean()
celery_disable_rate_limits = boolean()
celery_acks_late = boolean()
celery_store_errors_even_if_ignored = boolean()
celery_send_task_error_emails = boolean()
celery_send_events = boolean()
celery_send_task_sent_event = boolean()
celeryd_log_color = boolean()
celery_redirect_stdouts = boolean()

# known ints
celeryd_concurrency = integer()
celeryd_prefetch_multiplier = integer()
celery_amqp_task_result_expires = integer()
celery_amqp_task_result_connection_max = integer()
redis_port = integer()
redis_db = integer()
broker_port = integer()
broker_connection_timeout = integer()
celery_broker_connection_max_retries = integer()
celery_task_result_expires = integer()
celery_max_cached_results = integer()
celery_default_rate_limit = integer()
celeryd_max_tasks_per_child = integer()
celeryd_task_time_limit = integer()
celeryd_task_soft_time_limit = integer()
mail_port = integer()
celerybeat_max_loop_interval = integer()

# known floats
celeryd_eta_scheduler_precision = float()

# known lists
celery_routes = string_list()
celery_imports = string_list()
