##// END OF EJS Templates
config: change default .ini to always include trace_errors settings and thus avoid deprecation warnings...
Mads Kiilerich -
r7643:cbdc0c3a default
parent child Browse files
Show More
@@ -1,461 +1,472 b''
1 ################################################################################
1 ################################################################################
2 ################################################################################
2 ################################################################################
3 # Kallithea - config file generated with kallithea-config #
3 # Kallithea - config file generated with kallithea-config #
4 # #
4 # #
5 # The %(here)s variable will be replaced with the parent directory of this file#
5 # The %(here)s variable will be replaced with the parent directory of this file#
6 ################################################################################
6 ################################################################################
7 ################################################################################
7 ################################################################################
8
8
9 [DEFAULT]
9 [DEFAULT]
10
10
11 ################################################################################
11 ################################################################################
12 ## Email settings ##
12 ## Email settings ##
13 ## ##
13 ## ##
14 ## Refer to the documentation ("Email settings") for more details. ##
14 ## Refer to the documentation ("Email settings") for more details. ##
15 ## ##
15 ## ##
16 ## It is recommended to use a valid sender address that passes access ##
16 ## It is recommended to use a valid sender address that passes access ##
17 ## validation and spam filtering in mail servers. ##
17 ## validation and spam filtering in mail servers. ##
18 ################################################################################
18 ################################################################################
19
19
20 ## 'From' header for application emails. You can optionally add a name.
20 ## 'From' header for application emails. You can optionally add a name.
21 ## Default:
21 ## Default:
22 #app_email_from = Kallithea
22 #app_email_from = Kallithea
23 ## Examples:
23 ## Examples:
24 #app_email_from = Kallithea <kallithea-noreply@example.com>
24 #app_email_from = Kallithea <kallithea-noreply@example.com>
25 #app_email_from = kallithea-noreply@example.com
25 #app_email_from = kallithea-noreply@example.com
26
26
27 ## Subject prefix for application emails.
27 ## Subject prefix for application emails.
28 ## A space between this prefix and the real subject is automatically added.
28 ## A space between this prefix and the real subject is automatically added.
29 ## Default:
29 ## Default:
30 #email_prefix =
30 #email_prefix =
31 ## Example:
31 ## Example:
32 #email_prefix = [Kallithea]
32 #email_prefix = [Kallithea]
33
33
34 ## Recipients for error emails and fallback recipients of application mails.
34 ## Recipients for error emails and fallback recipients of application mails.
35 ## Multiple addresses can be specified, comma-separated.
35 ## Multiple addresses can be specified, comma-separated.
36 ## Only addresses are allowed, do not add any name part.
36 ## Only addresses are allowed, do not add any name part.
37 ## Default:
37 ## Default:
38 #email_to =
38 #email_to =
39 ## Examples:
39 ## Examples:
40 #email_to = admin@example.com
40 #email_to = admin@example.com
41 #email_to = admin@example.com,another_admin@example.com
41 #email_to = admin@example.com,another_admin@example.com
42 email_to =
42 email_to =
43
43
44 ## 'From' header for error emails. You can optionally add a name.
44 ## 'From' header for error emails. You can optionally add a name.
45 ## Default: (none)
45 ## Default: (none)
46 ## Examples:
46 ## Examples:
47 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
47 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
48 #error_email_from = kallithea_errors@example.com
48 #error_email_from = kallithea_errors@example.com
49 error_email_from =
49 error_email_from =
50
50
51 ## SMTP server settings
51 ## SMTP server settings
52 ## If specifying credentials, make sure to use secure connections.
52 ## If specifying credentials, make sure to use secure connections.
53 ## Default: Send unencrypted unauthenticated mails to the specified smtp_server.
53 ## Default: Send unencrypted unauthenticated mails to the specified smtp_server.
54 ## For "SSL", use smtp_use_ssl = true and smtp_port = 465.
54 ## For "SSL", use smtp_use_ssl = true and smtp_port = 465.
55 ## For "STARTTLS", use smtp_use_tls = true and smtp_port = 587.
55 ## For "STARTTLS", use smtp_use_tls = true and smtp_port = 587.
56 smtp_server =
56 smtp_server =
57 #smtp_username =
57 #smtp_username =
58 #smtp_password =
58 #smtp_password =
59 smtp_port =
59 smtp_port =
60 #smtp_use_ssl = false
60 #smtp_use_ssl = false
61 #smtp_use_tls = false
61 #smtp_use_tls = false
62
62
63 ## Entry point for 'gearbox serve'
63 ## Entry point for 'gearbox serve'
64 [server:main]
64 [server:main]
65 #host = 127.0.0.1
65 #host = 127.0.0.1
66 host = 0.0.0.0
66 host = 0.0.0.0
67 port = 5000
67 port = 5000
68
68
69 ## WAITRESS ##
69 ## WAITRESS ##
70 use = egg:waitress#main
70 use = egg:waitress#main
71 ## number of worker threads
71 ## number of worker threads
72 threads = 1
72 threads = 1
73 ## MAX BODY SIZE 100GB
73 ## MAX BODY SIZE 100GB
74 max_request_body_size = 107374182400
74 max_request_body_size = 107374182400
75 ## use poll instead of select, fixes fd limits, may not work on old
75 ## use poll instead of select, fixes fd limits, may not work on old
76 ## windows systems.
76 ## windows systems.
77 #asyncore_use_poll = True
77 #asyncore_use_poll = True
78
78
79 ## middleware for hosting the WSGI application under a URL prefix
79 ## middleware for hosting the WSGI application under a URL prefix
80 #[filter:proxy-prefix]
80 #[filter:proxy-prefix]
81 #use = egg:PasteDeploy#prefix
81 #use = egg:PasteDeploy#prefix
82 #prefix = /<your-prefix>
82 #prefix = /<your-prefix>
83
83
84 [app:main]
84 [app:main]
85 use = egg:kallithea
85 use = egg:kallithea
86 ## enable proxy prefix middleware
86 ## enable proxy prefix middleware
87 #filter-with = proxy-prefix
87 #filter-with = proxy-prefix
88
88
89 full_stack = true
89 full_stack = true
90 static_files = true
90 static_files = true
91
91
92 ## Internationalization (see setup documentation for details)
92 ## Internationalization (see setup documentation for details)
93 ## By default, the language requested by the browser is used if available.
93 ## By default, the language requested by the browser is used if available.
94 #i18n.enabled = false
94 #i18n.enabled = false
95 ## Fallback language, empty for English (valid values are the names of subdirectories in kallithea/i18n):
95 ## Fallback language, empty for English (valid values are the names of subdirectories in kallithea/i18n):
96 i18n.lang =
96 i18n.lang =
97
97
98 cache_dir = %(here)s/data
98 cache_dir = %(here)s/data
99 index_dir = %(here)s/data/index
99 index_dir = %(here)s/data/index
100
100
101 ## uncomment and set this path to use archive download cache
101 ## uncomment and set this path to use archive download cache
102 archive_cache_dir = %(here)s/tarballcache
102 archive_cache_dir = %(here)s/tarballcache
103
103
104 ## change this to unique ID for security
104 ## change this to unique ID for security
105 #app_instance_uuid = VERY-SECRET
105 #app_instance_uuid = VERY-SECRET
106 app_instance_uuid = development-not-secret
106 app_instance_uuid = development-not-secret
107
107
108 ## cut off limit for large diffs (size in bytes)
108 ## cut off limit for large diffs (size in bytes)
109 cut_off_limit = 256000
109 cut_off_limit = 256000
110
110
111 ## force https in Kallithea, fixes https redirects, assumes it's always https
111 ## force https in Kallithea, fixes https redirects, assumes it's always https
112 force_https = false
112 force_https = false
113
113
114 ## use Strict-Transport-Security headers
114 ## use Strict-Transport-Security headers
115 use_htsts = false
115 use_htsts = false
116
116
117 ## number of commits stats will parse on each iteration
117 ## number of commits stats will parse on each iteration
118 commit_parse_limit = 25
118 commit_parse_limit = 25
119
119
120 ## Path to Python executable to be used for git hooks.
120 ## Path to Python executable to be used for git hooks.
121 ## This value will be written inside the git hook scripts as the text
121 ## This value will be written inside the git hook scripts as the text
122 ## after '#!' (shebang). When empty or not defined, the value of
122 ## after '#!' (shebang). When empty or not defined, the value of
123 ## 'sys.executable' at the time of installation of the git hooks is
123 ## 'sys.executable' at the time of installation of the git hooks is
124 ## used, which is correct in many cases but for example not when using uwsgi.
124 ## used, which is correct in many cases but for example not when using uwsgi.
125 ## If you change this setting, you should reinstall the Git hooks via
125 ## If you change this setting, you should reinstall the Git hooks via
126 ## Admin > Settings > Remap and Rescan.
126 ## Admin > Settings > Remap and Rescan.
127 # git_hook_interpreter = /srv/kallithea/venv/bin/python2
127 # git_hook_interpreter = /srv/kallithea/venv/bin/python2
128
128
129 ## path to git executable
129 ## path to git executable
130 git_path = git
130 git_path = git
131
131
132 ## git rev filter option, --all is the default filter, if you need to
132 ## git rev filter option, --all is the default filter, if you need to
133 ## hide all refs in changelog switch this to --branches --tags
133 ## hide all refs in changelog switch this to --branches --tags
134 #git_rev_filter = --branches --tags
134 #git_rev_filter = --branches --tags
135
135
136 ## RSS feed options
136 ## RSS feed options
137 rss_cut_off_limit = 256000
137 rss_cut_off_limit = 256000
138 rss_items_per_page = 10
138 rss_items_per_page = 10
139 rss_include_diff = false
139 rss_include_diff = false
140
140
141 ## options for showing and identifying changesets
141 ## options for showing and identifying changesets
142 show_sha_length = 12
142 show_sha_length = 12
143 show_revision_number = false
143 show_revision_number = false
144
144
145 ## Canonical URL to use when creating full URLs in UI and texts.
145 ## Canonical URL to use when creating full URLs in UI and texts.
146 ## Useful when the site is available under different names or protocols.
146 ## Useful when the site is available under different names or protocols.
147 ## Defaults to what is provided in the WSGI environment.
147 ## Defaults to what is provided in the WSGI environment.
148 #canonical_url = https://kallithea.example.com/repos
148 #canonical_url = https://kallithea.example.com/repos
149
149
150 ## gist URL alias, used to create nicer urls for gist. This should be an
150 ## gist URL alias, used to create nicer urls for gist. This should be an
151 ## url that does rewrites to _admin/gists/<gistid>.
151 ## url that does rewrites to _admin/gists/<gistid>.
152 ## example: http://gist.example.com/{gistid}. Empty means use the internal
152 ## example: http://gist.example.com/{gistid}. Empty means use the internal
153 ## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid>
153 ## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid>
154 gist_alias_url =
154 gist_alias_url =
155
155
156 ## default encoding used to convert from and to unicode
156 ## default encoding used to convert from and to unicode
157 ## can be also a comma separated list of encoding in case of mixed encodings
157 ## can be also a comma separated list of encoding in case of mixed encodings
158 default_encoding = utf-8
158 default_encoding = utf-8
159
159
160 ## Set Mercurial encoding, similar to setting HGENCODING before launching Kallithea
160 ## Set Mercurial encoding, similar to setting HGENCODING before launching Kallithea
161 hgencoding = utf-8
161 hgencoding = utf-8
162
162
163 ## issue tracker for Kallithea (leave blank to disable, absent for default)
163 ## issue tracker for Kallithea (leave blank to disable, absent for default)
164 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
164 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
165
165
166 ## issue tracking mapping for commit messages, comments, PR descriptions, ...
166 ## issue tracking mapping for commit messages, comments, PR descriptions, ...
167 ## Refer to the documentation ("Integration with issue trackers") for more details.
167 ## Refer to the documentation ("Integration with issue trackers") for more details.
168
168
169 ## regular expression to match issue references
169 ## regular expression to match issue references
170 ## This pattern may/should contain parenthesized groups, that can
170 ## This pattern may/should contain parenthesized groups, that can
171 ## be referred to in issue_server_link or issue_sub using Python backreferences
171 ## be referred to in issue_server_link or issue_sub using Python backreferences
172 ## (e.g. \1, \2, ...). You can also create named groups with '(?P<groupname>)'.
172 ## (e.g. \1, \2, ...). You can also create named groups with '(?P<groupname>)'.
173 ## To require mandatory whitespace before the issue pattern, use:
173 ## To require mandatory whitespace before the issue pattern, use:
174 ## (?:^|(?<=\s)) before the actual pattern, and for mandatory whitespace
174 ## (?:^|(?<=\s)) before the actual pattern, and for mandatory whitespace
175 ## behind the issue pattern, use (?:$|(?=\s)) after the actual pattern.
175 ## behind the issue pattern, use (?:$|(?=\s)) after the actual pattern.
176
176
177 issue_pat = #(\d+)
177 issue_pat = #(\d+)
178
178
179 ## server url to the issue
179 ## server url to the issue
180 ## This pattern may/should contain backreferences to parenthesized groups in issue_pat.
180 ## This pattern may/should contain backreferences to parenthesized groups in issue_pat.
181 ## A backreference can be \1, \2, ... or \g<groupname> if you specified a named group
181 ## A backreference can be \1, \2, ... or \g<groupname> if you specified a named group
182 ## called 'groupname' in issue_pat.
182 ## called 'groupname' in issue_pat.
183 ## The special token {repo} is replaced with the full repository name
183 ## The special token {repo} is replaced with the full repository name
184 ## including repository groups, while {repo_name} is replaced with just
184 ## including repository groups, while {repo_name} is replaced with just
185 ## the name of the repository.
185 ## the name of the repository.
186
186
187 issue_server_link = https://issues.example.com/{repo}/issue/\1
187 issue_server_link = https://issues.example.com/{repo}/issue/\1
188
188
189 ## substitution pattern to use as the link text
189 ## substitution pattern to use as the link text
190 ## If issue_sub is empty, the text matched by issue_pat is retained verbatim
190 ## If issue_sub is empty, the text matched by issue_pat is retained verbatim
191 ## for the link text. Otherwise, the link text is that of issue_sub, with any
191 ## for the link text. Otherwise, the link text is that of issue_sub, with any
192 ## backreferences to groups in issue_pat replaced.
192 ## backreferences to groups in issue_pat replaced.
193
193
194 issue_sub =
194 issue_sub =
195
195
196 ## issue_pat, issue_server_link and issue_sub can have suffixes to specify
196 ## issue_pat, issue_server_link and issue_sub can have suffixes to specify
197 ## multiple patterns, to other issues server, wiki or others
197 ## multiple patterns, to other issues server, wiki or others
198 ## below an example how to create a wiki pattern
198 ## below an example how to create a wiki pattern
199 # wiki-some-id -> https://wiki.example.com/some-id
199 # wiki-some-id -> https://wiki.example.com/some-id
200
200
201 #issue_pat_wiki = wiki-(\S+)
201 #issue_pat_wiki = wiki-(\S+)
202 #issue_server_link_wiki = https://wiki.example.com/\1
202 #issue_server_link_wiki = https://wiki.example.com/\1
203 #issue_sub_wiki = WIKI-\1
203 #issue_sub_wiki = WIKI-\1
204
204
205 ## alternative return HTTP header for failed authentication. Default HTTP
205 ## alternative return HTTP header for failed authentication. Default HTTP
206 ## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with
206 ## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with
207 ## handling that. Set this variable to 403 to return HTTPForbidden
207 ## handling that. Set this variable to 403 to return HTTPForbidden
208 auth_ret_code =
208 auth_ret_code =
209
209
210 ## allows to change the repository location in settings page
210 ## allows to change the repository location in settings page
211 allow_repo_location_change = True
211 allow_repo_location_change = True
212
212
213 ## allows to setup custom hooks in settings page
213 ## allows to setup custom hooks in settings page
214 allow_custom_hooks_settings = True
214 allow_custom_hooks_settings = True
215
215
216 ## extra extensions for indexing, space separated and without the leading '.'.
216 ## extra extensions for indexing, space separated and without the leading '.'.
217 # index.extensions =
217 # index.extensions =
218 # gemfile
218 # gemfile
219 # lock
219 # lock
220
220
221 ## extra filenames for indexing, space separated
221 ## extra filenames for indexing, space separated
222 # index.filenames =
222 # index.filenames =
223 # .dockerignore
223 # .dockerignore
224 # .editorconfig
224 # .editorconfig
225 # INSTALL
225 # INSTALL
226 # CHANGELOG
226 # CHANGELOG
227
227
228 ####################################
228 ####################################
229 ### CELERY CONFIG ####
229 ### CELERY CONFIG ####
230 ####################################
230 ####################################
231
231
232 use_celery = false
232 use_celery = false
233
233
234 ## Example: connect to the virtual host 'rabbitmqhost' on localhost as rabbitmq:
234 ## Example: connect to the virtual host 'rabbitmqhost' on localhost as rabbitmq:
235 broker.url = amqp://rabbitmq:qewqew@localhost:5672/rabbitmqhost
235 broker.url = amqp://rabbitmq:qewqew@localhost:5672/rabbitmqhost
236
236
237 celery.imports = kallithea.lib.celerylib.tasks
237 celery.imports = kallithea.lib.celerylib.tasks
238 celery.accept.content = pickle
238 celery.accept.content = pickle
239 celery.result.backend = amqp
239 celery.result.backend = amqp
240 celery.result.dburi = amqp://
240 celery.result.dburi = amqp://
241 celery.result.serialier = json
241 celery.result.serialier = json
242
242
243 #celery.send.task.error.emails = true
243 #celery.send.task.error.emails = true
244 #celery.amqp.task.result.expires = 18000
244 #celery.amqp.task.result.expires = 18000
245
245
246 celeryd.concurrency = 2
246 celeryd.concurrency = 2
247 celeryd.max.tasks.per.child = 1
247 celeryd.max.tasks.per.child = 1
248
248
249 ## If true, tasks will never be sent to the queue, but executed locally instead.
249 ## If true, tasks will never be sent to the queue, but executed locally instead.
250 celery.always.eager = false
250 celery.always.eager = false
251
251
252 ####################################
252 ####################################
253 ### BEAKER CACHE ####
253 ### BEAKER CACHE ####
254 ####################################
254 ####################################
255
255
256 beaker.cache.data_dir = %(here)s/data/cache/data
256 beaker.cache.data_dir = %(here)s/data/cache/data
257 beaker.cache.lock_dir = %(here)s/data/cache/lock
257 beaker.cache.lock_dir = %(here)s/data/cache/lock
258
258
259 beaker.cache.regions = short_term,long_term,sql_cache_short
259 beaker.cache.regions = short_term,long_term,sql_cache_short
260
260
261 beaker.cache.short_term.type = memory
261 beaker.cache.short_term.type = memory
262 beaker.cache.short_term.expire = 60
262 beaker.cache.short_term.expire = 60
263 beaker.cache.short_term.key_length = 256
263 beaker.cache.short_term.key_length = 256
264
264
265 beaker.cache.long_term.type = memory
265 beaker.cache.long_term.type = memory
266 beaker.cache.long_term.expire = 36000
266 beaker.cache.long_term.expire = 36000
267 beaker.cache.long_term.key_length = 256
267 beaker.cache.long_term.key_length = 256
268
268
269 beaker.cache.sql_cache_short.type = memory
269 beaker.cache.sql_cache_short.type = memory
270 beaker.cache.sql_cache_short.expire = 10
270 beaker.cache.sql_cache_short.expire = 10
271 beaker.cache.sql_cache_short.key_length = 256
271 beaker.cache.sql_cache_short.key_length = 256
272
272
273 ####################################
273 ####################################
274 ### BEAKER SESSION ####
274 ### BEAKER SESSION ####
275 ####################################
275 ####################################
276
276
277 ## Name of session cookie. Should be unique for a given host and path, even when running
277 ## Name of session cookie. Should be unique for a given host and path, even when running
278 ## on different ports. Otherwise, cookie sessions will be shared and messed up.
278 ## on different ports. Otherwise, cookie sessions will be shared and messed up.
279 beaker.session.key = kallithea
279 beaker.session.key = kallithea
280 ## Sessions should always only be accessible by the browser, not directly by JavaScript.
280 ## Sessions should always only be accessible by the browser, not directly by JavaScript.
281 beaker.session.httponly = true
281 beaker.session.httponly = true
282 ## Session lifetime. 2592000 seconds is 30 days.
282 ## Session lifetime. 2592000 seconds is 30 days.
283 beaker.session.timeout = 2592000
283 beaker.session.timeout = 2592000
284
284
285 ## Server secret used with HMAC to ensure integrity of cookies.
285 ## Server secret used with HMAC to ensure integrity of cookies.
286 #beaker.session.secret = VERY-SECRET
286 #beaker.session.secret = VERY-SECRET
287 beaker.session.secret = development-not-secret
287 beaker.session.secret = development-not-secret
288 ## Further, encrypt the data with AES.
288 ## Further, encrypt the data with AES.
289 #beaker.session.encrypt_key = <key_for_encryption>
289 #beaker.session.encrypt_key = <key_for_encryption>
290 #beaker.session.validate_key = <validation_key>
290 #beaker.session.validate_key = <validation_key>
291
291
292 ## Type of storage used for the session, current types are
292 ## Type of storage used for the session, current types are
293 ## dbm, file, memcached, database, and memory.
293 ## dbm, file, memcached, database, and memory.
294
294
295 ## File system storage of session data. (default)
295 ## File system storage of session data. (default)
296 #beaker.session.type = file
296 #beaker.session.type = file
297
297
298 ## Cookie only, store all session data inside the cookie. Requires secure secrets.
298 ## Cookie only, store all session data inside the cookie. Requires secure secrets.
299 #beaker.session.type = cookie
299 #beaker.session.type = cookie
300
300
301 ## Database storage of session data.
301 ## Database storage of session data.
302 #beaker.session.type = ext:database
302 #beaker.session.type = ext:database
303 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea
303 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea
304 #beaker.session.table_name = db_session
304 #beaker.session.table_name = db_session
305
305
306 ############################
307 ## ERROR HANDLING SYSTEMS ##
308 ############################
309
310 # Propagate email settings to ErrorReporter of TurboGears2
311 # You do not normally need to change these lines
312 get trace_errors.error_email = email_to
313 get trace_errors.smtp_server = smtp_server
314 get trace_errors.smtp_port = smtp_port
315 get trace_errors.from_address = error_email_from
316
306 ################################################################################
317 ################################################################################
307 ## WARNING: *DEBUG MODE MUST BE OFF IN A PRODUCTION ENVIRONMENT* ##
318 ## WARNING: *DEBUG MODE MUST BE OFF IN A PRODUCTION ENVIRONMENT* ##
308 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
319 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
309 ## execute malicious code after an exception is raised. ##
320 ## execute malicious code after an exception is raised. ##
310 ################################################################################
321 ################################################################################
311 #debug = false
322 #debug = false
312 debug = true
323 debug = true
313
324
314 ##################################
325 ##################################
315 ### LOGVIEW CONFIG ###
326 ### LOGVIEW CONFIG ###
316 ##################################
327 ##################################
317
328
318 logview.sqlalchemy = #faa
329 logview.sqlalchemy = #faa
319 logview.pylons.templating = #bfb
330 logview.pylons.templating = #bfb
320 logview.pylons.util = #eee
331 logview.pylons.util = #eee
321
332
322 #########################################################
333 #########################################################
323 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
334 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
324 #########################################################
335 #########################################################
325
336
326 # SQLITE [default]
337 # SQLITE [default]
327 sqlalchemy.url = sqlite:///%(here)s/kallithea.db?timeout=60
338 sqlalchemy.url = sqlite:///%(here)s/kallithea.db?timeout=60
328
339
329 # see sqlalchemy docs for others
340 # see sqlalchemy docs for others
330
341
331 sqlalchemy.pool_recycle = 3600
342 sqlalchemy.pool_recycle = 3600
332
343
333 ################################
344 ################################
334 ### ALEMBIC CONFIGURATION ####
345 ### ALEMBIC CONFIGURATION ####
335 ################################
346 ################################
336
347
337 [alembic]
348 [alembic]
338 script_location = kallithea:alembic
349 script_location = kallithea:alembic
339
350
340 ################################
351 ################################
341 ### LOGGING CONFIGURATION ####
352 ### LOGGING CONFIGURATION ####
342 ################################
353 ################################
343
354
344 [loggers]
355 [loggers]
345 keys = root, routes, kallithea, sqlalchemy, tg, gearbox, beaker, templates, whoosh_indexer, werkzeug, backlash
356 keys = root, routes, kallithea, sqlalchemy, tg, gearbox, beaker, templates, whoosh_indexer, werkzeug, backlash
346
357
347 [handlers]
358 [handlers]
348 keys = console, console_sql
359 keys = console, console_sql
349
360
350 [formatters]
361 [formatters]
351 keys = generic, color_formatter, color_formatter_sql
362 keys = generic, color_formatter, color_formatter_sql
352
363
353 #############
364 #############
354 ## LOGGERS ##
365 ## LOGGERS ##
355 #############
366 #############
356
367
357 [logger_root]
368 [logger_root]
358 level = NOTSET
369 level = NOTSET
359 handlers = console
370 handlers = console
360
371
361 [logger_routes]
372 [logger_routes]
362 #level = WARN
373 #level = WARN
363 level = DEBUG
374 level = DEBUG
364 handlers =
375 handlers =
365 qualname = routes.middleware
376 qualname = routes.middleware
366 ## "level = DEBUG" logs the route matched and routing variables.
377 ## "level = DEBUG" logs the route matched and routing variables.
367 propagate = 1
378 propagate = 1
368
379
369 [logger_beaker]
380 [logger_beaker]
370 #level = WARN
381 #level = WARN
371 level = DEBUG
382 level = DEBUG
372 handlers =
383 handlers =
373 qualname = beaker.container
384 qualname = beaker.container
374 propagate = 1
385 propagate = 1
375
386
376 [logger_templates]
387 [logger_templates]
377 #level = WARN
388 #level = WARN
378 level = INFO
389 level = INFO
379 handlers =
390 handlers =
380 qualname = pylons.templating
391 qualname = pylons.templating
381 propagate = 1
392 propagate = 1
382
393
383 [logger_kallithea]
394 [logger_kallithea]
384 #level = WARN
395 #level = WARN
385 level = DEBUG
396 level = DEBUG
386 handlers =
397 handlers =
387 qualname = kallithea
398 qualname = kallithea
388 propagate = 1
399 propagate = 1
389
400
390 [logger_tg]
401 [logger_tg]
391 #level = WARN
402 #level = WARN
392 level = DEBUG
403 level = DEBUG
393 handlers =
404 handlers =
394 qualname = tg
405 qualname = tg
395 propagate = 1
406 propagate = 1
396
407
397 [logger_gearbox]
408 [logger_gearbox]
398 #level = WARN
409 #level = WARN
399 level = DEBUG
410 level = DEBUG
400 handlers =
411 handlers =
401 qualname = gearbox
412 qualname = gearbox
402 propagate = 1
413 propagate = 1
403
414
404 [logger_sqlalchemy]
415 [logger_sqlalchemy]
405 level = WARN
416 level = WARN
406 handlers = console_sql
417 handlers = console_sql
407 qualname = sqlalchemy.engine
418 qualname = sqlalchemy.engine
408 propagate = 0
419 propagate = 0
409
420
410 [logger_whoosh_indexer]
421 [logger_whoosh_indexer]
411 #level = WARN
422 #level = WARN
412 level = DEBUG
423 level = DEBUG
413 handlers =
424 handlers =
414 qualname = whoosh_indexer
425 qualname = whoosh_indexer
415 propagate = 1
426 propagate = 1
416
427
417 [logger_werkzeug]
428 [logger_werkzeug]
418 level = WARN
429 level = WARN
419 handlers =
430 handlers =
420 qualname = werkzeug
431 qualname = werkzeug
421 propagate = 1
432 propagate = 1
422
433
423 [logger_backlash]
434 [logger_backlash]
424 level = WARN
435 level = WARN
425 handlers =
436 handlers =
426 qualname = backlash
437 qualname = backlash
427 propagate = 1
438 propagate = 1
428
439
429 ##############
440 ##############
430 ## HANDLERS ##
441 ## HANDLERS ##
431 ##############
442 ##############
432
443
433 [handler_console]
444 [handler_console]
434 class = StreamHandler
445 class = StreamHandler
435 args = (sys.stderr,)
446 args = (sys.stderr,)
436 #formatter = generic
447 #formatter = generic
437 formatter = color_formatter
448 formatter = color_formatter
438
449
439 [handler_console_sql]
450 [handler_console_sql]
440 class = StreamHandler
451 class = StreamHandler
441 args = (sys.stderr,)
452 args = (sys.stderr,)
442 #formatter = generic
453 #formatter = generic
443 formatter = color_formatter_sql
454 formatter = color_formatter_sql
444
455
445 ################
456 ################
446 ## FORMATTERS ##
457 ## FORMATTERS ##
447 ################
458 ################
448
459
449 [formatter_generic]
460 [formatter_generic]
450 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
461 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
451 datefmt = %Y-%m-%d %H:%M:%S
462 datefmt = %Y-%m-%d %H:%M:%S
452
463
453 [formatter_color_formatter]
464 [formatter_color_formatter]
454 class = kallithea.lib.colored_formatter.ColorFormatter
465 class = kallithea.lib.colored_formatter.ColorFormatter
455 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
466 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
456 datefmt = %Y-%m-%d %H:%M:%S
467 datefmt = %Y-%m-%d %H:%M:%S
457
468
458 [formatter_color_formatter_sql]
469 [formatter_color_formatter_sql]
459 class = kallithea.lib.colored_formatter.ColorFormatterSql
470 class = kallithea.lib.colored_formatter.ColorFormatterSql
460 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
471 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
461 datefmt = %Y-%m-%d %H:%M:%S
472 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,644 +1,644 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%text>################################################################################</%text>
2 <%text>################################################################################</%text>
3 <%text>################################################################################</%text>
3 <%text>################################################################################</%text>
4 # Kallithea - config file generated with kallithea-config #
4 # Kallithea - config file generated with kallithea-config #
5 # #
5 # #
6 # The %(here)s variable will be replaced with the parent directory of this file#
6 # The %(here)s variable will be replaced with the parent directory of this file#
7 <%text>################################################################################</%text>
7 <%text>################################################################################</%text>
8 <%text>################################################################################</%text>
8 <%text>################################################################################</%text>
9
9
10 [DEFAULT]
10 [DEFAULT]
11
11
12 <%text>################################################################################</%text>
12 <%text>################################################################################</%text>
13 <%text>## Email settings ##</%text>
13 <%text>## Email settings ##</%text>
14 <%text>## ##</%text>
14 <%text>## ##</%text>
15 <%text>## Refer to the documentation ("Email settings") for more details. ##</%text>
15 <%text>## Refer to the documentation ("Email settings") for more details. ##</%text>
16 <%text>## ##</%text>
16 <%text>## ##</%text>
17 <%text>## It is recommended to use a valid sender address that passes access ##</%text>
17 <%text>## It is recommended to use a valid sender address that passes access ##</%text>
18 <%text>## validation and spam filtering in mail servers. ##</%text>
18 <%text>## validation and spam filtering in mail servers. ##</%text>
19 <%text>################################################################################</%text>
19 <%text>################################################################################</%text>
20
20
21 <%text>## 'From' header for application emails. You can optionally add a name.</%text>
21 <%text>## 'From' header for application emails. You can optionally add a name.</%text>
22 <%text>## Default:</%text>
22 <%text>## Default:</%text>
23 #app_email_from = Kallithea
23 #app_email_from = Kallithea
24 <%text>## Examples:</%text>
24 <%text>## Examples:</%text>
25 #app_email_from = Kallithea <kallithea-noreply@example.com>
25 #app_email_from = Kallithea <kallithea-noreply@example.com>
26 #app_email_from = kallithea-noreply@example.com
26 #app_email_from = kallithea-noreply@example.com
27
27
28 <%text>## Subject prefix for application emails.</%text>
28 <%text>## Subject prefix for application emails.</%text>
29 <%text>## A space between this prefix and the real subject is automatically added.</%text>
29 <%text>## A space between this prefix and the real subject is automatically added.</%text>
30 <%text>## Default:</%text>
30 <%text>## Default:</%text>
31 #email_prefix =
31 #email_prefix =
32 <%text>## Example:</%text>
32 <%text>## Example:</%text>
33 #email_prefix = [Kallithea]
33 #email_prefix = [Kallithea]
34
34
35 <%text>## Recipients for error emails and fallback recipients of application mails.</%text>
35 <%text>## Recipients for error emails and fallback recipients of application mails.</%text>
36 <%text>## Multiple addresses can be specified, comma-separated.</%text>
36 <%text>## Multiple addresses can be specified, comma-separated.</%text>
37 <%text>## Only addresses are allowed, do not add any name part.</%text>
37 <%text>## Only addresses are allowed, do not add any name part.</%text>
38 <%text>## Default:</%text>
38 <%text>## Default:</%text>
39 #email_to =
39 #email_to =
40 <%text>## Examples:</%text>
40 <%text>## Examples:</%text>
41 #email_to = admin@example.com
41 #email_to = admin@example.com
42 #email_to = admin@example.com,another_admin@example.com
42 #email_to = admin@example.com,another_admin@example.com
43 email_to =
43 email_to =
44
44
45 <%text>## 'From' header for error emails. You can optionally add a name.</%text>
45 <%text>## 'From' header for error emails. You can optionally add a name.</%text>
46 <%text>## Default: (none)</%text>
46 <%text>## Default: (none)</%text>
47 <%text>## Examples:</%text>
47 <%text>## Examples:</%text>
48 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
48 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
49 #error_email_from = kallithea_errors@example.com
49 #error_email_from = kallithea_errors@example.com
50 error_email_from =
50 error_email_from =
51
51
52 <%text>## SMTP server settings</%text>
52 <%text>## SMTP server settings</%text>
53 <%text>## If specifying credentials, make sure to use secure connections.</%text>
53 <%text>## If specifying credentials, make sure to use secure connections.</%text>
54 <%text>## Default: Send unencrypted unauthenticated mails to the specified smtp_server.</%text>
54 <%text>## Default: Send unencrypted unauthenticated mails to the specified smtp_server.</%text>
55 <%text>## For "SSL", use smtp_use_ssl = true and smtp_port = 465.</%text>
55 <%text>## For "SSL", use smtp_use_ssl = true and smtp_port = 465.</%text>
56 <%text>## For "STARTTLS", use smtp_use_tls = true and smtp_port = 587.</%text>
56 <%text>## For "STARTTLS", use smtp_use_tls = true and smtp_port = 587.</%text>
57 smtp_server =
57 smtp_server =
58 #smtp_username =
58 #smtp_username =
59 #smtp_password =
59 #smtp_password =
60 smtp_port =
60 smtp_port =
61 #smtp_use_ssl = false
61 #smtp_use_ssl = false
62 #smtp_use_tls = false
62 #smtp_use_tls = false
63
63
64 %if http_server != 'uwsgi':
64 %if http_server != 'uwsgi':
65 <%text>## Entry point for 'gearbox serve'</%text>
65 <%text>## Entry point for 'gearbox serve'</%text>
66 [server:main]
66 [server:main]
67 host = ${host}
67 host = ${host}
68 port = ${port}
68 port = ${port}
69
69
70 %if http_server == 'gearbox':
70 %if http_server == 'gearbox':
71 <%text>## Gearbox default web server ##</%text>
71 <%text>## Gearbox default web server ##</%text>
72 use = egg:gearbox#wsgiref
72 use = egg:gearbox#wsgiref
73 <%text>## nr of worker threads to spawn</%text>
73 <%text>## nr of worker threads to spawn</%text>
74 threadpool_workers = 1
74 threadpool_workers = 1
75 <%text>## max request before thread respawn</%text>
75 <%text>## max request before thread respawn</%text>
76 threadpool_max_requests = 100
76 threadpool_max_requests = 100
77 <%text>## option to use threads of process</%text>
77 <%text>## option to use threads of process</%text>
78 use_threadpool = true
78 use_threadpool = true
79
79
80 %elif http_server == 'gevent':
80 %elif http_server == 'gevent':
81 <%text>## Gearbox gevent web server ##</%text>
81 <%text>## Gearbox gevent web server ##</%text>
82 use = egg:gearbox#gevent
82 use = egg:gearbox#gevent
83
83
84 %elif http_server == 'waitress':
84 %elif http_server == 'waitress':
85 <%text>## WAITRESS ##</%text>
85 <%text>## WAITRESS ##</%text>
86 use = egg:waitress#main
86 use = egg:waitress#main
87 <%text>## number of worker threads</%text>
87 <%text>## number of worker threads</%text>
88 threads = 1
88 threads = 1
89 <%text>## MAX BODY SIZE 100GB</%text>
89 <%text>## MAX BODY SIZE 100GB</%text>
90 max_request_body_size = 107374182400
90 max_request_body_size = 107374182400
91 <%text>## use poll instead of select, fixes fd limits, may not work on old</%text>
91 <%text>## use poll instead of select, fixes fd limits, may not work on old</%text>
92 <%text>## windows systems.</%text>
92 <%text>## windows systems.</%text>
93 #asyncore_use_poll = True
93 #asyncore_use_poll = True
94
94
95 %elif http_server == 'gunicorn':
95 %elif http_server == 'gunicorn':
96 <%text>## GUNICORN ##</%text>
96 <%text>## GUNICORN ##</%text>
97 use = egg:gunicorn#main
97 use = egg:gunicorn#main
98 <%text>## number of process workers. You must set `instance_id = *` when this option</%text>
98 <%text>## number of process workers. You must set `instance_id = *` when this option</%text>
99 <%text>## is set to more than one worker</%text>
99 <%text>## is set to more than one worker</%text>
100 workers = 4
100 workers = 4
101 <%text>## process name</%text>
101 <%text>## process name</%text>
102 proc_name = kallithea
102 proc_name = kallithea
103 <%text>## type of worker class, one of sync, eventlet, gevent, tornado</%text>
103 <%text>## type of worker class, one of sync, eventlet, gevent, tornado</%text>
104 <%text>## recommended for bigger setup is using of of other than sync one</%text>
104 <%text>## recommended for bigger setup is using of of other than sync one</%text>
105 worker_class = sync
105 worker_class = sync
106 max_requests = 1000
106 max_requests = 1000
107 <%text>## amount of time a worker can handle request before it gets killed and</%text>
107 <%text>## amount of time a worker can handle request before it gets killed and</%text>
108 <%text>## restarted</%text>
108 <%text>## restarted</%text>
109 timeout = 3600
109 timeout = 3600
110
110
111 %endif
111 %endif
112 %else:
112 %else:
113 <%text>## UWSGI ##</%text>
113 <%text>## UWSGI ##</%text>
114 <%text>## run with uwsgi --ini-paste-logged <inifile.ini></%text>
114 <%text>## run with uwsgi --ini-paste-logged <inifile.ini></%text>
115 [uwsgi]
115 [uwsgi]
116 socket = /tmp/uwsgi.sock
116 socket = /tmp/uwsgi.sock
117 master = true
117 master = true
118 http = ${host}:${port}
118 http = ${host}:${port}
119
119
120 <%text>## set as daemon and redirect all output to file</%text>
120 <%text>## set as daemon and redirect all output to file</%text>
121 #daemonize = ./uwsgi_kallithea.log
121 #daemonize = ./uwsgi_kallithea.log
122
122
123 <%text>## master process PID</%text>
123 <%text>## master process PID</%text>
124 pidfile = ./uwsgi_kallithea.pid
124 pidfile = ./uwsgi_kallithea.pid
125
125
126 <%text>## stats server with workers statistics, use uwsgitop</%text>
126 <%text>## stats server with workers statistics, use uwsgitop</%text>
127 <%text>## for monitoring, `uwsgitop 127.0.0.1:1717`</%text>
127 <%text>## for monitoring, `uwsgitop 127.0.0.1:1717`</%text>
128 stats = 127.0.0.1:1717
128 stats = 127.0.0.1:1717
129 memory-report = true
129 memory-report = true
130
130
131 <%text>## log 5XX errors</%text>
131 <%text>## log 5XX errors</%text>
132 log-5xx = true
132 log-5xx = true
133
133
134 <%text>## Set the socket listen queue size.</%text>
134 <%text>## Set the socket listen queue size.</%text>
135 listen = 128
135 listen = 128
136
136
137 <%text>## Gracefully Reload workers after the specified amount of managed requests</%text>
137 <%text>## Gracefully Reload workers after the specified amount of managed requests</%text>
138 <%text>## (avoid memory leaks).</%text>
138 <%text>## (avoid memory leaks).</%text>
139 max-requests = 1000
139 max-requests = 1000
140
140
141 <%text>## enable large buffers</%text>
141 <%text>## enable large buffers</%text>
142 buffer-size = 65535
142 buffer-size = 65535
143
143
144 <%text>## socket and http timeouts ##</%text>
144 <%text>## socket and http timeouts ##</%text>
145 http-timeout = 3600
145 http-timeout = 3600
146 socket-timeout = 3600
146 socket-timeout = 3600
147
147
148 <%text>## Log requests slower than the specified number of milliseconds.</%text>
148 <%text>## Log requests slower than the specified number of milliseconds.</%text>
149 log-slow = 10
149 log-slow = 10
150
150
151 <%text>## Exit if no app can be loaded.</%text>
151 <%text>## Exit if no app can be loaded.</%text>
152 need-app = true
152 need-app = true
153
153
154 <%text>## Set lazy mode (load apps in workers instead of master).</%text>
154 <%text>## Set lazy mode (load apps in workers instead of master).</%text>
155 lazy = true
155 lazy = true
156
156
157 <%text>## scaling ##</%text>
157 <%text>## scaling ##</%text>
158 <%text>## set cheaper algorithm to use, if not set default will be used</%text>
158 <%text>## set cheaper algorithm to use, if not set default will be used</%text>
159 cheaper-algo = spare
159 cheaper-algo = spare
160
160
161 <%text>## minimum number of workers to keep at all times</%text>
161 <%text>## minimum number of workers to keep at all times</%text>
162 cheaper = 1
162 cheaper = 1
163
163
164 <%text>## number of workers to spawn at startup</%text>
164 <%text>## number of workers to spawn at startup</%text>
165 cheaper-initial = 1
165 cheaper-initial = 1
166
166
167 <%text>## maximum number of workers that can be spawned</%text>
167 <%text>## maximum number of workers that can be spawned</%text>
168 workers = 4
168 workers = 4
169
169
170 <%text>## how many workers should be spawned at a time</%text>
170 <%text>## how many workers should be spawned at a time</%text>
171 cheaper-step = 1
171 cheaper-step = 1
172
172
173 %endif
173 %endif
174 <%text>## middleware for hosting the WSGI application under a URL prefix</%text>
174 <%text>## middleware for hosting the WSGI application under a URL prefix</%text>
175 #[filter:proxy-prefix]
175 #[filter:proxy-prefix]
176 #use = egg:PasteDeploy#prefix
176 #use = egg:PasteDeploy#prefix
177 #prefix = /<your-prefix>
177 #prefix = /<your-prefix>
178
178
179 [app:main]
179 [app:main]
180 use = egg:kallithea
180 use = egg:kallithea
181 <%text>## enable proxy prefix middleware</%text>
181 <%text>## enable proxy prefix middleware</%text>
182 #filter-with = proxy-prefix
182 #filter-with = proxy-prefix
183
183
184 full_stack = true
184 full_stack = true
185 static_files = true
185 static_files = true
186
186
187 <%text>## Internationalization (see setup documentation for details)</%text>
187 <%text>## Internationalization (see setup documentation for details)</%text>
188 <%text>## By default, the language requested by the browser is used if available.</%text>
188 <%text>## By default, the language requested by the browser is used if available.</%text>
189 #i18n.enabled = false
189 #i18n.enabled = false
190 <%text>## Fallback language, empty for English (valid values are the names of subdirectories in kallithea/i18n):</%text>
190 <%text>## Fallback language, empty for English (valid values are the names of subdirectories in kallithea/i18n):</%text>
191 i18n.lang =
191 i18n.lang =
192
192
193 cache_dir = %(here)s/data
193 cache_dir = %(here)s/data
194 index_dir = %(here)s/data/index
194 index_dir = %(here)s/data/index
195
195
196 <%text>## uncomment and set this path to use archive download cache</%text>
196 <%text>## uncomment and set this path to use archive download cache</%text>
197 archive_cache_dir = %(here)s/tarballcache
197 archive_cache_dir = %(here)s/tarballcache
198
198
199 <%text>## change this to unique ID for security</%text>
199 <%text>## change this to unique ID for security</%text>
200 app_instance_uuid = ${uuid()}
200 app_instance_uuid = ${uuid()}
201
201
202 <%text>## cut off limit for large diffs (size in bytes)</%text>
202 <%text>## cut off limit for large diffs (size in bytes)</%text>
203 cut_off_limit = 256000
203 cut_off_limit = 256000
204
204
205 <%text>## force https in Kallithea, fixes https redirects, assumes it's always https</%text>
205 <%text>## force https in Kallithea, fixes https redirects, assumes it's always https</%text>
206 force_https = false
206 force_https = false
207
207
208 <%text>## use Strict-Transport-Security headers</%text>
208 <%text>## use Strict-Transport-Security headers</%text>
209 use_htsts = false
209 use_htsts = false
210
210
211 <%text>## number of commits stats will parse on each iteration</%text>
211 <%text>## number of commits stats will parse on each iteration</%text>
212 commit_parse_limit = 25
212 commit_parse_limit = 25
213
213
214 <%text>## Path to Python executable to be used for git hooks.</%text>
214 <%text>## Path to Python executable to be used for git hooks.</%text>
215 <%text>## This value will be written inside the git hook scripts as the text</%text>
215 <%text>## This value will be written inside the git hook scripts as the text</%text>
216 <%text>## after '#!' (shebang). When empty or not defined, the value of</%text>
216 <%text>## after '#!' (shebang). When empty or not defined, the value of</%text>
217 <%text>## 'sys.executable' at the time of installation of the git hooks is</%text>
217 <%text>## 'sys.executable' at the time of installation of the git hooks is</%text>
218 <%text>## used, which is correct in many cases but for example not when using uwsgi.</%text>
218 <%text>## used, which is correct in many cases but for example not when using uwsgi.</%text>
219 <%text>## If you change this setting, you should reinstall the Git hooks via</%text>
219 <%text>## If you change this setting, you should reinstall the Git hooks via</%text>
220 <%text>## Admin > Settings > Remap and Rescan.</%text>
220 <%text>## Admin > Settings > Remap and Rescan.</%text>
221 # git_hook_interpreter = /srv/kallithea/venv/bin/python2
221 # git_hook_interpreter = /srv/kallithea/venv/bin/python2
222 %if git_hook_interpreter:
222 %if git_hook_interpreter:
223 git_hook_interpreter = ${git_hook_interpreter}
223 git_hook_interpreter = ${git_hook_interpreter}
224 %endif
224 %endif
225
225
226 <%text>## path to git executable</%text>
226 <%text>## path to git executable</%text>
227 git_path = git
227 git_path = git
228
228
229 <%text>## git rev filter option, --all is the default filter, if you need to</%text>
229 <%text>## git rev filter option, --all is the default filter, if you need to</%text>
230 <%text>## hide all refs in changelog switch this to --branches --tags</%text>
230 <%text>## hide all refs in changelog switch this to --branches --tags</%text>
231 #git_rev_filter = --branches --tags
231 #git_rev_filter = --branches --tags
232
232
233 <%text>## RSS feed options</%text>
233 <%text>## RSS feed options</%text>
234 rss_cut_off_limit = 256000
234 rss_cut_off_limit = 256000
235 rss_items_per_page = 10
235 rss_items_per_page = 10
236 rss_include_diff = false
236 rss_include_diff = false
237
237
238 <%text>## options for showing and identifying changesets</%text>
238 <%text>## options for showing and identifying changesets</%text>
239 show_sha_length = 12
239 show_sha_length = 12
240 show_revision_number = false
240 show_revision_number = false
241
241
242 <%text>## Canonical URL to use when creating full URLs in UI and texts.</%text>
242 <%text>## Canonical URL to use when creating full URLs in UI and texts.</%text>
243 <%text>## Useful when the site is available under different names or protocols.</%text>
243 <%text>## Useful when the site is available under different names or protocols.</%text>
244 <%text>## Defaults to what is provided in the WSGI environment.</%text>
244 <%text>## Defaults to what is provided in the WSGI environment.</%text>
245 #canonical_url = https://kallithea.example.com/repos
245 #canonical_url = https://kallithea.example.com/repos
246
246
247 <%text>## gist URL alias, used to create nicer urls for gist. This should be an</%text>
247 <%text>## gist URL alias, used to create nicer urls for gist. This should be an</%text>
248 <%text>## url that does rewrites to _admin/gists/<gistid>.</%text>
248 <%text>## url that does rewrites to _admin/gists/<gistid>.</%text>
249 <%text>## example: http://gist.example.com/{gistid}. Empty means use the internal</%text>
249 <%text>## example: http://gist.example.com/{gistid}. Empty means use the internal</%text>
250 <%text>## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid></%text>
250 <%text>## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid></%text>
251 gist_alias_url =
251 gist_alias_url =
252
252
253 <%text>## default encoding used to convert from and to unicode</%text>
253 <%text>## default encoding used to convert from and to unicode</%text>
254 <%text>## can be also a comma separated list of encoding in case of mixed encodings</%text>
254 <%text>## can be also a comma separated list of encoding in case of mixed encodings</%text>
255 default_encoding = utf-8
255 default_encoding = utf-8
256
256
257 <%text>## Set Mercurial encoding, similar to setting HGENCODING before launching Kallithea</%text>
257 <%text>## Set Mercurial encoding, similar to setting HGENCODING before launching Kallithea</%text>
258 hgencoding = utf-8
258 hgencoding = utf-8
259
259
260 <%text>## issue tracker for Kallithea (leave blank to disable, absent for default)</%text>
260 <%text>## issue tracker for Kallithea (leave blank to disable, absent for default)</%text>
261 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
261 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
262
262
263 <%text>## issue tracking mapping for commit messages, comments, PR descriptions, ...</%text>
263 <%text>## issue tracking mapping for commit messages, comments, PR descriptions, ...</%text>
264 <%text>## Refer to the documentation ("Integration with issue trackers") for more details.</%text>
264 <%text>## Refer to the documentation ("Integration with issue trackers") for more details.</%text>
265
265
266 <%text>## regular expression to match issue references</%text>
266 <%text>## regular expression to match issue references</%text>
267 <%text>## This pattern may/should contain parenthesized groups, that can</%text>
267 <%text>## This pattern may/should contain parenthesized groups, that can</%text>
268 <%text>## be referred to in issue_server_link or issue_sub using Python backreferences</%text>
268 <%text>## be referred to in issue_server_link or issue_sub using Python backreferences</%text>
269 <%text>## (e.g. \1, \2, ...). You can also create named groups with '(?P<groupname>)'.</%text>
269 <%text>## (e.g. \1, \2, ...). You can also create named groups with '(?P<groupname>)'.</%text>
270 <%text>## To require mandatory whitespace before the issue pattern, use:</%text>
270 <%text>## To require mandatory whitespace before the issue pattern, use:</%text>
271 <%text>## (?:^|(?<=\s)) before the actual pattern, and for mandatory whitespace</%text>
271 <%text>## (?:^|(?<=\s)) before the actual pattern, and for mandatory whitespace</%text>
272 <%text>## behind the issue pattern, use (?:$|(?=\s)) after the actual pattern.</%text>
272 <%text>## behind the issue pattern, use (?:$|(?=\s)) after the actual pattern.</%text>
273
273
274 issue_pat = #(\d+)
274 issue_pat = #(\d+)
275
275
276 <%text>## server url to the issue</%text>
276 <%text>## server url to the issue</%text>
277 <%text>## This pattern may/should contain backreferences to parenthesized groups in issue_pat.</%text>
277 <%text>## This pattern may/should contain backreferences to parenthesized groups in issue_pat.</%text>
278 <%text>## A backreference can be \1, \2, ... or \g<groupname> if you specified a named group</%text>
278 <%text>## A backreference can be \1, \2, ... or \g<groupname> if you specified a named group</%text>
279 <%text>## called 'groupname' in issue_pat.</%text>
279 <%text>## called 'groupname' in issue_pat.</%text>
280 <%text>## The special token {repo} is replaced with the full repository name</%text>
280 <%text>## The special token {repo} is replaced with the full repository name</%text>
281 <%text>## including repository groups, while {repo_name} is replaced with just</%text>
281 <%text>## including repository groups, while {repo_name} is replaced with just</%text>
282 <%text>## the name of the repository.</%text>
282 <%text>## the name of the repository.</%text>
283
283
284 issue_server_link = https://issues.example.com/{repo}/issue/\1
284 issue_server_link = https://issues.example.com/{repo}/issue/\1
285
285
286 <%text>## substitution pattern to use as the link text</%text>
286 <%text>## substitution pattern to use as the link text</%text>
287 <%text>## If issue_sub is empty, the text matched by issue_pat is retained verbatim</%text>
287 <%text>## If issue_sub is empty, the text matched by issue_pat is retained verbatim</%text>
288 <%text>## for the link text. Otherwise, the link text is that of issue_sub, with any</%text>
288 <%text>## for the link text. Otherwise, the link text is that of issue_sub, with any</%text>
289 <%text>## backreferences to groups in issue_pat replaced.</%text>
289 <%text>## backreferences to groups in issue_pat replaced.</%text>
290
290
291 issue_sub =
291 issue_sub =
292
292
293 <%text>## issue_pat, issue_server_link and issue_sub can have suffixes to specify</%text>
293 <%text>## issue_pat, issue_server_link and issue_sub can have suffixes to specify</%text>
294 <%text>## multiple patterns, to other issues server, wiki or others</%text>
294 <%text>## multiple patterns, to other issues server, wiki or others</%text>
295 <%text>## below an example how to create a wiki pattern</%text>
295 <%text>## below an example how to create a wiki pattern</%text>
296 # wiki-some-id -> https://wiki.example.com/some-id
296 # wiki-some-id -> https://wiki.example.com/some-id
297
297
298 #issue_pat_wiki = wiki-(\S+)
298 #issue_pat_wiki = wiki-(\S+)
299 #issue_server_link_wiki = https://wiki.example.com/\1
299 #issue_server_link_wiki = https://wiki.example.com/\1
300 #issue_sub_wiki = WIKI-\1
300 #issue_sub_wiki = WIKI-\1
301
301
302 <%text>## alternative return HTTP header for failed authentication. Default HTTP</%text>
302 <%text>## alternative return HTTP header for failed authentication. Default HTTP</%text>
303 <%text>## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with</%text>
303 <%text>## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with</%text>
304 <%text>## handling that. Set this variable to 403 to return HTTPForbidden</%text>
304 <%text>## handling that. Set this variable to 403 to return HTTPForbidden</%text>
305 auth_ret_code =
305 auth_ret_code =
306
306
307 <%text>## allows to change the repository location in settings page</%text>
307 <%text>## allows to change the repository location in settings page</%text>
308 allow_repo_location_change = True
308 allow_repo_location_change = True
309
309
310 <%text>## allows to setup custom hooks in settings page</%text>
310 <%text>## allows to setup custom hooks in settings page</%text>
311 allow_custom_hooks_settings = True
311 allow_custom_hooks_settings = True
312
312
313 <%text>## extra extensions for indexing, space separated and without the leading '.'.</%text>
313 <%text>## extra extensions for indexing, space separated and without the leading '.'.</%text>
314 # index.extensions =
314 # index.extensions =
315 # gemfile
315 # gemfile
316 # lock
316 # lock
317
317
318 <%text>## extra filenames for indexing, space separated</%text>
318 <%text>## extra filenames for indexing, space separated</%text>
319 # index.filenames =
319 # index.filenames =
320 # .dockerignore
320 # .dockerignore
321 # .editorconfig
321 # .editorconfig
322 # INSTALL
322 # INSTALL
323 # CHANGELOG
323 # CHANGELOG
324
324
325 <%text>####################################</%text>
325 <%text>####################################</%text>
326 <%text>### CELERY CONFIG ####</%text>
326 <%text>### CELERY CONFIG ####</%text>
327 <%text>####################################</%text>
327 <%text>####################################</%text>
328
328
329 use_celery = false
329 use_celery = false
330
330
331 <%text>## Example: connect to the virtual host 'rabbitmqhost' on localhost as rabbitmq:</%text>
331 <%text>## Example: connect to the virtual host 'rabbitmqhost' on localhost as rabbitmq:</%text>
332 broker.url = amqp://rabbitmq:qewqew@localhost:5672/rabbitmqhost
332 broker.url = amqp://rabbitmq:qewqew@localhost:5672/rabbitmqhost
333
333
334 celery.imports = kallithea.lib.celerylib.tasks
334 celery.imports = kallithea.lib.celerylib.tasks
335 celery.accept.content = pickle
335 celery.accept.content = pickle
336 celery.result.backend = amqp
336 celery.result.backend = amqp
337 celery.result.dburi = amqp://
337 celery.result.dburi = amqp://
338 celery.result.serialier = json
338 celery.result.serialier = json
339
339
340 #celery.send.task.error.emails = true
340 #celery.send.task.error.emails = true
341 #celery.amqp.task.result.expires = 18000
341 #celery.amqp.task.result.expires = 18000
342
342
343 celeryd.concurrency = 2
343 celeryd.concurrency = 2
344 celeryd.max.tasks.per.child = 1
344 celeryd.max.tasks.per.child = 1
345
345
346 <%text>## If true, tasks will never be sent to the queue, but executed locally instead.</%text>
346 <%text>## If true, tasks will never be sent to the queue, but executed locally instead.</%text>
347 celery.always.eager = false
347 celery.always.eager = false
348
348
349 <%text>####################################</%text>
349 <%text>####################################</%text>
350 <%text>### BEAKER CACHE ####</%text>
350 <%text>### BEAKER CACHE ####</%text>
351 <%text>####################################</%text>
351 <%text>####################################</%text>
352
352
353 beaker.cache.data_dir = %(here)s/data/cache/data
353 beaker.cache.data_dir = %(here)s/data/cache/data
354 beaker.cache.lock_dir = %(here)s/data/cache/lock
354 beaker.cache.lock_dir = %(here)s/data/cache/lock
355
355
356 beaker.cache.regions = short_term,long_term,sql_cache_short
356 beaker.cache.regions = short_term,long_term,sql_cache_short
357
357
358 beaker.cache.short_term.type = memory
358 beaker.cache.short_term.type = memory
359 beaker.cache.short_term.expire = 60
359 beaker.cache.short_term.expire = 60
360 beaker.cache.short_term.key_length = 256
360 beaker.cache.short_term.key_length = 256
361
361
362 beaker.cache.long_term.type = memory
362 beaker.cache.long_term.type = memory
363 beaker.cache.long_term.expire = 36000
363 beaker.cache.long_term.expire = 36000
364 beaker.cache.long_term.key_length = 256
364 beaker.cache.long_term.key_length = 256
365
365
366 beaker.cache.sql_cache_short.type = memory
366 beaker.cache.sql_cache_short.type = memory
367 beaker.cache.sql_cache_short.expire = 10
367 beaker.cache.sql_cache_short.expire = 10
368 beaker.cache.sql_cache_short.key_length = 256
368 beaker.cache.sql_cache_short.key_length = 256
369
369
370 <%text>####################################</%text>
370 <%text>####################################</%text>
371 <%text>### BEAKER SESSION ####</%text>
371 <%text>### BEAKER SESSION ####</%text>
372 <%text>####################################</%text>
372 <%text>####################################</%text>
373
373
374 <%text>## Name of session cookie. Should be unique for a given host and path, even when running</%text>
374 <%text>## Name of session cookie. Should be unique for a given host and path, even when running</%text>
375 <%text>## on different ports. Otherwise, cookie sessions will be shared and messed up.</%text>
375 <%text>## on different ports. Otherwise, cookie sessions will be shared and messed up.</%text>
376 beaker.session.key = kallithea
376 beaker.session.key = kallithea
377 <%text>## Sessions should always only be accessible by the browser, not directly by JavaScript.</%text>
377 <%text>## Sessions should always only be accessible by the browser, not directly by JavaScript.</%text>
378 beaker.session.httponly = true
378 beaker.session.httponly = true
379 <%text>## Session lifetime. 2592000 seconds is 30 days.</%text>
379 <%text>## Session lifetime. 2592000 seconds is 30 days.</%text>
380 beaker.session.timeout = 2592000
380 beaker.session.timeout = 2592000
381
381
382 <%text>## Server secret used with HMAC to ensure integrity of cookies.</%text>
382 <%text>## Server secret used with HMAC to ensure integrity of cookies.</%text>
383 beaker.session.secret = ${uuid()}
383 beaker.session.secret = ${uuid()}
384 <%text>## Further, encrypt the data with AES.</%text>
384 <%text>## Further, encrypt the data with AES.</%text>
385 #beaker.session.encrypt_key = <key_for_encryption>
385 #beaker.session.encrypt_key = <key_for_encryption>
386 #beaker.session.validate_key = <validation_key>
386 #beaker.session.validate_key = <validation_key>
387
387
388 <%text>## Type of storage used for the session, current types are</%text>
388 <%text>## Type of storage used for the session, current types are</%text>
389 <%text>## dbm, file, memcached, database, and memory.</%text>
389 <%text>## dbm, file, memcached, database, and memory.</%text>
390
390
391 <%text>## File system storage of session data. (default)</%text>
391 <%text>## File system storage of session data. (default)</%text>
392 #beaker.session.type = file
392 #beaker.session.type = file
393
393
394 <%text>## Cookie only, store all session data inside the cookie. Requires secure secrets.</%text>
394 <%text>## Cookie only, store all session data inside the cookie. Requires secure secrets.</%text>
395 #beaker.session.type = cookie
395 #beaker.session.type = cookie
396
396
397 <%text>## Database storage of session data.</%text>
397 <%text>## Database storage of session data.</%text>
398 #beaker.session.type = ext:database
398 #beaker.session.type = ext:database
399 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea
399 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea
400 #beaker.session.table_name = db_session
400 #beaker.session.table_name = db_session
401
401
402 %if error_aggregation_service == 'appenlight':
403 <%text>############################</%text>
402 <%text>############################</%text>
404 <%text>## ERROR HANDLING SYSTEMS ##</%text>
403 <%text>## ERROR HANDLING SYSTEMS ##</%text>
405 <%text>############################</%text>
404 <%text>############################</%text>
406
405
407 # Propagate email settings to ErrorReporter of TurboGears2
406 # Propagate email settings to ErrorReporter of TurboGears2
408 # You do not normally need to change these lines
407 # You do not normally need to change these lines
409 get trace_errors.error_email = email_to
408 get trace_errors.error_email = email_to
410 get trace_errors.smtp_server = smtp_server
409 get trace_errors.smtp_server = smtp_server
411 get trace_errors.smtp_port = smtp_port
410 get trace_errors.smtp_port = smtp_port
412 get trace_errors.from_address = error_email_from
411 get trace_errors.from_address = error_email_from
413
412
413 %if error_aggregation_service == 'appenlight':
414 <%text>####################</%text>
414 <%text>####################</%text>
415 <%text>### [appenlight] ###</%text>
415 <%text>### [appenlight] ###</%text>
416 <%text>####################</%text>
416 <%text>####################</%text>
417
417
418 <%text>## AppEnlight is tailored to work with Kallithea, see</%text>
418 <%text>## AppEnlight is tailored to work with Kallithea, see</%text>
419 <%text>## http://appenlight.com for details how to obtain an account</%text>
419 <%text>## http://appenlight.com for details how to obtain an account</%text>
420 <%text>## you must install python package `appenlight_client` to make it work</%text>
420 <%text>## you must install python package `appenlight_client` to make it work</%text>
421
421
422 <%text>## appenlight enabled</%text>
422 <%text>## appenlight enabled</%text>
423 appenlight = false
423 appenlight = false
424
424
425 appenlight.server_url = https://api.appenlight.com
425 appenlight.server_url = https://api.appenlight.com
426 appenlight.api_key = YOUR_API_KEY
426 appenlight.api_key = YOUR_API_KEY
427
427
428 <%text>## TWEAK AMOUNT OF INFO SENT HERE</%text>
428 <%text>## TWEAK AMOUNT OF INFO SENT HERE</%text>
429
429
430 <%text>## enables 404 error logging (default False)</%text>
430 <%text>## enables 404 error logging (default False)</%text>
431 appenlight.report_404 = false
431 appenlight.report_404 = false
432
432
433 <%text>## time in seconds after request is considered being slow (default 1)</%text>
433 <%text>## time in seconds after request is considered being slow (default 1)</%text>
434 appenlight.slow_request_time = 1
434 appenlight.slow_request_time = 1
435
435
436 <%text>## record slow requests in application</%text>
436 <%text>## record slow requests in application</%text>
437 <%text>## (needs to be enabled for slow datastore recording and time tracking)</%text>
437 <%text>## (needs to be enabled for slow datastore recording and time tracking)</%text>
438 appenlight.slow_requests = true
438 appenlight.slow_requests = true
439
439
440 <%text>## enable hooking to application loggers</%text>
440 <%text>## enable hooking to application loggers</%text>
441 #appenlight.logging = true
441 #appenlight.logging = true
442
442
443 <%text>## minimum log level for log capture</%text>
443 <%text>## minimum log level for log capture</%text>
444 #appenlight.logging.level = WARNING
444 #appenlight.logging.level = WARNING
445
445
446 <%text>## send logs only from erroneous/slow requests</%text>
446 <%text>## send logs only from erroneous/slow requests</%text>
447 <%text>## (saves API quota for intensive logging)</%text>
447 <%text>## (saves API quota for intensive logging)</%text>
448 appenlight.logging_on_error = false
448 appenlight.logging_on_error = false
449
449
450 <%text>## list of additional keywords that should be grabbed from environ object</%text>
450 <%text>## list of additional keywords that should be grabbed from environ object</%text>
451 <%text>## can be string with comma separated list of words in lowercase</%text>
451 <%text>## can be string with comma separated list of words in lowercase</%text>
452 <%text>## (by default client will always send following info:</%text>
452 <%text>## (by default client will always send following info:</%text>
453 <%text>## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that</%text>
453 <%text>## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that</%text>
454 <%text>## start with HTTP* this list be extended with additional keywords here</%text>
454 <%text>## start with HTTP* this list be extended with additional keywords here</%text>
455 appenlight.environ_keys_whitelist =
455 appenlight.environ_keys_whitelist =
456
456
457 <%text>## list of keywords that should be blanked from request object</%text>
457 <%text>## list of keywords that should be blanked from request object</%text>
458 <%text>## can be string with comma separated list of words in lowercase</%text>
458 <%text>## can be string with comma separated list of words in lowercase</%text>
459 <%text>## (by default client will always blank keys that contain following words</%text>
459 <%text>## (by default client will always blank keys that contain following words</%text>
460 <%text>## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'</%text>
460 <%text>## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'</%text>
461 <%text>## this list be extended with additional keywords set here</%text>
461 <%text>## this list be extended with additional keywords set here</%text>
462 appenlight.request_keys_blacklist =
462 appenlight.request_keys_blacklist =
463
463
464 <%text>## list of namespaces that should be ignores when gathering log entries</%text>
464 <%text>## list of namespaces that should be ignores when gathering log entries</%text>
465 <%text>## can be string with comma separated list of namespaces</%text>
465 <%text>## can be string with comma separated list of namespaces</%text>
466 <%text>## (by default the client ignores own entries: appenlight_client.client)</%text>
466 <%text>## (by default the client ignores own entries: appenlight_client.client)</%text>
467 appenlight.log_namespace_blacklist =
467 appenlight.log_namespace_blacklist =
468
468
469 %elif error_aggregation_service == 'sentry':
469 %elif error_aggregation_service == 'sentry':
470 <%text>################</%text>
470 <%text>################</%text>
471 <%text>### [sentry] ###</%text>
471 <%text>### [sentry] ###</%text>
472 <%text>################</%text>
472 <%text>################</%text>
473
473
474 <%text>## sentry is a alternative open source error aggregator</%text>
474 <%text>## sentry is a alternative open source error aggregator</%text>
475 <%text>## you must install python packages `sentry` and `raven` to enable</%text>
475 <%text>## you must install python packages `sentry` and `raven` to enable</%text>
476
476
477 sentry.dsn = YOUR_DNS
477 sentry.dsn = YOUR_DNS
478 sentry.servers =
478 sentry.servers =
479 sentry.name =
479 sentry.name =
480 sentry.key =
480 sentry.key =
481 sentry.public_key =
481 sentry.public_key =
482 sentry.secret_key =
482 sentry.secret_key =
483 sentry.project =
483 sentry.project =
484 sentry.site =
484 sentry.site =
485 sentry.include_paths =
485 sentry.include_paths =
486 sentry.exclude_paths =
486 sentry.exclude_paths =
487
487
488 %endif
488 %endif
489 <%text>################################################################################</%text>
489 <%text>################################################################################</%text>
490 <%text>## WARNING: *DEBUG MODE MUST BE OFF IN A PRODUCTION ENVIRONMENT* ##</%text>
490 <%text>## WARNING: *DEBUG MODE MUST BE OFF IN A PRODUCTION ENVIRONMENT* ##</%text>
491 <%text>## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##</%text>
491 <%text>## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##</%text>
492 <%text>## execute malicious code after an exception is raised. ##</%text>
492 <%text>## execute malicious code after an exception is raised. ##</%text>
493 <%text>################################################################################</%text>
493 <%text>################################################################################</%text>
494 debug = false
494 debug = false
495
495
496 <%text>##################################</%text>
496 <%text>##################################</%text>
497 <%text>### LOGVIEW CONFIG ###</%text>
497 <%text>### LOGVIEW CONFIG ###</%text>
498 <%text>##################################</%text>
498 <%text>##################################</%text>
499
499
500 logview.sqlalchemy = #faa
500 logview.sqlalchemy = #faa
501 logview.pylons.templating = #bfb
501 logview.pylons.templating = #bfb
502 logview.pylons.util = #eee
502 logview.pylons.util = #eee
503
503
504 <%text>#########################################################</%text>
504 <%text>#########################################################</%text>
505 <%text>### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###</%text>
505 <%text>### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###</%text>
506 <%text>#########################################################</%text>
506 <%text>#########################################################</%text>
507
507
508 %if database_engine == 'sqlite':
508 %if database_engine == 'sqlite':
509 # SQLITE [default]
509 # SQLITE [default]
510 sqlalchemy.url = sqlite:///%(here)s/kallithea.db?timeout=60
510 sqlalchemy.url = sqlite:///%(here)s/kallithea.db?timeout=60
511
511
512 %elif database_engine == 'postgres':
512 %elif database_engine == 'postgres':
513 # POSTGRESQL
513 # POSTGRESQL
514 sqlalchemy.url = postgresql://user:pass@localhost/kallithea
514 sqlalchemy.url = postgresql://user:pass@localhost/kallithea
515
515
516 %elif database_engine == 'mysql':
516 %elif database_engine == 'mysql':
517 # MySQL
517 # MySQL
518 sqlalchemy.url = mysql://user:pass@localhost/kallithea?charset=utf8
518 sqlalchemy.url = mysql://user:pass@localhost/kallithea?charset=utf8
519
519
520 %endif
520 %endif
521 # see sqlalchemy docs for others
521 # see sqlalchemy docs for others
522
522
523 sqlalchemy.pool_recycle = 3600
523 sqlalchemy.pool_recycle = 3600
524
524
525 <%text>################################</%text>
525 <%text>################################</%text>
526 <%text>### ALEMBIC CONFIGURATION ####</%text>
526 <%text>### ALEMBIC CONFIGURATION ####</%text>
527 <%text>################################</%text>
527 <%text>################################</%text>
528
528
529 [alembic]
529 [alembic]
530 script_location = kallithea:alembic
530 script_location = kallithea:alembic
531
531
532 <%text>################################</%text>
532 <%text>################################</%text>
533 <%text>### LOGGING CONFIGURATION ####</%text>
533 <%text>### LOGGING CONFIGURATION ####</%text>
534 <%text>################################</%text>
534 <%text>################################</%text>
535
535
536 [loggers]
536 [loggers]
537 keys = root, routes, kallithea, sqlalchemy, tg, gearbox, beaker, templates, whoosh_indexer, werkzeug, backlash
537 keys = root, routes, kallithea, sqlalchemy, tg, gearbox, beaker, templates, whoosh_indexer, werkzeug, backlash
538
538
539 [handlers]
539 [handlers]
540 keys = console, console_sql
540 keys = console, console_sql
541
541
542 [formatters]
542 [formatters]
543 keys = generic, color_formatter, color_formatter_sql
543 keys = generic, color_formatter, color_formatter_sql
544
544
545 <%text>#############</%text>
545 <%text>#############</%text>
546 <%text>## LOGGERS ##</%text>
546 <%text>## LOGGERS ##</%text>
547 <%text>#############</%text>
547 <%text>#############</%text>
548
548
549 [logger_root]
549 [logger_root]
550 level = NOTSET
550 level = NOTSET
551 handlers = console
551 handlers = console
552
552
553 [logger_routes]
553 [logger_routes]
554 level = WARN
554 level = WARN
555 handlers =
555 handlers =
556 qualname = routes.middleware
556 qualname = routes.middleware
557 <%text>## "level = DEBUG" logs the route matched and routing variables.</%text>
557 <%text>## "level = DEBUG" logs the route matched and routing variables.</%text>
558 propagate = 1
558 propagate = 1
559
559
560 [logger_beaker]
560 [logger_beaker]
561 level = WARN
561 level = WARN
562 handlers =
562 handlers =
563 qualname = beaker.container
563 qualname = beaker.container
564 propagate = 1
564 propagate = 1
565
565
566 [logger_templates]
566 [logger_templates]
567 level = WARN
567 level = WARN
568 handlers =
568 handlers =
569 qualname = pylons.templating
569 qualname = pylons.templating
570 propagate = 1
570 propagate = 1
571
571
572 [logger_kallithea]
572 [logger_kallithea]
573 level = WARN
573 level = WARN
574 handlers =
574 handlers =
575 qualname = kallithea
575 qualname = kallithea
576 propagate = 1
576 propagate = 1
577
577
578 [logger_tg]
578 [logger_tg]
579 level = WARN
579 level = WARN
580 handlers =
580 handlers =
581 qualname = tg
581 qualname = tg
582 propagate = 1
582 propagate = 1
583
583
584 [logger_gearbox]
584 [logger_gearbox]
585 level = WARN
585 level = WARN
586 handlers =
586 handlers =
587 qualname = gearbox
587 qualname = gearbox
588 propagate = 1
588 propagate = 1
589
589
590 [logger_sqlalchemy]
590 [logger_sqlalchemy]
591 level = WARN
591 level = WARN
592 handlers = console_sql
592 handlers = console_sql
593 qualname = sqlalchemy.engine
593 qualname = sqlalchemy.engine
594 propagate = 0
594 propagate = 0
595
595
596 [logger_whoosh_indexer]
596 [logger_whoosh_indexer]
597 level = WARN
597 level = WARN
598 handlers =
598 handlers =
599 qualname = whoosh_indexer
599 qualname = whoosh_indexer
600 propagate = 1
600 propagate = 1
601
601
602 [logger_werkzeug]
602 [logger_werkzeug]
603 level = WARN
603 level = WARN
604 handlers =
604 handlers =
605 qualname = werkzeug
605 qualname = werkzeug
606 propagate = 1
606 propagate = 1
607
607
608 [logger_backlash]
608 [logger_backlash]
609 level = WARN
609 level = WARN
610 handlers =
610 handlers =
611 qualname = backlash
611 qualname = backlash
612 propagate = 1
612 propagate = 1
613
613
614 <%text>##############</%text>
614 <%text>##############</%text>
615 <%text>## HANDLERS ##</%text>
615 <%text>## HANDLERS ##</%text>
616 <%text>##############</%text>
616 <%text>##############</%text>
617
617
618 [handler_console]
618 [handler_console]
619 class = StreamHandler
619 class = StreamHandler
620 args = (sys.stderr,)
620 args = (sys.stderr,)
621 formatter = generic
621 formatter = generic
622
622
623 [handler_console_sql]
623 [handler_console_sql]
624 class = StreamHandler
624 class = StreamHandler
625 args = (sys.stderr,)
625 args = (sys.stderr,)
626 formatter = generic
626 formatter = generic
627
627
628 <%text>################</%text>
628 <%text>################</%text>
629 <%text>## FORMATTERS ##</%text>
629 <%text>## FORMATTERS ##</%text>
630 <%text>################</%text>
630 <%text>################</%text>
631
631
632 [formatter_generic]
632 [formatter_generic]
633 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
633 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
634 datefmt = %Y-%m-%d %H:%M:%S
634 datefmt = %Y-%m-%d %H:%M:%S
635
635
636 [formatter_color_formatter]
636 [formatter_color_formatter]
637 class = kallithea.lib.colored_formatter.ColorFormatter
637 class = kallithea.lib.colored_formatter.ColorFormatter
638 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
638 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
639 datefmt = %Y-%m-%d %H:%M:%S
639 datefmt = %Y-%m-%d %H:%M:%S
640
640
641 [formatter_color_formatter_sql]
641 [formatter_color_formatter_sql]
642 class = kallithea.lib.colored_formatter.ColorFormatterSql
642 class = kallithea.lib.colored_formatter.ColorFormatterSql
643 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
643 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
644 datefmt = %Y-%m-%d %H:%M:%S
644 datefmt = %Y-%m-%d %H:%M:%S
General Comments 0
You need to be logged in to leave comments. Login now