This was a big commit! I included lots of documentation below, but generally I
[mediagoblin.git] / mediagoblin / config_spec.ini
1 [mediagoblin]
2 # HTML title of the pages
3 html_title = string(default="GNU MediaGoblin")
4
5 # link to source for this MediaGoblin site
6 source_link = string(default="https://gitorious.org/mediagoblin/mediagoblin")
7
8 # database stuff
9 sql_engine = string(default="sqlite:///%(here)s/mediagoblin.db")
10
11 # This flag is used during testing to allow use of in-memory SQLite
12 # databases. It is not recommended to be used on a running instance.
13 run_migrations = boolean(default=False)
14
15 # Where temporary files used in processing and etc are kept
16 workbench_path = string(default="%(here)s/user_dev/media/workbench")
17
18 # Where to store cryptographic sensible data
19 crypto_path = string(default="%(here)s/user_dev/crypto")
20
21 # Where mediagoblin-builtin static assets are kept
22 direct_remote_path = string(default="/mgoblin_static/")
23
24 # set to false to enable sending notices
25 email_debug_mode = boolean(default=True)
26 email_smtp_use_ssl = boolean(default=False)
27 email_sender_address = string(default="notice@mediagoblin.example.org")
28 email_smtp_host = string(default='')
29 email_smtp_port = integer(default=0)
30 email_smtp_user = string(default=None)
31 email_smtp_pass = string(default=None)
32
33 # Set to false to disable registrations
34 allow_registration = boolean(default=True)
35
36 # tag parsing
37 tags_max_length = integer(default=255)
38
39 # Enable/disable comments
40 allow_comments = boolean(default=True)
41
42 # Whether comments are ascending or descending
43 comments_ascending = boolean(default=True)
44
45 # By default not set, but you might want something like:
46 # "%(here)s/user_dev/templates/"
47 local_templates = string()
48
49 # Whether or not celery is set up via an environment variable or
50 # something else (and thus mediagoblin should not attempt to set it up
51 # itself)
52 celery_setup_elsewhere = boolean(default=False)
53
54 # Whether or not users are able to upload files of any filetype with
55 # their media entries -- This is useful if you want to provide the
56 # source files for a media file but can also be a HUGE security risk.
57 allow_attachments = boolean(default=False)
58
59 # Cookie stuff
60 csrf_cookie_name = string(default='mediagoblin_csrftoken')
61
62 # Push stuff
63 push_urls = string_list(default=list())
64
65 exif_visible = boolean(default=False)
66 original_date_visible = boolean(default=False)
67
68 # Theming stuff
69 theme_install_dir = string(default="%(here)s/user_dev/themes/")
70 theme_web_path = string(default="/theme_static/")
71 theme_linked_assets_dir = string(default="%(here)s/user_dev/theme_static/")
72 theme = string()
73
74 # plugin default assets directory
75 plugin_web_path = string(default="/plugin_static/")
76 plugin_linked_assets_dir = string(default="%(here)s/user_dev/plugin_static/")
77
78 [jinja2]
79 # Jinja2 supports more directives than the minimum required by mediagoblin.
80 # This setting allows users creating custom templates to specify a list of
81 # additional extensions they want to use. example value:
82 # extensions = jinja2.ext.loopcontrols , jinja2.ext.with_
83 extensions = string_list(default=list())
84
85 [storage:publicstore]
86 storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage")
87 base_dir = string(default="%(here)s/user_dev/media/public")
88 base_url = string(default="/mgoblin_media/")
89
90 [storage:queuestore]
91 storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage")
92 base_dir = string(default="%(here)s/user_dev/media/queue")
93
94 [media:medium]
95 # Dimensions used when creating media display images.
96 max_width = integer(default=640)
97 max_height = integer(default=640)
98
99 [media:thumb]
100 # Dimensions used when creating media thumbnails
101 # This is unfortunately not implemented in the media
102 # types yet. You can help!
103 # TODO: Make plugins follow the media size settings
104 max_width = integer(default=180)
105 max_height = integer(default=180)
106
107 [media_type:mediagoblin.media_types.image]
108 # One of BICUBIC, BILINEAR, NEAREST, ANTIALIAS
109 resize_filter = string(default="ANTIALIAS")
110 #level of compression used when resizing images
111 quality = integer(default=90)
112
113 [media_type:mediagoblin.media_types.video]
114 # Should we keep the original file?
115 keep_original = boolean(default=False)
116
117 # 0 means autodetect, autodetect means number_of_CPUs - 1
118 vp8_threads = integer(default=0)
119 # Range: 0..10
120 vp8_quality = integer(default=8)
121 # Range: -0.1..1
122 vorbis_quality = float(default=0.3)
123
124 # Autoplay the video when page is loaded?
125 auto_play = boolean(default=False)
126
127 [[skip_transcode]]
128 mime_types = string_list(default=list("video/webm"))
129 container_formats = string_list(default=list("Matroska"))
130 video_codecs = string_list(default=list("VP8 video"))
131 audio_codecs = string_list(default=list("Vorbis"))
132 dimensions_match = boolean(default=True)
133
134 [media_type:mediagoblin.media_types.audio]
135 keep_original = boolean(default=True)
136 # vorbisenc quality
137 quality = float(default=0.3)
138 create_spectrogram = boolean(default=True)
139 spectrogram_fft_size = integer(default=4096)
140
141 [media_type:mediagoblin.media_types.ascii]
142 thumbnail_font = string(default=None)
143
144 [media_type:mediagoblin.media_types.pdf]
145 pdf_js = boolean(default=True)
146
147
148 [celery]
149 # default result stuff
150 CELERY_RESULT_BACKEND = string(default="database")
151 CELERY_RESULT_DBURI = string(default="sqlite:///%(here)s/celery.db")
152
153 # default kombu stuff
154 BROKER_TRANSPORT = string(default="sqlalchemy")
155 BROKER_URL = string(default="sqlite:///%(here)s/kombu.db")
156
157 # known booleans
158 CELERY_RESULT_PERSISTENT = boolean()
159 CELERY_CREATE_MISSING_QUEUES = boolean()
160 BROKER_USE_SSL = boolean()
161 BROKER_CONNECTION_RETRY = boolean()
162 CELERY_ALWAYS_EAGER = boolean()
163 CELERY_EAGER_PROPAGATES_EXCEPTIONS = boolean()
164 CELERY_IGNORE_RESULT = boolean()
165 CELERY_TRACK_STARTED = boolean()
166 CELERY_DISABLE_RATE_LIMITS = boolean()
167 CELERY_ACKS_LATE = boolean()
168 CELERY_STORE_ERRORS_EVEN_IF_IGNORED = boolean()
169 CELERY_SEND_TASK_ERROR_EMAILS = boolean()
170 CELERY_SEND_EVENTS = boolean()
171 CELERY_SEND_TASK_SENT_EVENT = boolean()
172 CELERYD_LOG_COLOR = boolean()
173 CELERY_REDIRECT_STDOUTS = boolean()
174
175 # known ints
176 CELERYD_CONCURRENCY = integer()
177 CELERYD_PREFETCH_MULTIPLIER = integer()
178 CELERY_AMQP_TASK_RESULT_EXPIRES = integer()
179 CELERY_AMQP_TASK_RESULT_CONNECTION_MAX = integer()
180 REDIS_PORT = integer()
181 REDIS_DB = integer()
182 BROKER_PORT = integer()
183 BROKER_CONNECTION_TIMEOUT = integer()
184 CELERY_BROKER_CONNECTION_MAX_RETRIES = integer()
185 CELERY_TASK_RESULT_EXPIRES = integer()
186 CELERY_MAX_CACHED_RESULTS = integer()
187 CELERY_DEFAULT_RATE_LIMIT = integer()
188 CELERYD_MAX_TASKS_PER_CHILD = integer()
189 CELERYD_TASK_TIME_LIMIT = integer()
190 CELERYD_TASK_SOFT_TIME_LIMIT = integer()
191 MAIL_PORT = integer()
192 CELERYBEAT_MAX_LOOP_INTERVAL = integer()
193
194 # known floats
195 CELERYD_ETA_SCHEDULER_PRECISION = float()
196
197 # known lists
198 CELERY_ROUTES = string_list()
199 CELERY_IMPORTS = string_list()