##// END OF EJS Templates
Rename some strings in init files and logger names
Bradley M. Kuhn -
r4207:58e390e0 kallithea-2.2.5-r...
parent child Browse files
Show More
@@ -1,588 +1,588 b''
1 1 ################################################################################
2 2 ################################################################################
3 3 # RhodeCode - Pylons environment configuration #
4 4 # #
5 5 # The %(here)s variable will be replaced with the parent directory of this file#
6 6 ################################################################################
7 7
8 8 [DEFAULT]
9 9 debug = true
10 10 pdebug = false
11 11 ################################################################################
12 12 ## Uncomment and replace with the address which should receive ##
13 13 ## any error reports after application crash ##
14 14 ## Additionally those settings will be used by RhodeCode mailing system ##
15 15 ################################################################################
16 16 #email_to = admin@localhost
17 17 #error_email_from = paste_error@localhost
18 18 #app_email_from = rhodecode-noreply@localhost
19 19 #error_message =
20 20 #email_prefix = [RhodeCode]
21 21
22 22 #smtp_server = mail.server.com
23 23 #smtp_username =
24 24 #smtp_password =
25 25 #smtp_port =
26 26 #smtp_use_tls = false
27 27 #smtp_use_ssl = true
28 28 ## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
29 29 #smtp_auth =
30 30
31 31 [server:main]
32 32 ## PASTE ##
33 33 #use = egg:Paste#http
34 34 ## nr of worker threads to spawn
35 35 #threadpool_workers = 5
36 36 ## max request before thread respawn
37 37 #threadpool_max_requests = 10
38 38 ## option to use threads of process
39 39 #use_threadpool = true
40 40
41 41 ## WAITRESS ##
42 42 use = egg:waitress#main
43 43 ## number of worker threads
44 44 threads = 5
45 45 ## MAX BODY SIZE 100GB
46 46 max_request_body_size = 107374182400
47 47 ## use poll instead of select, fixes fd limits, may not work on old
48 48 ## windows systems.
49 49 #asyncore_use_poll = True
50 50
51 51 ## GUNICORN ##
52 52 #use = egg:gunicorn#main
53 53 ## number of process workers. You must set `instance_id = *` when this option
54 54 ## is set to more than one worker
55 55 #workers = 1
56 56 ## process name
57 57 #proc_name = rhodecode
58 58 ## type of worker class, one of sync, eventlet, gevent, tornado
59 59 ## recommended for bigger setup is using of of other than sync one
60 60 #worker_class = sync
61 61 #max_requests = 5
62 62 ## ammount of time a worker can handle request before it gets killed and
63 63 ## restarted
64 64 #timeout = 3600
65 65
66 66 ## UWSGI ##
67 67 ## run with uwsgi --ini-paste-logged <inifile.ini>
68 68 #[uwsgi]
69 69 #socket = /tmp/uwsgi.sock
70 70 #master = true
71 71 #http = 0.0.0.0:5000
72 72
73 73 ## set as deamon and redirect all output to file
74 74 #daemonize = ./uwsgi_rhodecode.log
75 75
76 76 ## master process PID
77 77 #pidfile = ./uwsgi_rhodecode.pid
78 78
79 79 ## stats server with workers statistics, use uwsgitop
80 80 ## for monitoring, `uwsgitop 127.0.0.1:1717`
81 81 #stats = 127.0.0.1:1717
82 82 #memory-report = true
83 83
84 84 ## log 5XX errors
85 85 #log-5xx = true
86 86
87 87 ## Set the socket listen queue size.
88 88 #listen = 256
89 89
90 90 ## Gracefully Reload workers after the specified amount of managed requests
91 91 ## (avoid memory leaks).
92 92 #max-requests = 1000
93 93
94 94 ## enable large buffers
95 95 #buffer-size=65535
96 96
97 97 ## socket and http timeouts ##
98 98 #http-timeout=3600
99 99 #socket-timeout=3600
100 100
101 101 ## Log requests slower than the specified number of milliseconds.
102 102 #log-slow = 10
103 103
104 104 ## Exit if no app can be loaded.
105 105 #need-app = true
106 106
107 107 ## Set lazy mode (load apps in workers instead of master).
108 108 #lazy = true
109 109
110 110 ## scaling ##
111 111 ## set cheaper algorithm to use, if not set default will be used
112 112 #cheaper-algo = spare
113 113
114 114 ## minimum number of workers to keep at all times
115 115 #cheaper = 1
116 116
117 117 ## number of workers to spawn at startup
118 118 #cheaper-initial = 1
119 119
120 120 ## maximum number of workers that can be spawned
121 121 #workers = 4
122 122
123 123 ## how many workers should be spawned at a time
124 124 #cheaper-step = 1
125 125
126 126 ## COMMON ##
127 127 host = 0.0.0.0
128 128 port = 5000
129 129
130 130 ## prefix middleware for rc
131 131 #[filter:proxy-prefix]
132 132 #use = egg:PasteDeploy#prefix
133 133 #prefix = /<your-prefix>
134 134
135 135 [app:main]
136 136 use = egg:kallithea
137 137 ## enable proxy prefix middleware
138 138 #filter-with = proxy-prefix
139 139
140 140 full_stack = true
141 141 static_files = true
142 142 ## Optional Languages
143 143 ## en, fr, ja, pt_BR, zh_CN, zh_TW, pl
144 144 lang = en
145 145 cache_dir = %(here)s/data
146 146 index_dir = %(here)s/data/index
147 147
148 148 ## perform a full repository scan on each server start, this should be
149 149 ## set to false after first startup, to allow faster server restarts.
150 150 initial_repo_scan = true
151 151
152 152 ## uncomment and set this path to use archive download cache
153 153 #archive_cache_dir = /tmp/tarballcache
154 154
155 155 ## change this to unique ID for security
156 156 app_instance_uuid = rc-production
157 157
158 158 ## cut off limit for large diffs (size in bytes)
159 159 cut_off_limit = 256000
160 160
161 161 ## use cache version of scm repo everywhere
162 162 vcs_full_cache = true
163 163
164 164 ## force https in RhodeCode, fixes https redirects, assumes it's always https
165 165 force_https = false
166 166
167 167 ## use Strict-Transport-Security headers
168 168 use_htsts = false
169 169
170 170 ## number of commits stats will parse on each iteration
171 171 commit_parse_limit = 25
172 172
173 173 ## use gravatar service to display avatars
174 174 use_gravatar = true
175 175
176 176 ## path to git executable
177 177 git_path = git
178 178
179 179 ## git rev filter option, --all is the default filter, if you need to
180 180 ## hide all refs in changelog switch this to --branches --tags
181 181 git_rev_filter=--all
182 182
183 183 ## RSS feed options
184 184 rss_cut_off_limit = 256000
185 185 rss_items_per_page = 10
186 186 rss_include_diff = false
187 187
188 188 ## options for showing and identifying changesets
189 189 show_sha_length = 12
190 190 show_revision_number = true
191 191
192 192 ## gist URL alias, used to create nicer urls for gist. This should be an
193 193 ## url that does rewrites to _admin/gists/<gistid>.
194 194 ## example: http://gist.kallithea.server/{gistid}. Empty means use the internal
195 195 ## RhodeCode url, ie. http[s]://your.kallithea.server/_admin/gists/<gistid>
196 196 gist_alias_url =
197 197
198 198 ## white list of API enabled controllers. This allows to add list of
199 199 ## controllers to which access will be enabled by api_key. eg: to enable
200 200 ## api access to raw_files put `FilesController:raw`, to enable access to patches
201 201 ## add `ChangesetController:changeset_patch`. This list should be "," separated
202 202 ## Syntax is <ControllerClass>:<function>. Check debug logs for generated names
203 203 ## Recommended settings bellow are commented out:
204 204 api_access_controllers_whitelist =
205 205 # ChangesetController:changeset_patch,
206 206 # ChangesetController:changeset_raw,
207 207 # FilesController:raw,
208 208 # FilesController:archivefile
209 209
210 210 ## alternative_gravatar_url allows you to use your own avatar server application
211 211 ## the following parts of the URL will be replaced
212 212 ## {email} user email
213 213 ## {md5email} md5 hash of the user email (like at gravatar.com)
214 214 ## {size} size of the image that is expected from the server application
215 215 ## {scheme} http/https from RhodeCode server
216 216 ## {netloc} network location from RhodeCode server
217 217 #alternative_gravatar_url = http://myavatarserver.com/getbyemail/{email}/{size}
218 218 #alternative_gravatar_url = http://myavatarserver.com/getbymd5/{md5email}?s={size}
219 219
220 220
221 221 ## container auth options
222 222 container_auth_enabled = false
223 223 proxypass_auth_enabled = false
224 224
225 225 ## default encoding used to convert from and to unicode
226 226 ## can be also a comma seperated list of encoding in case of mixed encodings
227 227 default_encoding = utf8
228 228
229 229 ## overwrite schema of clone url
230 230 ## available vars:
231 231 ## scheme - http/https
232 232 ## user - current user
233 233 ## pass - password
234 234 ## netloc - network location
235 235 ## path - usually repo_name
236 236
237 237 #clone_uri = {scheme}://{user}{pass}{netloc}{path}
238 238
239 239 ## issue tracker for RhodeCode (leave blank to disable, absent for default)
240 240 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
241 241
242 242 ## issue tracking mapping for commits messages
243 243 ## comment out issue_pat, issue_server, issue_prefix to enable
244 244
245 245 ## pattern to get the issues from commit messages
246 246 ## default one used here is #<numbers> with a regex passive group for `#`
247 247 ## {id} will be all groups matched from this pattern
248 248
249 249 issue_pat = (?:\s*#)(\d+)
250 250
251 251 ## server url to the issue, each {id} will be replaced with match
252 252 ## fetched from the regex and {repo} is replaced with full repository name
253 253 ## including groups {repo_name} is replaced with just name of repo
254 254
255 255 issue_server_link = https://myissueserver.com/{repo}/issue/{id}
256 256
257 257 ## prefix to add to link to indicate it's an url
258 258 ## #314 will be replaced by <issue_prefix><id>
259 259
260 260 issue_prefix = #
261 261
262 262 ## issue_pat, issue_server_link, issue_prefix can have suffixes to specify
263 263 ## multiple patterns, to other issues server, wiki or others
264 264 ## below an example how to create a wiki pattern
265 265 # #wiki-some-id -> https://mywiki.com/some-id
266 266
267 267 #issue_pat_wiki = (?:wiki-)(.+)
268 268 #issue_server_link_wiki = https://mywiki.com/{id}
269 269 #issue_prefix_wiki = WIKI-
270 270
271 271
272 272 ## instance-id prefix
273 273 ## a prefix key for this instance used for cache invalidation when running
274 274 ## multiple instances of rhodecode, make sure it's globally unique for
275 275 ## all running rhodecode instances. Leave empty if you don't use it
276 276 instance_id =
277 277
278 278 ## alternative return HTTP header for failed authentication. Default HTTP
279 279 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
280 280 ## handling that. Set this variable to 403 to return HTTPForbidden
281 281 auth_ret_code =
282 282
283 283 ## locking return code. When repository is locked return this HTTP code. 2XX
284 284 ## codes don't break the transactions while 4XX codes do
285 285 lock_ret_code = 423
286 286
287 287 ## allows to change the repository location in settings page
288 288 allow_repo_location_change = True
289 289
290 290 ## allows to setup custom hooks in settings page
291 291 allow_custom_hooks_settings = True
292 292
293 293
294 294 ####################################
295 295 ### CELERY CONFIG ####
296 296 ####################################
297 297 use_celery = false
298 298 broker.host = localhost
299 299 broker.vhost = rabbitmqhost
300 300 broker.port = 5672
301 301 broker.user = rabbitmq
302 302 broker.password = qweqwe
303 303
304 304 celery.imports = kallithea.lib.celerylib.tasks
305 305
306 306 celery.result.backend = amqp
307 307 celery.result.dburi = amqp://
308 308 celery.result.serialier = json
309 309
310 310 #celery.send.task.error.emails = true
311 311 #celery.amqp.task.result.expires = 18000
312 312
313 313 celeryd.concurrency = 2
314 314 #celeryd.log.file = celeryd.log
315 315 celeryd.log.level = debug
316 316 celeryd.max.tasks.per.child = 1
317 317
318 318 ## tasks will never be sent to the queue, but executed locally instead.
319 319 celery.always.eager = false
320 320
321 321 ####################################
322 322 ### BEAKER CACHE ####
323 323 ####################################
324 324 beaker.cache.data_dir=%(here)s/data/cache/data
325 325 beaker.cache.lock_dir=%(here)s/data/cache/lock
326 326
327 327 beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long
328 328
329 329 beaker.cache.super_short_term.type=memory
330 330 beaker.cache.super_short_term.expire=10
331 331 beaker.cache.super_short_term.key_length = 256
332 332
333 333 beaker.cache.short_term.type=memory
334 334 beaker.cache.short_term.expire=60
335 335 beaker.cache.short_term.key_length = 256
336 336
337 337 beaker.cache.long_term.type=memory
338 338 beaker.cache.long_term.expire=36000
339 339 beaker.cache.long_term.key_length = 256
340 340
341 341 beaker.cache.sql_cache_short.type=memory
342 342 beaker.cache.sql_cache_short.expire=10
343 343 beaker.cache.sql_cache_short.key_length = 256
344 344
345 345 beaker.cache.sql_cache_med.type=memory
346 346 beaker.cache.sql_cache_med.expire=360
347 347 beaker.cache.sql_cache_med.key_length = 256
348 348
349 349 beaker.cache.sql_cache_long.type=file
350 350 beaker.cache.sql_cache_long.expire=3600
351 351 beaker.cache.sql_cache_long.key_length = 256
352 352
353 353 ####################################
354 354 ### BEAKER SESSION ####
355 355 ####################################
356 356 ## Type of storage used for the session, current types are
357 357 ## dbm, file, memcached, database, and memory.
358 358 ## The storage uses the Container API
359 359 ## that is also used by the cache system.
360 360
361 361 ## db session ##
362 362 #beaker.session.type = ext:database
363 363 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/rhodecode
364 364 #beaker.session.table_name = db_session
365 365
366 366 ## encrypted cookie client side session, good for many instances ##
367 367 #beaker.session.type = cookie
368 368
369 369 ## file based cookies (default) ##
370 370 #beaker.session.type = file
371 371
372 372 beaker.session.key = rhodecode
373 373 beaker.session.secret = develop-rc-uytcxaz
374 374
375 375 ## Secure encrypted cookie. Requires AES and AES python libraries
376 376 ## you must disable beaker.session.secret to use this
377 377 #beaker.session.encrypt_key = <key_for_encryption>
378 378 #beaker.session.validate_key = <validation_key>
379 379
380 380 ## sets session as invalid if it haven't been accessed for given amount of time
381 381 beaker.session.timeout = 2592000
382 382 beaker.session.httponly = true
383 383 #beaker.session.cookie_path = /<your-prefix>
384 384
385 385 ## uncomment for https secure cookie
386 386 beaker.session.secure = false
387 387
388 388 ## auto save the session to not to use .save()
389 389 beaker.session.auto = False
390 390
391 391 ## default cookie expiration time in seconds `true` expire at browser close ##
392 392 #beaker.session.cookie_expires = 3600
393 393
394 394
395 395 ############################
396 396 ## ERROR HANDLING SYSTEMS ##
397 397 ############################
398 398
399 399 ####################
400 400 ### [errormator] ###
401 401 ####################
402 402
403 403 ## Errormator is tailored to work with RhodeCode, see
404 404 ## http://errormator.com for details how to obtain an account
405 405 ## you must install python package `errormator_client` to make it work
406 406
407 407 ## errormator enabled
408 408 errormator = false
409 409
410 410 errormator.server_url = https://api.errormator.com
411 411 errormator.api_key = YOUR_API_KEY
412 412
413 413 ## TWEAK AMOUNT OF INFO SENT HERE
414 414
415 415 ## enables 404 error logging (default False)
416 416 errormator.report_404 = false
417 417
418 418 ## time in seconds after request is considered being slow (default 1)
419 419 errormator.slow_request_time = 1
420 420
421 421 ## record slow requests in application
422 422 ## (needs to be enabled for slow datastore recording and time tracking)
423 423 errormator.slow_requests = true
424 424
425 425 ## enable hooking to application loggers
426 426 # errormator.logging = true
427 427
428 428 ## minimum log level for log capture
429 429 # errormator.logging.level = WARNING
430 430
431 431 ## send logs only from erroneous/slow requests
432 432 ## (saves API quota for intensive logging)
433 433 errormator.logging_on_error = false
434 434
435 435 ## list of additonal keywords that should be grabbed from environ object
436 436 ## can be string with comma separated list of words in lowercase
437 437 ## (by default client will always send following info:
438 438 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
439 439 ## start with HTTP* this list be extended with additional keywords here
440 440 errormator.environ_keys_whitelist =
441 441
442 442
443 443 ## list of keywords that should be blanked from request object
444 444 ## can be string with comma separated list of words in lowercase
445 445 ## (by default client will always blank keys that contain following words
446 446 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
447 447 ## this list be extended with additional keywords set here
448 448 errormator.request_keys_blacklist =
449 449
450 450
451 451 ## list of namespaces that should be ignores when gathering log entries
452 452 ## can be string with comma separated list of namespaces
453 453 ## (by default the client ignores own entries: errormator_client.client)
454 454 errormator.log_namespace_blacklist =
455 455
456 456
457 457 ################
458 458 ### [sentry] ###
459 459 ################
460 460
461 461 ## sentry is a alternative open source error aggregator
462 462 ## you must install python packages `sentry` and `raven` to enable
463 463
464 464 sentry.dsn = YOUR_DNS
465 465 sentry.servers =
466 466 sentry.name =
467 467 sentry.key =
468 468 sentry.public_key =
469 469 sentry.secret_key =
470 470 sentry.project =
471 471 sentry.site =
472 472 sentry.include_paths =
473 473 sentry.exclude_paths =
474 474
475 475
476 476 ################################################################################
477 477 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
478 478 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
479 479 ## execute malicious code after an exception is raised. ##
480 480 ################################################################################
481 481 #set debug = false
482 482
483 483 ##################################
484 484 ### LOGVIEW CONFIG ###
485 485 ##################################
486 486 logview.sqlalchemy = #faa
487 487 logview.pylons.templating = #bfb
488 488 logview.pylons.util = #eee
489 489
490 490 #########################################################
491 491 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
492 492 #########################################################
493 493 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
494 494 sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
495 495 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode
496 496 sqlalchemy.db1.echo = false
497 497 sqlalchemy.db1.pool_recycle = 3600
498 498 sqlalchemy.db1.convert_unicode = true
499 499
500 500 ################################
501 501 ### LOGGING CONFIGURATION ####
502 502 ################################
503 503 [loggers]
504 keys = root, routes, rhodecode, sqlalchemy, beaker, templates, whoosh_indexer
504 keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer
505 505
506 506 [handlers]
507 507 keys = console, console_sql
508 508
509 509 [formatters]
510 510 keys = generic, color_formatter, color_formatter_sql
511 511
512 512 #############
513 513 ## LOGGERS ##
514 514 #############
515 515 [logger_root]
516 516 level = NOTSET
517 517 handlers = console
518 518
519 519 [logger_routes]
520 520 level = DEBUG
521 521 handlers =
522 522 qualname = routes.middleware
523 523 ## "level = DEBUG" logs the route matched and routing variables.
524 524 propagate = 1
525 525
526 526 [logger_beaker]
527 527 level = DEBUG
528 528 handlers =
529 529 qualname = beaker.container
530 530 propagate = 1
531 531
532 532 [logger_templates]
533 533 level = INFO
534 534 handlers =
535 535 qualname = pylons.templating
536 536 propagate = 1
537 537
538 [logger_rhodecode]
538 [logger_kallithea]
539 539 level = DEBUG
540 540 handlers =
541 qualname = rhodecode
541 qualname = kallithea
542 542 propagate = 1
543 543
544 544 [logger_sqlalchemy]
545 545 level = INFO
546 546 handlers = console_sql
547 547 qualname = sqlalchemy.engine
548 548 propagate = 0
549 549
550 550 [logger_whoosh_indexer]
551 551 level = DEBUG
552 552 handlers =
553 553 qualname = whoosh_indexer
554 554 propagate = 1
555 555
556 556 ##############
557 557 ## HANDLERS ##
558 558 ##############
559 559
560 560 [handler_console]
561 561 class = StreamHandler
562 562 args = (sys.stderr,)
563 563 level = DEBUG
564 564 formatter = color_formatter
565 565
566 566 [handler_console_sql]
567 567 class = StreamHandler
568 568 args = (sys.stderr,)
569 569 level = DEBUG
570 570 formatter = color_formatter_sql
571 571
572 572 ################
573 573 ## FORMATTERS ##
574 574 ################
575 575
576 576 [formatter_generic]
577 577 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
578 578 datefmt = %Y-%m-%d %H:%M:%S
579 579
580 580 [formatter_color_formatter]
581 581 class=kallithea.lib.colored_formatter.ColorFormatter
582 582 format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
583 583 datefmt = %Y-%m-%d %H:%M:%S
584 584
585 585 [formatter_color_formatter_sql]
586 586 class=kallithea.lib.colored_formatter.ColorFormatterSql
587 587 format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
588 588 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,609 +1,609 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%text>
3 3 ################################################################################
4 4 ################################################################################
5 5 # RhodeCode - Example config #
6 6 # Built-in functions and variables #
7 7 # The ${here} variable will be replaced with the parent directory of this file #
8 8 # ${uuid()} function will generate a unique hash #
9 9 ################################################################################
10 10 </%text>
11 11 [DEFAULT]
12 12 debug = true
13 13 pdebug = false
14 14 <%text>
15 15 ################################################################################
16 16 ## Uncomment and replace with the address which should receive ##
17 17 ## any error reports after application crash ##
18 18 ## Additionally those settings will be used by RhodeCode mailing system ##
19 19 ################################################################################
20 20 </%text>
21 21 #email_to = admin@localhost
22 22 #error_email_from = paste_error@localhost
23 23 #app_email_from = rhodecode-noreply@localhost
24 24 #error_message =
25 25 #email_prefix = [RhodeCode]
26 26
27 27 #smtp_server = mail.server.com
28 28 #smtp_username =
29 29 #smtp_password =
30 30 #smtp_port =
31 31 #smtp_use_tls = false
32 32 #smtp_use_ssl = true
33 33 <%text>## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)</%text>
34 34 #smtp_auth =
35 35
36 36 [server:main]
37 37 %if http_server == 'paste':
38 38 <%text>## PASTE ##</%text>
39 39 use = egg:Paste#http
40 40 <%text>## nr of worker threads to spawn</%text>
41 41 threadpool_workers = 5
42 42 <%text>## max request before thread respawn</%text>
43 43 threadpool_max_requests = 10
44 44 <%text>## option to use threads of process</%text>
45 45 use_threadpool = true
46 46 %endif
47 47 %if http_server == 'waitress':
48 48 <%text>## WAITRESS ##</%text>
49 49 use = egg:waitress#main
50 50 <%text>## number of worker threads</%text>
51 51 threads = 5
52 52 <%text>## MAX BODY SIZE 100GB</%text>
53 53 max_request_body_size = 107374182400
54 54 <%text>## use poll instead of select, fixes fd limits, may not work on old</%text>
55 55 <%text>## windows systems.</%text>
56 56 #asyncore_use_poll = True
57 57 %endif
58 58 %if http_server == 'gunicorn':
59 59 <%text>## GUNICORN ##</%text>
60 60 use = egg:gunicorn#main
61 61 <%text>## number of process workers. You must set `instance_id = *` when this option</%text>
62 62 <%text>## is set to more than one worker</%text>
63 63 workers = 1
64 64 <%text>## process name</%text>
65 65 proc_name = rhodecode
66 66 <%text>## type of worker class, one of sync, eventlet, gevent, tornado</%text>
67 67 <%text>## recommended for bigger setup is using of of other than sync one</%text>
68 68 worker_class = sync
69 69 max_requests = 1000
70 70 <%text>## ammount of time a worker can handle request before it gets killed and</%text>
71 71 <%text>## restarted</%text>
72 72 timeout = 3600
73 73 %endif
74 74 %if http_server == 'uwsgi':
75 75 <%text>## UWSGI ##</%text>
76 76 <%text>## run with uwsgi --ini-paste-logged <inifile.ini></%text>
77 77 [uwsgi]
78 78 socket = /tmp/uwsgi.sock
79 79 master = true
80 80 http = 0.0.0.0:5000
81 81
82 82 <%text>## set as deamon and redirect all output to file</%text>
83 83 #daemonize = ./uwsgi_rhodecode.log
84 84
85 85 <%text>## master process PID</%text>
86 86 pidfile = ./uwsgi_rhodecode.pid
87 87
88 88 <%text>## stats server with workers statistics, use uwsgitop</%text>
89 89 <%text>## for monitoring</%text>
90 90 stats = 127.0.0.1:1717
91 91 memory-report = true
92 92
93 93 <%text>## log 5XX errors</%text>
94 94 log-5xx = true
95 95
96 96 <%text>## Set the socket listen queue size.</%text>
97 97 listen = 256
98 98
99 99 <%text>## Gracefully Reload workers after the specified amount of managed requests</%text>
100 100 <%text>## (avoid memory leaks).</%text>
101 101 max-requests = 1000
102 102
103 103 <%text>## enable large buffers</%text>
104 104 buffer-size=65535
105 105
106 106 <%text>## socket and http timeouts ##</%text>
107 107 http-timeout=3600
108 108 socket-timeout=3600
109 109
110 110 <%text>## Log requests slower than the specified number of milliseconds.</%text>
111 111 log-slow = 10
112 112
113 113 <%text>## Exit if no app can be loaded.</%text>
114 114 need-app = true
115 115
116 116 <%text>## Set lazy mode (load apps in workers instead of master).</%text>
117 117 lazy = true
118 118
119 119 <%text>## scaling ##</%text>
120 120 <%text>## set cheaper algorithm to use, if not set default will be used</%text>
121 121 cheaper-algo = spare
122 122
123 123 <%text>## minimum number of workers to keep at all times</%text>
124 124 cheaper = 1
125 125
126 126 <%text>## number of workers to spawn at startup</%text>
127 127 cheaper-initial = 1
128 128
129 129 <%text>## maximum number of workers that can be spawned</%text>
130 130 workers = 4
131 131
132 132 <%text>## how many workers should be spawned at a time</%text>
133 133 cheaper-step = 1
134 134 %endif
135 135 <%text>## COMMON ##</%text>
136 136 host = ${host}
137 137 port = ${port}
138 138
139 139 <%text>## prefix middleware for rc</%text>
140 140 #[filter:proxy-prefix]
141 141 #use = egg:PasteDeploy#prefix
142 142 #prefix = /<your-prefix>
143 143
144 144 [app:main]
145 145 use = egg:kallithea
146 146 <%text>## enable proxy prefix middleware</%text>
147 147 #filter-with = proxy-prefix
148 148
149 149 full_stack = true
150 150 static_files = true
151 151 <%text>## Optional Languages</%text>
152 152 <%text>## en, fr, ja, pt_BR, zh_CN, zh_TW, pl, ru</%text>
153 153 lang = ${lang}
154 154 cache_dir = ${here}/data
155 155 index_dir = ${here}/data/index
156 156
157 157 <%text>## perform a full repository scan on each server start, this should be</%text>
158 158 <%text>## set to false after first startup, to allow faster server restarts.</%text>
159 159 initial_repo_scan = false
160 160
161 161 <%text>## uncomment and set this path to use archive download cache</%text>
162 162 archive_cache_dir = ${here}/tarballcache
163 163
164 164 <%text>## change this to unique ID for security</%text>
165 165 app_instance_uuid = ${uuid()}
166 166
167 167 <%text>## cut off limit for large diffs (size in bytes)</%text>
168 168 cut_off_limit = 256000
169 169
170 170 <%text>## use cache version of scm repo everywhere</%text>
171 171 vcs_full_cache = true
172 172
173 173 <%text>## force https in RhodeCode, fixes https redirects, assumes it's always https</%text>
174 174 force_https = false
175 175
176 176 <%text>## use Strict-Transport-Security headers</%text>
177 177 use_htsts = false
178 178
179 179 <%text>## number of commits stats will parse on each iteration</%text>
180 180 commit_parse_limit = 25
181 181
182 182 <%text>## use gravatar service to display avatars</%text>
183 183 use_gravatar = true
184 184
185 185 <%text>## path to git executable</%text>
186 186 git_path = git
187 187
188 188 <%text>## git rev filter option, --all is the default filter, if you need to</%text>
189 189 <%text>## hide all refs in changelog switch this to --branches --tags</%text>
190 190 git_rev_filter=--branches --tags
191 191
192 192 <%text>## RSS feed options</%text>
193 193 rss_cut_off_limit = 256000
194 194 rss_items_per_page = 10
195 195 rss_include_diff = false
196 196
197 197 <%text>## options for showing and identifying changesets</%text>
198 198 show_sha_length = 12
199 199 show_revision_number = true
200 200
201 201 <%text>## gist URL alias, used to create nicer urls for gist. This should be an</%text>
202 202 <%text>## url that does rewrites to _admin/gists/<gistid>.</%text>
203 203 <%text>## example: http://gist.kallithea.server/{gistid}. Empty means use the internal</%text>
204 204 <%text>## RhodeCode url, ie. http[s]://your.kallithea.server/_admin/gists/<gistid></%text>
205 205 gist_alias_url =
206 206
207 207 <%text>## white list of API enabled controllers. This allows to add list of</%text>
208 208 <%text>## controllers to which access will be enabled by api_key. eg: to enable</%text>
209 209 <%text>## api access to raw_files put `FilesController:raw`, to enable access to patches</%text>
210 210 <%text>## add `ChangesetController:changeset_patch`. This list should be "," separated</%text>
211 211 <%text>## Syntax is <ControllerClass>:<function>. Check debug logs for generated names</%text>
212 212 api_access_controllers_whitelist =
213 213
214 214 <%text>## alternative_gravatar_url allows you to use your own avatar server application</%text>
215 215 <%text>## the following parts of the URL will be replaced</%text>
216 216 <%text>## {email} user email</%text>
217 217 <%text>## {md5email} md5 hash of the user email (like at gravatar.com)</%text>
218 218 <%text>## {size} size of the image that is expected from the server application</%text>
219 219 <%text>## {scheme} http/https from RhodeCode server</%text>
220 220 <%text>## {netloc} network location from RhodeCode server</%text>
221 221 #alternative_gravatar_url = http://myavatarserver.com/getbyemail/{email}/{size}
222 222 #alternative_gravatar_url = http://myavatarserver.com/getbymd5/{md5email}?s={size}
223 223
224 224
225 225 <%text>## container auth options</%text>
226 226 container_auth_enabled = false
227 227 proxypass_auth_enabled = false
228 228
229 229 <%text>## default encoding used to convert from and to unicode</%text>
230 230 <%text>## can be also a comma seperated list of encoding in case of mixed encodings</%text>
231 231 default_encoding = utf8
232 232
233 233 <%text>## overwrite schema of clone url</%text>
234 234 <%text>## available vars:</%text>
235 235 <%text>## scheme - http/https</%text>
236 236 <%text>## user - current user</%text>
237 237 <%text>## pass - password</%text>
238 238 <%text>## netloc - network location</%text>
239 239 <%text>## path - usually repo_name</%text>
240 240
241 241 #clone_uri = {scheme}://{user}{pass}{netloc}{path}
242 242
243 243 <%text>## issue tracker for RhodeCode (leave blank to disable, absent for default)</%text>
244 244 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
245 245
246 246 <%text>## issue tracking mapping for commits messages</%text>
247 247 <%text>## comment out issue_pat, issue_server, issue_prefix to enable</%text>
248 248
249 249 <%text>## pattern to get the issues from commit messages</%text>
250 250 <%text>## default one used here is #<numbers> with a regex passive group for `#`</%text>
251 251 <%text>## {id} will be all groups matched from this pattern</%text>
252 252
253 253 issue_pat = (?:\s*#)(\d+)
254 254
255 255 <%text>## server url to the issue, each {id} will be replaced with match</%text>
256 256 <%text>## fetched from the regex and {repo} is replaced with full repository name</%text>
257 257 <%text>## including groups {repo_name} is replaced with just name of repo</%text>
258 258
259 259 issue_server_link = https://myissueserver.com/{repo}/issue/{id}
260 260
261 261 <%text>## prefix to add to link to indicate it's an url</%text>
262 262 <%text>## #314 will be replaced by <issue_prefix><id></%text>
263 263
264 264 issue_prefix = #
265 265
266 266 <%text>## issue_pat, issue_server_link, issue_prefix can have suffixes to specify</%text>
267 267 <%text>## multiple patterns, to other issues server, wiki or others</%text>
268 268 <%text>## below an example how to create a wiki pattern</%text>
269 269 <%text>## wiki-some-id -> https://mywiki.com/some-id</%text>
270 270
271 271 #issue_pat_wiki = (?:wiki-)(.+)
272 272 #issue_server_link_wiki = https://mywiki.com/{id}
273 273 #issue_prefix_wiki = WIKI-
274 274
275 275
276 276 <%text>## instance-id prefix</%text>
277 277 <%text>## a prefix key for this instance used for cache invalidation when running</%text>
278 278 <%text>## multiple instances of rhodecode, make sure it's globally unique for</%text>
279 279 <%text>## all running rhodecode instances. Leave empty if you don't use it</%text>
280 280 instance_id =
281 281
282 282 <%text>## alternative return HTTP header for failed authentication. Default HTTP</%text>
283 283 <%text>## response is 401 HTTPUnauthorized. Currently HG clients have troubles with</%text>
284 284 <%text>## handling that. Set this variable to 403 to return HTTPForbidden</%text>
285 285 auth_ret_code =
286 286
287 287 <%text>## locking return code. When repository is locked return this HTTP code. 2XX</%text>
288 288 <%text>## codes don't break the transactions while 4XX codes do</%text>
289 289 lock_ret_code = 423
290 290
291 291 <%text>## allows to change the repository location in settings page</%text>
292 292 allow_repo_location_change = True
293 293
294 294 <%text>## allows to setup custom hooks in settings page</%text>
295 295 allow_custom_hooks_settings = True
296 296
297 297 <%text>
298 298 ####################################
299 299 ### CELERY CONFIG ####
300 300 ####################################
301 301 </%text>
302 302 use_celery = false
303 303 broker.host = localhost
304 304 broker.vhost = rabbitmqhost
305 305 broker.port = 5672
306 306 broker.user = rabbitmq
307 307 broker.password = qweqwe
308 308
309 309 celery.imports = kallithea.lib.celerylib.tasks
310 310
311 311 celery.result.backend = amqp
312 312 celery.result.dburi = amqp://
313 313 celery.result.serialier = json
314 314
315 315 #celery.send.task.error.emails = true
316 316 #celery.amqp.task.result.expires = 18000
317 317
318 318 celeryd.concurrency = 2
319 319 #celeryd.log.file = celeryd.log
320 320 celeryd.log.level = debug
321 321 celeryd.max.tasks.per.child = 1
322 322
323 323 <%text>## tasks will never be sent to the queue, but executed locally instead.</%text>
324 324 celery.always.eager = false
325 325 <%text>
326 326 ####################################
327 327 ### BEAKER CACHE ####
328 328 ####################################
329 329 </%text>
330 330 beaker.cache.data_dir=${here}/data/cache/data
331 331 beaker.cache.lock_dir=${here}/data/cache/lock
332 332
333 333 beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long
334 334
335 335 beaker.cache.super_short_term.type=memory
336 336 beaker.cache.super_short_term.expire=10
337 337 beaker.cache.super_short_term.key_length = 256
338 338
339 339 beaker.cache.short_term.type=memory
340 340 beaker.cache.short_term.expire=60
341 341 beaker.cache.short_term.key_length = 256
342 342
343 343 beaker.cache.long_term.type=memory
344 344 beaker.cache.long_term.expire=36000
345 345 beaker.cache.long_term.key_length = 256
346 346
347 347 beaker.cache.sql_cache_short.type=memory
348 348 beaker.cache.sql_cache_short.expire=10
349 349 beaker.cache.sql_cache_short.key_length = 256
350 350
351 351 beaker.cache.sql_cache_med.type=memory
352 352 beaker.cache.sql_cache_med.expire=360
353 353 beaker.cache.sql_cache_med.key_length = 256
354 354
355 355 beaker.cache.sql_cache_long.type=file
356 356 beaker.cache.sql_cache_long.expire=3600
357 357 beaker.cache.sql_cache_long.key_length = 256
358 358 <%text>
359 359 ####################################
360 360 ### BEAKER SESSION ####
361 361 ####################################
362 362 ## Type of storage used for the session, current types are
363 363 ## dbm, file, memcached, database, and memory.
364 364 ## The storage uses the Container API
365 365 ## that is also used by the cache system.
366 366 </%text>
367 367 <%text>## db session ##</%text>
368 368 #beaker.session.type = ext:database
369 369 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/rhodecode
370 370 #beaker.session.table_name = db_session
371 371
372 372 <%text>## encrypted cookie client side session, good for many instances ##</%text>
373 373 #beaker.session.type = cookie
374 374
375 375 <%text>## file based cookies (default) ##</%text>
376 376 #beaker.session.type = file
377 377
378 378 beaker.session.key = rhodecode
379 379 beaker.session.secret = ${uuid()}
380 380
381 381 <%text>## Secure encrypted cookie. Requires AES and AES python libraries</%text>
382 382 <%text>## you must disable beaker.session.secret to use this</%text>
383 383 #beaker.session.encrypt_key = <key_for_encryption>
384 384 #beaker.session.validate_key = <validation_key>
385 385
386 386 <%text>## sets session as invalid if it haven't been accessed for given amount of time</%text>
387 387 beaker.session.timeout = 2592000
388 388 beaker.session.httponly = true
389 389 #beaker.session.cookie_path = /<your-prefix>
390 390
391 391 <%text>## uncomment for https secure cookie</%text>
392 392 beaker.session.secure = false
393 393
394 394 <%text>## auto save the session to not to use .save()</%text>
395 395 beaker.session.auto = False
396 396
397 397 <%text>## default cookie expiration time in seconds `true` expire at browser close ##</%text>
398 398 #beaker.session.cookie_expires = 3600
399 399
400 400 %if error_aggregation_service == 'errormator':
401 401 <%text>
402 402 ############################
403 403 ## ERROR HANDLING SYSTEMS ##
404 404 ############################
405 405
406 406 ####################
407 407 ### [errormator] ###
408 408 ####################
409 409
410 410 ## Errormator is tailored to work with RhodeCode, see
411 411 ## http://errormator.com for details how to obtain an account
412 412 ## you must install python package `errormator_client` to make it work
413 413 </%text>
414 414 <%text>## errormator enabled</%text>
415 415 errormator = false
416 416
417 417 errormator.server_url = https://api.errormator.com
418 418 errormator.api_key = YOUR_API_KEY
419 419
420 420 <%text>## TWEAK AMOUNT OF INFO SENT HERE</%text>
421 421
422 422 <%text>## enables 404 error logging (default False)</%text>
423 423 errormator.report_404 = false
424 424
425 425 <%text>## time in seconds after request is considered being slow (default 1)</%text>
426 426 errormator.slow_request_time = 1
427 427
428 428 <%text>## record slow requests in application</%text>
429 429 <%text>## (needs to be enabled for slow datastore recording and time tracking)</%text>
430 430 errormator.slow_requests = true
431 431
432 432 <%text>## enable hooking to application loggers</%text>
433 433 # errormator.logging = true
434 434
435 435 <%text>## minimum log level for log capture</%text>
436 436 # errormator.logging.level = WARNING
437 437
438 438 <%text>## send logs only from erroneous/slow requests</%text>
439 439 <%text>## (saves API quota for intensive logging)</%text>
440 440 errormator.logging_on_error = false
441 441
442 442 <%text>## list of additonal keywords that should be grabbed from environ object</%text>
443 443 <%text>## can be string with comma separated list of words in lowercase</%text>
444 444 <%text>## (by default client will always send following info:</%text>
445 445 <%text>## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that</%text>
446 446 <%text>## start with HTTP* this list be extended with additional keywords here</%text>
447 447 errormator.environ_keys_whitelist =
448 448
449 449
450 450 <%text>## list of keywords that should be blanked from request object</%text>
451 451 <%text>## can be string with comma separated list of words in lowercase</%text>
452 452 <%text>## (by default client will always blank keys that contain following words</%text>
453 453 <%text>## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'</%text>
454 454 <%text>## this list be extended with additional keywords set here</%text>
455 455 errormator.request_keys_blacklist =
456 456
457 457
458 458 <%text>## list of namespaces that should be ignores when gathering log entries</%text>
459 459 <%text>## can be string with comma separated list of namespaces</%text>
460 460 <%text>## (by default the client ignores own entries: errormator_client.client)</%text>
461 461 errormator.log_namespace_blacklist =
462 462 %elif error_aggregation_service == 'sentry':
463 463 <%text>
464 464 ################
465 465 ### [sentry] ###
466 466 ################
467 467
468 468 ## sentry is a alternative open source error aggregator
469 469 ## you must install python packages `sentry` and `raven` to enable
470 470 </%text>
471 471 sentry.dsn = YOUR_DNS
472 472 sentry.servers =
473 473 sentry.name =
474 474 sentry.key =
475 475 sentry.public_key =
476 476 sentry.secret_key =
477 477 sentry.project =
478 478 sentry.site =
479 479 sentry.include_paths =
480 480 sentry.exclude_paths =
481 481 %endif
482 482 <%text>
483 483 ################################################################################
484 484 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
485 485 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
486 486 ## execute malicious code after an exception is raised. ##
487 487 ################################################################################
488 488 </%text>
489 489 set debug = false
490 490 <%text>
491 491 ##################################
492 492 ### LOGVIEW CONFIG ###
493 493 ##################################
494 494 </%text>
495 495 logview.sqlalchemy = #faa
496 496 logview.pylons.templating = #bfb
497 497 logview.pylons.util = #eee
498 498 <%text>
499 499 #########################################################
500 500 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
501 501 #########################################################
502 502 </%text>
503 503 %if database_engine == 'sqlite':
504 504 # SQLITE [default]
505 505 sqlalchemy.db1.url = sqlite:///${here}/rhodecode.db?timeout=60
506 506 %elif database_engine == 'postgres':
507 507 # POSTGRESQL
508 508 sqlalchemy.db1.url = postgresql://user:pass@localhost/rhodecode
509 509 %elif database_engine == 'mysql':
510 510 # MySQL
511 511 sqlalchemy.db1.url = mysql://user:pass@localhost/rhodecode
512 512 %endif
513 513 # see sqlalchemy docs for others
514 514
515 515 sqlalchemy.db1.echo = false
516 516 sqlalchemy.db1.pool_recycle = 3600
517 517 sqlalchemy.db1.convert_unicode = true
518 518 <%text>
519 519 ################################
520 520 ### LOGGING CONFIGURATION ####
521 521 ################################
522 522 </%text>
523 523 [loggers]
524 keys = root, routes, rhodecode, sqlalchemy, beaker, templates, whoosh_indexer
524 keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer
525 525
526 526 [handlers]
527 527 keys = console, console_sql
528 528
529 529 [formatters]
530 530 keys = generic, color_formatter, color_formatter_sql
531 531 <%text>
532 532 #############
533 533 ## LOGGERS ##
534 534 #############
535 535 </%text>
536 536 [logger_root]
537 537 level = NOTSET
538 538 handlers = console
539 539
540 540 [logger_routes]
541 541 level = DEBUG
542 542 handlers =
543 543 qualname = routes.middleware
544 544 <%text>## "level = DEBUG" logs the route matched and routing variables.</%text>
545 545 propagate = 1
546 546
547 547 [logger_beaker]
548 548 level = DEBUG
549 549 handlers =
550 550 qualname = beaker.container
551 551 propagate = 1
552 552
553 553 [logger_templates]
554 554 level = INFO
555 555 handlers =
556 556 qualname = pylons.templating
557 557 propagate = 1
558 558
559 [logger_rhodecode]
559 [logger_kallithea]
560 560 level = DEBUG
561 561 handlers =
562 qualname = rhodecode
562 qualname = kallithea
563 563 propagate = 1
564 564
565 565 [logger_sqlalchemy]
566 566 level = INFO
567 567 handlers = console_sql
568 568 qualname = sqlalchemy.engine
569 569 propagate = 0
570 570
571 571 [logger_whoosh_indexer]
572 572 level = DEBUG
573 573 handlers =
574 574 qualname = whoosh_indexer
575 575 propagate = 1
576 576 <%text>
577 577 ##############
578 578 ## HANDLERS ##
579 579 ##############
580 580 </%text>
581 581 [handler_console]
582 582 class = StreamHandler
583 583 args = (sys.stderr,)
584 584 level = INFO
585 585 formatter = generic
586 586
587 587 [handler_console_sql]
588 588 class = StreamHandler
589 589 args = (sys.stderr,)
590 590 level = WARN
591 591 formatter = generic
592 592 <%text>
593 593 ################
594 594 ## FORMATTERS ##
595 595 ################
596 596 </%text>
597 597 [formatter_generic]
598 598 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
599 599 datefmt = %Y-%m-%d %H:%M:%S
600 600
601 601 [formatter_color_formatter]
602 602 class=kallithea.lib.colored_formatter.ColorFormatter
603 603 format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
604 604 datefmt = %Y-%m-%d %H:%M:%S
605 605
606 606 [formatter_color_formatter_sql]
607 607 class=kallithea.lib.colored_formatter.ColorFormatterSql
608 608 format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
609 609 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,597 +1,597 b''
1 1 ################################################################################
2 2 ################################################################################
3 3 # RhodeCode - Pylons environment configuration #
4 4 # #
5 5 # The %(here)s variable will be replaced with the parent directory of this file#
6 6 ################################################################################
7 7
8 8 [DEFAULT]
9 9 debug = true
10 10 pdebug = false
11 11 ################################################################################
12 12 ## Uncomment and replace with the address which should receive ##
13 13 ## any error reports after application crash ##
14 14 ## Additionally those settings will be used by RhodeCode mailing system ##
15 15 ################################################################################
16 16 #email_to = admin@localhost
17 17 #error_email_from = paste_error@localhost
18 18 #app_email_from = rhodecode-noreply@localhost
19 19 #error_message =
20 20 #email_prefix = [RhodeCode]
21 21
22 22 #smtp_server = mail.server.com
23 23 #smtp_username =
24 24 #smtp_password =
25 25 #smtp_port =
26 26 #smtp_use_tls = false
27 27 #smtp_use_ssl = true
28 28 ## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
29 29 #smtp_auth =
30 30
31 31 [server:main]
32 32 ## PASTE ##
33 33 #use = egg:Paste#http
34 34 ## nr of worker threads to spawn
35 35 #threadpool_workers = 5
36 36 ## max request before thread respawn
37 37 #threadpool_max_requests = 10
38 38 ## option to use threads of process
39 39 #use_threadpool = true
40 40
41 41 ## WAITRESS ##
42 42 use = egg:waitress#main
43 43 ## number of worker threads
44 44 threads = 5
45 45 ## MAX BODY SIZE 100GB
46 46 max_request_body_size = 107374182400
47 47 ## use poll instead of select, fixes fd limits, may not work on old
48 48 ## windows systems.
49 49 #asyncore_use_poll = True
50 50
51 51 ## GUNICORN ##
52 52 #use = egg:gunicorn#main
53 53 ## number of process workers. You must set `instance_id = *` when this option
54 54 ## is set to more than one worker
55 55 #workers = 1
56 56 ## process name
57 57 #proc_name = rhodecode
58 58 ## type of worker class, one of sync, eventlet, gevent, tornado
59 59 ## recommended for bigger setup is using of of other than sync one
60 60 #worker_class = sync
61 61 #max_requests = 5
62 62 ## ammount of time a worker can handle request before it gets killed and
63 63 ## restarted
64 64 #timeout = 3600
65 65
66 66 ## UWSGI ##
67 67 ## run with uwsgi --ini-paste-logged <inifile.ini>
68 68 #[uwsgi]
69 69 #socket = /tmp/uwsgi.sock
70 70 #master = true
71 71 #http = 127.0.0.1:5000
72 72
73 73 ## set as deamon and redirect all output to file
74 74 #daemonize = ./uwsgi_rhodecode.log
75 75
76 76 ## master process PID
77 77 #pidfile = ./uwsgi_rhodecode.pid
78 78
79 79 ## stats server with workers statistics, use uwsgitop
80 80 ## for monitoring, `uwsgitop 127.0.0.1:1717`
81 81 #stats = 127.0.0.1:1717
82 82 #memory-report = true
83 83
84 84 ## log 5XX errors
85 85 #log-5xx = true
86 86
87 87 ## Set the socket listen queue size.
88 88 #listen = 256
89 89
90 90 ## Gracefully Reload workers after the specified amount of managed requests
91 91 ## (avoid memory leaks).
92 92 #max-requests = 1000
93 93
94 94 ## enable large buffers
95 95 #buffer-size=65535
96 96
97 97 ## socket and http timeouts ##
98 98 #http-timeout=3600
99 99 #socket-timeout=3600
100 100
101 101 ## Log requests slower than the specified number of milliseconds.
102 102 #log-slow = 10
103 103
104 104 ## Exit if no app can be loaded.
105 105 #need-app = true
106 106
107 107 ## Set lazy mode (load apps in workers instead of master).
108 108 #lazy = true
109 109
110 110 ## scaling ##
111 111 ## set cheaper algorithm to use, if not set default will be used
112 112 #cheaper-algo = spare
113 113
114 114 ## minimum number of workers to keep at all times
115 115 #cheaper = 1
116 116
117 117 ## number of workers to spawn at startup
118 118 #cheaper-initial = 1
119 119
120 120 ## maximum number of workers that can be spawned
121 121 #workers = 4
122 122
123 123 ## how many workers should be spawned at a time
124 124 #cheaper-step = 1
125 125
126 126 ## COMMON ##
127 127 host = 127.0.0.1
128 128 port = 5000
129 129
130 130 ## prefix middleware for rc
131 131 #[filter:proxy-prefix]
132 132 #use = egg:PasteDeploy#prefix
133 133 #prefix = /<your-prefix>
134 134
135 135 [app:main]
136 136 use = egg:kallithea
137 137 ## enable proxy prefix middleware
138 138 #filter-with = proxy-prefix
139 139
140 140 full_stack = true
141 141 static_files = true
142 142 ## Optional Languages
143 143 ## en, fr, ja, pt_BR, zh_CN, zh_TW, pl
144 144 lang = en
145 145 cache_dir = %(here)s/data
146 146 index_dir = %(here)s/data/index
147 147
148 148 ## perform a full repository scan on each server start, this should be
149 149 ## set to false after first startup, to allow faster server restarts.
150 150 initial_repo_scan = true
151 151
152 152 ## uncomment and set this path to use archive download cache
153 153 #archive_cache_dir = /tmp/tarballcache
154 154
155 155 ## change this to unique ID for security
156 156 app_instance_uuid = ${app_instance_uuid}
157 157
158 158 ## cut off limit for large diffs (size in bytes)
159 159 cut_off_limit = 256000
160 160
161 161 ## use cache version of scm repo everywhere
162 162 vcs_full_cache = true
163 163
164 164 ## force https in RhodeCode, fixes https redirects, assumes it's always https
165 165 force_https = false
166 166
167 167 ## use Strict-Transport-Security headers
168 168 use_htsts = false
169 169
170 170 ## number of commits stats will parse on each iteration
171 171 commit_parse_limit = 25
172 172
173 173 ## use gravatar service to display avatars
174 174 use_gravatar = true
175 175
176 176 ## path to git executable
177 177 git_path = git
178 178
179 179 ## git rev filter option, --all is the default filter, if you need to
180 180 ## hide all refs in changelog switch this to --branches --tags
181 181 git_rev_filter=--all
182 182
183 183 ## RSS feed options
184 184 rss_cut_off_limit = 256000
185 185 rss_items_per_page = 10
186 186 rss_include_diff = false
187 187
188 188 ## options for showing and identifying changesets
189 189 show_sha_length = 12
190 190 show_revision_number = true
191 191
192 192 ## gist URL alias, used to create nicer urls for gist. This should be an
193 193 ## url that does rewrites to _admin/gists/<gistid>.
194 194 ## example: http://gist.kallithea.server/{gistid}. Empty means use the internal
195 195 ## RhodeCode url, ie. http[s]://your.kallithea.server/_admin/gists/<gistid>
196 196 gist_alias_url =
197 197
198 198 ## white list of API enabled controllers. This allows to add list of
199 199 ## controllers to which access will be enabled by api_key. eg: to enable
200 200 ## api access to raw_files put `FilesController:raw`, to enable access to patches
201 201 ## add `ChangesetController:changeset_patch`. This list should be "," separated
202 202 ## Syntax is <ControllerClass>:<function>. Check debug logs for generated names
203 203 ## Recommended settings bellow are commented out:
204 204 api_access_controllers_whitelist =
205 205 # ChangesetController:changeset_patch,
206 206 # ChangesetController:changeset_raw,
207 207 # FilesController:raw,
208 208 # FilesController:archivefile
209 209
210 210 ## alternative_gravatar_url allows you to use your own avatar server application
211 211 ## the following parts of the URL will be replaced
212 212 ## {email} user email
213 213 ## {md5email} md5 hash of the user email (like at gravatar.com)
214 214 ## {size} size of the image that is expected from the server application
215 215 ## {scheme} http/https from RhodeCode server
216 216 ## {netloc} network location from RhodeCode server
217 217 #alternative_gravatar_url = http://myavatarserver.com/getbyemail/{email}/{size}
218 218 #alternative_gravatar_url = http://myavatarserver.com/getbymd5/{md5email}?s={size}
219 219
220 220
221 221 ## container auth options
222 222 container_auth_enabled = false
223 223 proxypass_auth_enabled = false
224 224
225 225 ## default encoding used to convert from and to unicode
226 226 ## can be also a comma seperated list of encoding in case of mixed encodings
227 227 default_encoding = utf8
228 228
229 229 ## overwrite schema of clone url
230 230 ## available vars:
231 231 ## scheme - http/https
232 232 ## user - current user
233 233 ## pass - password
234 234 ## netloc - network location
235 235 ## path - usually repo_name
236 236
237 237 #clone_uri = {scheme}://{user}{pass}{netloc}{path}
238 238
239 239 ## issue tracker for RhodeCode (leave blank to disable, absent for default)
240 240 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
241 241
242 242 ## issue tracking mapping for commits messages
243 243 ## comment out issue_pat, issue_server, issue_prefix to enable
244 244
245 245 ## pattern to get the issues from commit messages
246 246 ## default one used here is #<numbers> with a regex passive group for `#`
247 247 ## {id} will be all groups matched from this pattern
248 248
249 249 issue_pat = (?:\s*#)(\d+)
250 250
251 251 ## server url to the issue, each {id} will be replaced with match
252 252 ## fetched from the regex and {repo} is replaced with full repository name
253 253 ## including groups {repo_name} is replaced with just name of repo
254 254
255 255 issue_server_link = https://myissueserver.com/{repo}/issue/{id}
256 256
257 257 ## prefix to add to link to indicate it's an url
258 258 ## #314 will be replaced by <issue_prefix><id>
259 259
260 260 issue_prefix = #
261 261
262 262 ## issue_pat, issue_server_link, issue_prefix can have suffixes to specify
263 263 ## multiple patterns, to other issues server, wiki or others
264 264 ## below an example how to create a wiki pattern
265 265 # #wiki-some-id -> https://mywiki.com/some-id
266 266
267 267 #issue_pat_wiki = (?:wiki-)(.+)
268 268 #issue_server_link_wiki = https://mywiki.com/{id}
269 269 #issue_prefix_wiki = WIKI-
270 270
271 271
272 272 ## instance-id prefix
273 273 ## a prefix key for this instance used for cache invalidation when running
274 274 ## multiple instances of rhodecode, make sure it's globally unique for
275 275 ## all running rhodecode instances. Leave empty if you don't use it
276 276 instance_id =
277 277
278 278 ## alternative return HTTP header for failed authentication. Default HTTP
279 279 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
280 280 ## handling that. Set this variable to 403 to return HTTPForbidden
281 281 auth_ret_code =
282 282
283 283 ## locking return code. When repository is locked return this HTTP code. 2XX
284 284 ## codes don't break the transactions while 4XX codes do
285 285 lock_ret_code = 423
286 286
287 287 ## allows to change the repository location in settings page
288 288 allow_repo_location_change = True
289 289
290 290 ## allows to setup custom hooks in settings page
291 291 allow_custom_hooks_settings = True
292 292
293 293
294 294 ####################################
295 295 ### CELERY CONFIG ####
296 296 ####################################
297 297 use_celery = false
298 298 broker.host = localhost
299 299 broker.vhost = rabbitmqhost
300 300 broker.port = 5672
301 301 broker.user = rabbitmq
302 302 broker.password = qweqwe
303 303
304 304 celery.imports = kallithea.lib.celerylib.tasks
305 305
306 306 celery.result.backend = amqp
307 307 celery.result.dburi = amqp://
308 308 celery.result.serialier = json
309 309
310 310 #celery.send.task.error.emails = true
311 311 #celery.amqp.task.result.expires = 18000
312 312
313 313 celeryd.concurrency = 2
314 314 #celeryd.log.file = celeryd.log
315 315 celeryd.log.level = debug
316 316 celeryd.max.tasks.per.child = 1
317 317
318 318 ## tasks will never be sent to the queue, but executed locally instead.
319 319 celery.always.eager = false
320 320
321 321 ####################################
322 322 ### BEAKER CACHE ####
323 323 ####################################
324 324 beaker.cache.data_dir=%(here)s/data/cache/data
325 325 beaker.cache.lock_dir=%(here)s/data/cache/lock
326 326
327 327 beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long
328 328
329 329 beaker.cache.super_short_term.type=memory
330 330 beaker.cache.super_short_term.expire=10
331 331 beaker.cache.super_short_term.key_length = 256
332 332
333 333 beaker.cache.short_term.type=memory
334 334 beaker.cache.short_term.expire=60
335 335 beaker.cache.short_term.key_length = 256
336 336
337 337 beaker.cache.long_term.type=memory
338 338 beaker.cache.long_term.expire=36000
339 339 beaker.cache.long_term.key_length = 256
340 340
341 341 beaker.cache.sql_cache_short.type=memory
342 342 beaker.cache.sql_cache_short.expire=10
343 343 beaker.cache.sql_cache_short.key_length = 256
344 344
345 345 beaker.cache.sql_cache_med.type=memory
346 346 beaker.cache.sql_cache_med.expire=360
347 347 beaker.cache.sql_cache_med.key_length = 256
348 348
349 349 beaker.cache.sql_cache_long.type=file
350 350 beaker.cache.sql_cache_long.expire=3600
351 351 beaker.cache.sql_cache_long.key_length = 256
352 352
353 353 ####################################
354 354 ### BEAKER SESSION ####
355 355 ####################################
356 356 ## Type of storage used for the session, current types are
357 357 ## dbm, file, memcached, database, and memory.
358 358 ## The storage uses the Container API
359 359 ## that is also used by the cache system.
360 360
361 361 ## db session ##
362 362 #beaker.session.type = ext:database
363 363 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/rhodecode
364 364 #beaker.session.table_name = db_session
365 365
366 366 ## encrypted cookie client side session, good for many instances ##
367 367 #beaker.session.type = cookie
368 368
369 369 ## file based cookies (default) ##
370 370 #beaker.session.type = file
371 371
372 372 beaker.session.key = rhodecode
373 373 beaker.session.secret = ${app_instance_uuid}
374 374
375 375 ## Secure encrypted cookie. Requires AES and AES python libraries
376 376 ## you must disable beaker.session.secret to use this
377 377 #beaker.session.encrypt_key = <key_for_encryption>
378 378 #beaker.session.validate_key = <validation_key>
379 379
380 380 ## sets session as invalid if it haven't been accessed for given amount of time
381 381 beaker.session.timeout = 2592000
382 382 beaker.session.httponly = true
383 383 #beaker.session.cookie_path = /<your-prefix>
384 384
385 385 ## uncomment for https secure cookie
386 386 beaker.session.secure = false
387 387
388 388 ## auto save the session to not to use .save()
389 389 beaker.session.auto = False
390 390
391 391 ## default cookie expiration time in seconds `true` expire at browser close ##
392 392 #beaker.session.cookie_expires = 3600
393 393
394 394
395 395 ############################
396 396 ## ERROR HANDLING SYSTEMS ##
397 397 ############################
398 398
399 399 ####################
400 400 ### [errormator] ###
401 401 ####################
402 402
403 403 ## Errormator is tailored to work with RhodeCode, see
404 404 ## http://errormator.com for details how to obtain an account
405 405 ## you must install python package `errormator_client` to make it work
406 406
407 407 ## errormator enabled
408 408 errormator = false
409 409
410 410 errormator.server_url = https://api.errormator.com
411 411 errormator.api_key = YOUR_API_KEY
412 412
413 413 ## TWEAK AMOUNT OF INFO SENT HERE
414 414
415 415 ## enables 404 error logging (default False)
416 416 errormator.report_404 = false
417 417
418 418 ## time in seconds after request is considered being slow (default 1)
419 419 errormator.slow_request_time = 1
420 420
421 421 ## record slow requests in application
422 422 ## (needs to be enabled for slow datastore recording and time tracking)
423 423 errormator.slow_requests = true
424 424
425 425 ## enable hooking to application loggers
426 426 # errormator.logging = true
427 427
428 428 ## minimum log level for log capture
429 429 # errormator.logging.level = WARNING
430 430
431 431 ## send logs only from erroneous/slow requests
432 432 ## (saves API quota for intensive logging)
433 433 errormator.logging_on_error = false
434 434
435 435 ## list of additonal keywords that should be grabbed from environ object
436 436 ## can be string with comma separated list of words in lowercase
437 437 ## (by default client will always send following info:
438 438 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
439 439 ## start with HTTP* this list be extended with additional keywords here
440 440 errormator.environ_keys_whitelist =
441 441
442 442
443 443 ## list of keywords that should be blanked from request object
444 444 ## can be string with comma separated list of words in lowercase
445 445 ## (by default client will always blank keys that contain following words
446 446 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
447 447 ## this list be extended with additional keywords set here
448 448 errormator.request_keys_blacklist =
449 449
450 450
451 451 ## list of namespaces that should be ignores when gathering log entries
452 452 ## can be string with comma separated list of namespaces
453 453 ## (by default the client ignores own entries: errormator_client.client)
454 454 errormator.log_namespace_blacklist =
455 455
456 456
457 457 ################
458 458 ### [sentry] ###
459 459 ################
460 460
461 461 ## sentry is a alternative open source error aggregator
462 462 ## you must install python packages `sentry` and `raven` to enable
463 463
464 464 sentry.dsn = YOUR_DNS
465 465 sentry.servers =
466 466 sentry.name =
467 467 sentry.key =
468 468 sentry.public_key =
469 469 sentry.secret_key =
470 470 sentry.project =
471 471 sentry.site =
472 472 sentry.include_paths =
473 473 sentry.exclude_paths =
474 474
475 475
476 476 ################################################################################
477 477 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
478 478 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
479 479 ## execute malicious code after an exception is raised. ##
480 480 ################################################################################
481 481 set debug = false
482 482
483 483 ##################################
484 484 ### LOGVIEW CONFIG ###
485 485 ##################################
486 486 logview.sqlalchemy = #faa
487 487 logview.pylons.templating = #bfb
488 488 logview.pylons.util = #eee
489 489
490 490 #########################################################
491 491 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
492 492 #########################################################
493 493
494 494 # SQLITE [default]
495 495 sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
496 496
497 497 # POSTGRESQL
498 498 # sqlalchemy.db1.url = postgresql://user:pass@localhost/rhodecode
499 499
500 500 # MySQL
501 501 # sqlalchemy.db1.url = mysql://user:pass@localhost/rhodecode
502 502
503 503 # see sqlalchemy docs for others
504 504
505 505 sqlalchemy.db1.echo = false
506 506 sqlalchemy.db1.pool_recycle = 3600
507 507 sqlalchemy.db1.convert_unicode = true
508 508
509 509 ################################
510 510 ### LOGGING CONFIGURATION ####
511 511 ################################
512 512 [loggers]
513 keys = root, routes, rhodecode, sqlalchemy, beaker, templates, whoosh_indexer
513 keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer
514 514
515 515 [handlers]
516 516 keys = console, console_sql
517 517
518 518 [formatters]
519 519 keys = generic, color_formatter, color_formatter_sql
520 520
521 521 #############
522 522 ## LOGGERS ##
523 523 #############
524 524 [logger_root]
525 525 level = NOTSET
526 526 handlers = console
527 527
528 528 [logger_routes]
529 529 level = DEBUG
530 530 handlers =
531 531 qualname = routes.middleware
532 532 ## "level = DEBUG" logs the route matched and routing variables.
533 533 propagate = 1
534 534
535 535 [logger_beaker]
536 536 level = DEBUG
537 537 handlers =
538 538 qualname = beaker.container
539 539 propagate = 1
540 540
541 541 [logger_templates]
542 542 level = INFO
543 543 handlers =
544 544 qualname = pylons.templating
545 545 propagate = 1
546 546
547 [logger_rhodecode]
547 [logger_kallithea]
548 548 level = DEBUG
549 549 handlers =
550 qualname = rhodecode
550 qualname = kallithea
551 551 propagate = 1
552 552
553 553 [logger_sqlalchemy]
554 554 level = INFO
555 555 handlers = console_sql
556 556 qualname = sqlalchemy.engine
557 557 propagate = 0
558 558
559 559 [logger_whoosh_indexer]
560 560 level = DEBUG
561 561 handlers =
562 562 qualname = whoosh_indexer
563 563 propagate = 1
564 564
565 565 ##############
566 566 ## HANDLERS ##
567 567 ##############
568 568
569 569 [handler_console]
570 570 class = StreamHandler
571 571 args = (sys.stderr,)
572 572 level = INFO
573 573 formatter = generic
574 574
575 575 [handler_console_sql]
576 576 class = StreamHandler
577 577 args = (sys.stderr,)
578 578 level = WARN
579 579 formatter = generic
580 580
581 581 ################
582 582 ## FORMATTERS ##
583 583 ################
584 584
585 585 [formatter_generic]
586 586 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
587 587 datefmt = %Y-%m-%d %H:%M:%S
588 588
589 589 [formatter_color_formatter]
590 590 class=kallithea.lib.colored_formatter.ColorFormatter
591 591 format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
592 592 datefmt = %Y-%m-%d %H:%M:%S
593 593
594 594 [formatter_color_formatter_sql]
595 595 class=kallithea.lib.colored_formatter.ColorFormatterSql
596 596 format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
597 597 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,588 +1,588 b''
1 1 ################################################################################
2 2 ################################################################################
3 3 # RhodeCode - Pylons environment configuration #
4 4 # #
5 5 # The %(here)s variable will be replaced with the parent directory of this file#
6 6 ################################################################################
7 7
8 8 [DEFAULT]
9 9 debug = true
10 10 pdebug = false
11 11 ################################################################################
12 12 ## Uncomment and replace with the address which should receive ##
13 13 ## any error reports after application crash ##
14 14 ## Additionally those settings will be used by RhodeCode mailing system ##
15 15 ################################################################################
16 16 #email_to = admin@localhost
17 17 #error_email_from = paste_error@localhost
18 18 #app_email_from = rhodecode-noreply@localhost
19 19 #error_message =
20 20 #email_prefix = [RhodeCode]
21 21
22 22 #smtp_server = mail.server.com
23 23 #smtp_username =
24 24 #smtp_password =
25 25 #smtp_port =
26 26 #smtp_use_tls = false
27 27 #smtp_use_ssl = true
28 28 ## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
29 29 #smtp_auth =
30 30
31 31 [server:main]
32 32 ## PASTE ##
33 33 #use = egg:Paste#http
34 34 ## nr of worker threads to spawn
35 35 #threadpool_workers = 5
36 36 ## max request before thread respawn
37 37 #threadpool_max_requests = 10
38 38 ## option to use threads of process
39 39 #use_threadpool = true
40 40
41 41 ## WAITRESS ##
42 42 use = egg:waitress#main
43 43 ## number of worker threads
44 44 threads = 5
45 45 ## MAX BODY SIZE 100GB
46 46 max_request_body_size = 107374182400
47 47 ## use poll instead of select, fixes fd limits, may not work on old
48 48 ## windows systems.
49 49 #asyncore_use_poll = True
50 50
51 51 ## GUNICORN ##
52 52 #use = egg:gunicorn#main
53 53 ## number of process workers. You must set `instance_id = *` when this option
54 54 ## is set to more than one worker
55 55 #workers = 1
56 56 ## process name
57 57 #proc_name = rhodecode
58 58 ## type of worker class, one of sync, eventlet, gevent, tornado
59 59 ## recommended for bigger setup is using of of other than sync one
60 60 #worker_class = sync
61 61 #max_requests = 5
62 62 ## ammount of time a worker can handle request before it gets killed and
63 63 ## restarted
64 64 #timeout = 3600
65 65
66 66 ## UWSGI ##
67 67 ## run with uwsgi --ini-paste-logged <inifile.ini>
68 68 #[uwsgi]
69 69 #socket = /tmp/uwsgi.sock
70 70 #master = true
71 71 #http = 127.0.0.1:5000
72 72
73 73 ## set as deamon and redirect all output to file
74 74 #daemonize = ./uwsgi_rhodecode.log
75 75
76 76 ## master process PID
77 77 #pidfile = ./uwsgi_rhodecode.pid
78 78
79 79 ## stats server with workers statistics, use uwsgitop
80 80 ## for monitoring, `uwsgitop 127.0.0.1:1717`
81 81 #stats = 127.0.0.1:1717
82 82 #memory-report = true
83 83
84 84 ## log 5XX errors
85 85 #log-5xx = true
86 86
87 87 ## Set the socket listen queue size.
88 88 #listen = 256
89 89
90 90 ## Gracefully Reload workers after the specified amount of managed requests
91 91 ## (avoid memory leaks).
92 92 #max-requests = 1000
93 93
94 94 ## enable large buffers
95 95 #buffer-size=65535
96 96
97 97 ## socket and http timeouts ##
98 98 #http-timeout=3600
99 99 #socket-timeout=3600
100 100
101 101 ## Log requests slower than the specified number of milliseconds.
102 102 #log-slow = 10
103 103
104 104 ## Exit if no app can be loaded.
105 105 #need-app = true
106 106
107 107 ## Set lazy mode (load apps in workers instead of master).
108 108 #lazy = true
109 109
110 110 ## scaling ##
111 111 ## set cheaper algorithm to use, if not set default will be used
112 112 #cheaper-algo = spare
113 113
114 114 ## minimum number of workers to keep at all times
115 115 #cheaper = 1
116 116
117 117 ## number of workers to spawn at startup
118 118 #cheaper-initial = 1
119 119
120 120 ## maximum number of workers that can be spawned
121 121 #workers = 4
122 122
123 123 ## how many workers should be spawned at a time
124 124 #cheaper-step = 1
125 125
126 126 ## COMMON ##
127 127 host = 127.0.0.1
128 128 port = 5000
129 129
130 130 ## prefix middleware for rc
131 131 #[filter:proxy-prefix]
132 132 #use = egg:PasteDeploy#prefix
133 133 #prefix = /<your-prefix>
134 134
135 135 [app:main]
136 136 use = egg:kallithea
137 137 ## enable proxy prefix middleware
138 138 #filter-with = proxy-prefix
139 139
140 140 full_stack = true
141 141 static_files = true
142 142 ## Optional Languages
143 143 ## en, fr, ja, pt_BR, zh_CN, zh_TW, pl
144 144 lang = en
145 145 cache_dir = %(here)s/data
146 146 index_dir = %(here)s/data/index
147 147
148 148 ## perform a full repository scan on each server start, this should be
149 149 ## set to false after first startup, to allow faster server restarts.
150 150 initial_repo_scan = true
151 151
152 152 ## uncomment and set this path to use archive download cache
153 153 #archive_cache_dir = /tmp/tarballcache
154 154
155 155 ## change this to unique ID for security
156 156 app_instance_uuid = rc-production
157 157
158 158 ## cut off limit for large diffs (size in bytes)
159 159 cut_off_limit = 256000
160 160
161 161 ## use cache version of scm repo everywhere
162 162 vcs_full_cache = true
163 163
164 164 ## force https in RhodeCode, fixes https redirects, assumes it's always https
165 165 force_https = false
166 166
167 167 ## use Strict-Transport-Security headers
168 168 use_htsts = false
169 169
170 170 ## number of commits stats will parse on each iteration
171 171 commit_parse_limit = 25
172 172
173 173 ## use gravatar service to display avatars
174 174 use_gravatar = true
175 175
176 176 ## path to git executable
177 177 git_path = git
178 178
179 179 ## git rev filter option, --all is the default filter, if you need to
180 180 ## hide all refs in changelog switch this to --branches --tags
181 181 git_rev_filter=--all
182 182
183 183 ## RSS feed options
184 184 rss_cut_off_limit = 256000
185 185 rss_items_per_page = 10
186 186 rss_include_diff = false
187 187
188 188 ## options for showing and identifying changesets
189 189 show_sha_length = 12
190 190 show_revision_number = true
191 191
192 192 ## gist URL alias, used to create nicer urls for gist. This should be an
193 193 ## url that does rewrites to _admin/gists/<gistid>.
194 194 ## example: http://gist.kallithea.server/{gistid}. Empty means use the internal
195 195 ## RhodeCode url, ie. http[s]://your.kallithea.server/_admin/gists/<gistid>
196 196 gist_alias_url =
197 197
198 198 ## white list of API enabled controllers. This allows to add list of
199 199 ## controllers to which access will be enabled by api_key. eg: to enable
200 200 ## api access to raw_files put `FilesController:raw`, to enable access to patches
201 201 ## add `ChangesetController:changeset_patch`. This list should be "," separated
202 202 ## Syntax is <ControllerClass>:<function>. Check debug logs for generated names
203 203 ## Recommended settings bellow are commented out:
204 204 api_access_controllers_whitelist =
205 205 # ChangesetController:changeset_patch,
206 206 # ChangesetController:changeset_raw,
207 207 # FilesController:raw,
208 208 # FilesController:archivefile
209 209
210 210 ## alternative_gravatar_url allows you to use your own avatar server application
211 211 ## the following parts of the URL will be replaced
212 212 ## {email} user email
213 213 ## {md5email} md5 hash of the user email (like at gravatar.com)
214 214 ## {size} size of the image that is expected from the server application
215 215 ## {scheme} http/https from RhodeCode server
216 216 ## {netloc} network location from RhodeCode server
217 217 #alternative_gravatar_url = http://myavatarserver.com/getbyemail/{email}/{size}
218 218 #alternative_gravatar_url = http://myavatarserver.com/getbymd5/{md5email}?s={size}
219 219
220 220
221 221 ## container auth options
222 222 container_auth_enabled = false
223 223 proxypass_auth_enabled = false
224 224
225 225 ## default encoding used to convert from and to unicode
226 226 ## can be also a comma seperated list of encoding in case of mixed encodings
227 227 default_encoding = utf8
228 228
229 229 ## overwrite schema of clone url
230 230 ## available vars:
231 231 ## scheme - http/https
232 232 ## user - current user
233 233 ## pass - password
234 234 ## netloc - network location
235 235 ## path - usually repo_name
236 236
237 237 #clone_uri = {scheme}://{user}{pass}{netloc}{path}
238 238
239 239 ## issue tracker for RhodeCode (leave blank to disable, absent for default)
240 240 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
241 241
242 242 ## issue tracking mapping for commits messages
243 243 ## comment out issue_pat, issue_server, issue_prefix to enable
244 244
245 245 ## pattern to get the issues from commit messages
246 246 ## default one used here is #<numbers> with a regex passive group for `#`
247 247 ## {id} will be all groups matched from this pattern
248 248
249 249 issue_pat = (?:\s*#)(\d+)
250 250
251 251 ## server url to the issue, each {id} will be replaced with match
252 252 ## fetched from the regex and {repo} is replaced with full repository name
253 253 ## including groups {repo_name} is replaced with just name of repo
254 254
255 255 issue_server_link = https://myissueserver.com/{repo}/issue/{id}
256 256
257 257 ## prefix to add to link to indicate it's an url
258 258 ## #314 will be replaced by <issue_prefix><id>
259 259
260 260 issue_prefix = #
261 261
262 262 ## issue_pat, issue_server_link, issue_prefix can have suffixes to specify
263 263 ## multiple patterns, to other issues server, wiki or others
264 264 ## below an example how to create a wiki pattern
265 265 # #wiki-some-id -> https://mywiki.com/some-id
266 266
267 267 #issue_pat_wiki = (?:wiki-)(.+)
268 268 #issue_server_link_wiki = https://mywiki.com/{id}
269 269 #issue_prefix_wiki = WIKI-
270 270
271 271
272 272 ## instance-id prefix
273 273 ## a prefix key for this instance used for cache invalidation when running
274 274 ## multiple instances of rhodecode, make sure it's globally unique for
275 275 ## all running rhodecode instances. Leave empty if you don't use it
276 276 instance_id =
277 277
278 278 ## alternative return HTTP header for failed authentication. Default HTTP
279 279 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
280 280 ## handling that. Set this variable to 403 to return HTTPForbidden
281 281 auth_ret_code =
282 282
283 283 ## locking return code. When repository is locked return this HTTP code. 2XX
284 284 ## codes don't break the transactions while 4XX codes do
285 285 lock_ret_code = 423
286 286
287 287 ## allows to change the repository location in settings page
288 288 allow_repo_location_change = True
289 289
290 290 ## allows to setup custom hooks in settings page
291 291 allow_custom_hooks_settings = True
292 292
293 293
294 294 ####################################
295 295 ### CELERY CONFIG ####
296 296 ####################################
297 297 use_celery = false
298 298 broker.host = localhost
299 299 broker.vhost = rabbitmqhost
300 300 broker.port = 5672
301 301 broker.user = rabbitmq
302 302 broker.password = qweqwe
303 303
304 304 celery.imports = kallithea.lib.celerylib.tasks
305 305
306 306 celery.result.backend = amqp
307 307 celery.result.dburi = amqp://
308 308 celery.result.serialier = json
309 309
310 310 #celery.send.task.error.emails = true
311 311 #celery.amqp.task.result.expires = 18000
312 312
313 313 celeryd.concurrency = 2
314 314 #celeryd.log.file = celeryd.log
315 315 celeryd.log.level = debug
316 316 celeryd.max.tasks.per.child = 1
317 317
318 318 ## tasks will never be sent to the queue, but executed locally instead.
319 319 celery.always.eager = false
320 320
321 321 ####################################
322 322 ### BEAKER CACHE ####
323 323 ####################################
324 324 beaker.cache.data_dir=%(here)s/data/cache/data
325 325 beaker.cache.lock_dir=%(here)s/data/cache/lock
326 326
327 327 beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long
328 328
329 329 beaker.cache.super_short_term.type=memory
330 330 beaker.cache.super_short_term.expire=10
331 331 beaker.cache.super_short_term.key_length = 256
332 332
333 333 beaker.cache.short_term.type=memory
334 334 beaker.cache.short_term.expire=60
335 335 beaker.cache.short_term.key_length = 256
336 336
337 337 beaker.cache.long_term.type=memory
338 338 beaker.cache.long_term.expire=36000
339 339 beaker.cache.long_term.key_length = 256
340 340
341 341 beaker.cache.sql_cache_short.type=memory
342 342 beaker.cache.sql_cache_short.expire=10
343 343 beaker.cache.sql_cache_short.key_length = 256
344 344
345 345 beaker.cache.sql_cache_med.type=memory
346 346 beaker.cache.sql_cache_med.expire=360
347 347 beaker.cache.sql_cache_med.key_length = 256
348 348
349 349 beaker.cache.sql_cache_long.type=file
350 350 beaker.cache.sql_cache_long.expire=3600
351 351 beaker.cache.sql_cache_long.key_length = 256
352 352
353 353 ####################################
354 354 ### BEAKER SESSION ####
355 355 ####################################
356 356 ## Type of storage used for the session, current types are
357 357 ## dbm, file, memcached, database, and memory.
358 358 ## The storage uses the Container API
359 359 ## that is also used by the cache system.
360 360
361 361 ## db session ##
362 362 #beaker.session.type = ext:database
363 363 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/rhodecode
364 364 #beaker.session.table_name = db_session
365 365
366 366 ## encrypted cookie client side session, good for many instances ##
367 367 #beaker.session.type = cookie
368 368
369 369 ## file based cookies (default) ##
370 370 #beaker.session.type = file
371 371
372 372 beaker.session.key = rhodecode
373 373 beaker.session.secret = production-rc-uytcxaz
374 374
375 375 ## Secure encrypted cookie. Requires AES and AES python libraries
376 376 ## you must disable beaker.session.secret to use this
377 377 #beaker.session.encrypt_key = <key_for_encryption>
378 378 #beaker.session.validate_key = <validation_key>
379 379
380 380 ## sets session as invalid if it haven't been accessed for given amount of time
381 381 beaker.session.timeout = 2592000
382 382 beaker.session.httponly = true
383 383 #beaker.session.cookie_path = /<your-prefix>
384 384
385 385 ## uncomment for https secure cookie
386 386 beaker.session.secure = false
387 387
388 388 ## auto save the session to not to use .save()
389 389 beaker.session.auto = False
390 390
391 391 ## default cookie expiration time in seconds `true` expire at browser close ##
392 392 #beaker.session.cookie_expires = 3600
393 393
394 394
395 395 ############################
396 396 ## ERROR HANDLING SYSTEMS ##
397 397 ############################
398 398
399 399 ####################
400 400 ### [errormator] ###
401 401 ####################
402 402
403 403 ## Errormator is tailored to work with RhodeCode, see
404 404 ## http://errormator.com for details how to obtain an account
405 405 ## you must install python package `errormator_client` to make it work
406 406
407 407 ## errormator enabled
408 408 errormator = false
409 409
410 410 errormator.server_url = https://api.errormator.com
411 411 errormator.api_key = YOUR_API_KEY
412 412
413 413 ## TWEAK AMOUNT OF INFO SENT HERE
414 414
415 415 ## enables 404 error logging (default False)
416 416 errormator.report_404 = false
417 417
418 418 ## time in seconds after request is considered being slow (default 1)
419 419 errormator.slow_request_time = 1
420 420
421 421 ## record slow requests in application
422 422 ## (needs to be enabled for slow datastore recording and time tracking)
423 423 errormator.slow_requests = true
424 424
425 425 ## enable hooking to application loggers
426 426 # errormator.logging = true
427 427
428 428 ## minimum log level for log capture
429 429 # errormator.logging.level = WARNING
430 430
431 431 ## send logs only from erroneous/slow requests
432 432 ## (saves API quota for intensive logging)
433 433 errormator.logging_on_error = false
434 434
435 435 ## list of additonal keywords that should be grabbed from environ object
436 436 ## can be string with comma separated list of words in lowercase
437 437 ## (by default client will always send following info:
438 438 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
439 439 ## start with HTTP* this list be extended with additional keywords here
440 440 errormator.environ_keys_whitelist =
441 441
442 442
443 443 ## list of keywords that should be blanked from request object
444 444 ## can be string with comma separated list of words in lowercase
445 445 ## (by default client will always blank keys that contain following words
446 446 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
447 447 ## this list be extended with additional keywords set here
448 448 errormator.request_keys_blacklist =
449 449
450 450
451 451 ## list of namespaces that should be ignores when gathering log entries
452 452 ## can be string with comma separated list of namespaces
453 453 ## (by default the client ignores own entries: errormator_client.client)
454 454 errormator.log_namespace_blacklist =
455 455
456 456
457 457 ################
458 458 ### [sentry] ###
459 459 ################
460 460
461 461 ## sentry is a alternative open source error aggregator
462 462 ## you must install python packages `sentry` and `raven` to enable
463 463
464 464 sentry.dsn = YOUR_DNS
465 465 sentry.servers =
466 466 sentry.name =
467 467 sentry.key =
468 468 sentry.public_key =
469 469 sentry.secret_key =
470 470 sentry.project =
471 471 sentry.site =
472 472 sentry.include_paths =
473 473 sentry.exclude_paths =
474 474
475 475
476 476 ################################################################################
477 477 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
478 478 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
479 479 ## execute malicious code after an exception is raised. ##
480 480 ################################################################################
481 481 set debug = false
482 482
483 483 ##################################
484 484 ### LOGVIEW CONFIG ###
485 485 ##################################
486 486 logview.sqlalchemy = #faa
487 487 logview.pylons.templating = #bfb
488 488 logview.pylons.util = #eee
489 489
490 490 #########################################################
491 491 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
492 492 #########################################################
493 493 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
494 494 sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
495 495 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode
496 496 sqlalchemy.db1.echo = false
497 497 sqlalchemy.db1.pool_recycle = 3600
498 498 sqlalchemy.db1.convert_unicode = true
499 499
500 500 ################################
501 501 ### LOGGING CONFIGURATION ####
502 502 ################################
503 503 [loggers]
504 keys = root, routes, rhodecode, sqlalchemy, beaker, templates, whoosh_indexer
504 keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer
505 505
506 506 [handlers]
507 507 keys = console, console_sql
508 508
509 509 [formatters]
510 510 keys = generic, color_formatter, color_formatter_sql
511 511
512 512 #############
513 513 ## LOGGERS ##
514 514 #############
515 515 [logger_root]
516 516 level = NOTSET
517 517 handlers = console
518 518
519 519 [logger_routes]
520 520 level = DEBUG
521 521 handlers =
522 522 qualname = routes.middleware
523 523 ## "level = DEBUG" logs the route matched and routing variables.
524 524 propagate = 1
525 525
526 526 [logger_beaker]
527 527 level = DEBUG
528 528 handlers =
529 529 qualname = beaker.container
530 530 propagate = 1
531 531
532 532 [logger_templates]
533 533 level = INFO
534 534 handlers =
535 535 qualname = pylons.templating
536 536 propagate = 1
537 537
538 [logger_rhodecode]
538 [logger_kallithea]
539 539 level = DEBUG
540 540 handlers =
541 qualname = rhodecode
541 qualname = kallithea
542 542 propagate = 1
543 543
544 544 [logger_sqlalchemy]
545 545 level = INFO
546 546 handlers = console_sql
547 547 qualname = sqlalchemy.engine
548 548 propagate = 0
549 549
550 550 [logger_whoosh_indexer]
551 551 level = DEBUG
552 552 handlers =
553 553 qualname = whoosh_indexer
554 554 propagate = 1
555 555
556 556 ##############
557 557 ## HANDLERS ##
558 558 ##############
559 559
560 560 [handler_console]
561 561 class = StreamHandler
562 562 args = (sys.stderr,)
563 563 level = INFO
564 564 formatter = generic
565 565
566 566 [handler_console_sql]
567 567 class = StreamHandler
568 568 args = (sys.stderr,)
569 569 level = WARN
570 570 formatter = generic
571 571
572 572 ################
573 573 ## FORMATTERS ##
574 574 ################
575 575
576 576 [formatter_generic]
577 577 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
578 578 datefmt = %Y-%m-%d %H:%M:%S
579 579
580 580 [formatter_color_formatter]
581 581 class=kallithea.lib.colored_formatter.ColorFormatter
582 582 format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
583 583 datefmt = %Y-%m-%d %H:%M:%S
584 584
585 585 [formatter_color_formatter_sql]
586 586 class=kallithea.lib.colored_formatter.ColorFormatterSql
587 587 format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
588 588 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,486 +1,486 b''
1 1 ################################################################################
2 2 ################################################################################
3 3 # RhodeCode - Pylons environment configuration #
4 4 # #
5 5 # The %(here)s variable will be replaced with the parent directory of this file#
6 6 ################################################################################
7 7
8 8 [DEFAULT]
9 9 debug = true
10 10 pdebug = false
11 11 ################################################################################
12 12 ## Uncomment and replace with the address which should receive ##
13 13 ## any error reports after application crash ##
14 14 ## Additionally those settings will be used by RhodeCode mailing system ##
15 15 ################################################################################
16 16 #email_to = admin@localhost
17 17 #error_email_from = paste_error@localhost
18 18 #app_email_from = rhodecode-noreply@localhost
19 19 #error_message =
20 20 #email_prefix = [RhodeCode]
21 21
22 22 #smtp_server = mail.server.com
23 23 #smtp_username =
24 24 #smtp_password =
25 25 #smtp_port =
26 26 #smtp_use_tls = false
27 27 #smtp_use_ssl = true
28 28 ## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
29 29 #smtp_auth =
30 30
31 31 [server:main]
32 32 ## PASTE
33 33 ## nr of threads to spawn
34 34 #threadpool_workers = 5
35 35
36 36 ## max request before thread respawn
37 37 #threadpool_max_requests = 10
38 38
39 39 ## option to use threads of process
40 40 #use_threadpool = true
41 41
42 42 #use = egg:Paste#http
43 43
44 44 ## WAITRESS
45 45 threads = 5
46 46 ## 100GB
47 47 max_request_body_size = 107374182400
48 48 use = egg:waitress#main
49 49
50 50 host = 0.0.0.0
51 51 port = 5000
52 52
53 53 ## prefix middleware for rc
54 54 #[filter:proxy-prefix]
55 55 #use = egg:PasteDeploy#prefix
56 56 #prefix = /<your-prefix>
57 57
58 58 [app:main]
59 59 use = egg:kallithea
60 60 ## enable proxy prefix middleware
61 61 #filter-with = proxy-prefix
62 62
63 63 full_stack = true
64 64 static_files = true
65 65 ## Optional Languages
66 66 ## en, fr, ja, pt_BR, zh_CN, zh_TW, pl
67 67 lang = en
68 68 cache_dir = /tmp/rc/data
69 69 index_dir = /tmp/rc/index
70 70
71 71 ## perform a full repository scan on each server start, this should be
72 72 ## set to false after first startup, to allow faster server restarts.
73 73 initial_repo_scan = true
74 74
75 75 ## uncomment and set this path to use archive download cache
76 76 #archive_cache_dir = /tmp/tarballcache
77 77
78 78 ## change this to unique ID for security
79 79 app_instance_uuid = rc-production
80 80
81 81 ## cut off limit for large diffs (size in bytes)
82 82 cut_off_limit = 256000
83 83
84 84 ## use cache version of scm repo everywhere
85 85 vcs_full_cache = false
86 86
87 87 ## force https in RhodeCode, fixes https redirects, assumes it's always https
88 88 force_https = false
89 89
90 90 ## use Strict-Transport-Security headers
91 91 use_htsts = false
92 92
93 93 ## number of commits stats will parse on each iteration
94 94 commit_parse_limit = 25
95 95
96 96 ## number of items displayed in lightweight dashboard before paginating is shown
97 97 dashboard_items = 100
98 98
99 99 ## use gravatar service to display avatars
100 100 use_gravatar = true
101 101
102 102 ## path to git executable
103 103 git_path = git
104 104
105 105 ## git rev filter option, --all is the default filter, if you need to
106 106 ## hide all refs in changelog switch this to --branches --tags
107 107 git_rev_filter=--all
108 108
109 109 ## RSS feed options
110 110 rss_cut_off_limit = 256000
111 111 rss_items_per_page = 10
112 112 rss_include_diff = false
113 113
114 114 ## options for showing and identifying changesets
115 115 show_sha_length = 12
116 116 show_revision_number = true
117 117
118 118
119 119 ## alternative_gravatar_url allows you to use your own avatar server application
120 120 ## the following parts of the URL will be replaced
121 121 ## {email} user email
122 122 ## {md5email} md5 hash of the user email (like at gravatar.com)
123 123 ## {size} size of the image that is expected from the server application
124 124 ## {scheme} http/https from RhodeCode server
125 125 ## {netloc} network location from RhodeCode server
126 126 #alternative_gravatar_url = http://myavatarserver.com/getbyemail/{email}/{size}
127 127 #alternative_gravatar_url = http://myavatarserver.com/getbymd5/{md5email}?s={size}
128 128
129 129
130 130 ## container auth options
131 131 container_auth_enabled = false
132 132 proxypass_auth_enabled = false
133 133
134 134 ## default encoding used to convert from and to unicode
135 135 ## can be also a comma seperated list of encoding in case of mixed encodings
136 136 default_encoding = utf8
137 137
138 138 ## overwrite schema of clone url
139 139 ## available vars:
140 140 ## scheme - http/https
141 141 ## user - current user
142 142 ## pass - password
143 143 ## netloc - network location
144 144 ## path - usually repo_name
145 145
146 146 #clone_uri = {scheme}://{user}{pass}{netloc}{path}
147 147
148 148 ## issue tracking mapping for commits messages
149 149 ## comment out issue_pat, issue_server, issue_prefix to enable
150 150
151 151 ## pattern to get the issues from commit messages
152 152 ## default one used here is #<numbers> with a regex passive group for `#`
153 153 ## {id} will be all groups matched from this pattern
154 154
155 155 issue_pat = (?:\s*#)(\d+)
156 156
157 157 ## server url to the issue, each {id} will be replaced with match
158 158 ## fetched from the regex and {repo} is replaced with full repository name
159 159 ## including groups {repo_name} is replaced with just name of repo
160 160
161 161 issue_server_link = https://myissueserver.com/{repo}/issue/{id}
162 162
163 163 ## prefix to add to link to indicate it's an url
164 164 ## #314 will be replaced by <issue_prefix><id>
165 165
166 166 issue_prefix = #
167 167
168 168 ## issue_pat, issue_server_link, issue_prefix can have suffixes to specify
169 169 ## multiple patterns, to other issues server, wiki or others
170 170 ## below an example how to create a wiki pattern
171 171 # #wiki-some-id -> https://mywiki.com/some-id
172 172
173 173 #issue_pat_wiki = (?:wiki-)(.+)
174 174 #issue_server_link_wiki = https://mywiki.com/{id}
175 175 #issue_prefix_wiki = WIKI-
176 176
177 177
178 178 ## instance-id prefix
179 179 ## a prefix key for this instance used for cache invalidation when running
180 180 ## multiple instances of rhodecode, make sure it's globally unique for
181 181 ## all running rhodecode instances. Leave empty if you don't use it
182 182 instance_id =
183 183
184 184 ## alternative return HTTP header for failed authentication. Default HTTP
185 185 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
186 186 ## handling that. Set this variable to 403 to return HTTPForbidden
187 187 auth_ret_code =
188 188
189 189 ## locking return code. When repository is locked return this HTTP code. 2XX
190 190 ## codes don't break the transactions while 4XX codes do
191 191 lock_ret_code = 423
192 192
193 193
194 194 ####################################
195 195 ### CELERY CONFIG ####
196 196 ####################################
197 197 use_celery = false
198 198 broker.host = localhost
199 199 broker.vhost = rabbitmqhost
200 200 broker.port = 5672
201 201 broker.user = rabbitmq
202 202 broker.password = qweqwe
203 203
204 204 celery.imports = kallithea.lib.celerylib.tasks
205 205
206 206 celery.result.backend = amqp
207 207 celery.result.dburi = amqp://
208 208 celery.result.serialier = json
209 209
210 210 #celery.send.task.error.emails = true
211 211 #celery.amqp.task.result.expires = 18000
212 212
213 213 celeryd.concurrency = 2
214 214 #celeryd.log.file = celeryd.log
215 215 celeryd.log.level = debug
216 216 celeryd.max.tasks.per.child = 1
217 217
218 218 ## tasks will never be sent to the queue, but executed locally instead.
219 219 celery.always.eager = false
220 220
221 221 ####################################
222 222 ### BEAKER CACHE ####
223 223 ####################################
224 224 beaker.cache.data_dir=/tmp/rc/data/cache/data
225 225 beaker.cache.lock_dir=/tmp/rc/data/cache/lock
226 226
227 227 beaker.cache.regions=super_short_term,short_term,long_term,sql_cache_short,sql_cache_med,sql_cache_long
228 228
229 229 beaker.cache.super_short_term.type=memory
230 230 beaker.cache.super_short_term.expire=1
231 231 beaker.cache.super_short_term.key_length = 256
232 232
233 233 beaker.cache.short_term.type=memory
234 234 beaker.cache.short_term.expire=60
235 235 beaker.cache.short_term.key_length = 256
236 236
237 237 beaker.cache.long_term.type=memory
238 238 beaker.cache.long_term.expire=36000
239 239 beaker.cache.long_term.key_length = 256
240 240
241 241 beaker.cache.sql_cache_short.type=memory
242 242 beaker.cache.sql_cache_short.expire=1
243 243 beaker.cache.sql_cache_short.key_length = 256
244 244
245 245 beaker.cache.sql_cache_med.type=memory
246 246 beaker.cache.sql_cache_med.expire=360
247 247 beaker.cache.sql_cache_med.key_length = 256
248 248
249 249 beaker.cache.sql_cache_long.type=file
250 250 beaker.cache.sql_cache_long.expire=3600
251 251 beaker.cache.sql_cache_long.key_length = 256
252 252
253 253 ####################################
254 254 ### BEAKER SESSION ####
255 255 ####################################
256 256 ## Type of storage used for the session, current types are
257 257 ## dbm, file, memcached, database, and memory.
258 258 ## The storage uses the Container API
259 259 ## that is also used by the cache system.
260 260
261 261 ## db session ##
262 262 #beaker.session.type = ext:database
263 263 #beaker.session.sa.url = postgresql://postgres:qwe@localhost/rhodecode
264 264 #beaker.session.table_name = db_session
265 265
266 266 ## encrypted cookie client side session, good for many instances ##
267 267 #beaker.session.type = cookie
268 268
269 269 ## file based cookies (default) ##
270 270 #beaker.session.type = file
271 271
272 272
273 273 beaker.session.key = rhodecode
274 274 ## secure cookie requires AES python libraries
275 275 #beaker.session.encrypt_key = <key_for_encryption>
276 276 #beaker.session.validate_key = <validation_key>
277 277
278 278 ## sets session as invalid if it haven't been accessed for given amount of time
279 279 beaker.session.timeout = 3600
280 280 beaker.session.httponly = true
281 281 #beaker.session.cookie_path = /<your-prefix>
282 282
283 283 ## uncomment for https secure cookie
284 284 beaker.session.secure = false
285 285
286 286 ## auto save the session to not to use .save()
287 287 beaker.session.auto = False
288 288
289 289 ## default cookie expiration time in seconds `true` expire at browser close ##
290 290 #beaker.session.cookie_expires = 3600
291 291
292 292
293 293 ############################
294 294 ## ERROR HANDLING SYSTEMS ##
295 295 ############################
296 296
297 297 ####################
298 298 ### [errormator] ###
299 299 ####################
300 300
301 301 ## Errormator is tailored to work with RhodeCode, see
302 302 ## http://errormator.com for details how to obtain an account
303 303 ## you must install python package `errormator_client` to make it work
304 304
305 305 ## errormator enabled
306 306 errormator = false
307 307
308 308 errormator.server_url = https://api.errormator.com
309 309 errormator.api_key = YOUR_API_KEY
310 310
311 311 ## TWEAK AMOUNT OF INFO SENT HERE
312 312
313 313 ## enables 404 error logging (default False)
314 314 errormator.report_404 = false
315 315
316 316 ## time in seconds after request is considered being slow (default 1)
317 317 errormator.slow_request_time = 1
318 318
319 319 ## record slow requests in application
320 320 ## (needs to be enabled for slow datastore recording and time tracking)
321 321 errormator.slow_requests = true
322 322
323 323 ## enable hooking to application loggers
324 324 # errormator.logging = true
325 325
326 326 ## minimum log level for log capture
327 327 # errormator.logging.level = WARNING
328 328
329 329 ## send logs only from erroneous/slow requests
330 330 ## (saves API quota for intensive logging)
331 331 errormator.logging_on_error = false
332 332
333 333 ## list of additonal keywords that should be grabbed from environ object
334 334 ## can be string with comma separated list of words in lowercase
335 335 ## (by default client will always send following info:
336 336 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
337 337 ## start with HTTP* this list be extended with additional keywords here
338 338 errormator.environ_keys_whitelist =
339 339
340 340
341 341 ## list of keywords that should be blanked from request object
342 342 ## can be string with comma separated list of words in lowercase
343 343 ## (by default client will always blank keys that contain following words
344 344 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
345 345 ## this list be extended with additional keywords set here
346 346 errormator.request_keys_blacklist =
347 347
348 348
349 349 ## list of namespaces that should be ignores when gathering log entries
350 350 ## can be string with comma separated list of namespaces
351 351 ## (by default the client ignores own entries: errormator_client.client)
352 352 errormator.log_namespace_blacklist =
353 353
354 354
355 355 ################
356 356 ### [sentry] ###
357 357 ################
358 358
359 359 ## sentry is a alternative open source error aggregator
360 360 ## you must install python packages `sentry` and `raven` to enable
361 361
362 362 sentry.dsn = YOUR_DNS
363 363 sentry.servers =
364 364 sentry.name =
365 365 sentry.key =
366 366 sentry.public_key =
367 367 sentry.secret_key =
368 368 sentry.project =
369 369 sentry.site =
370 370 sentry.include_paths =
371 371 sentry.exclude_paths =
372 372
373 373
374 374 ################################################################################
375 375 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
376 376 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
377 377 ## execute malicious code after an exception is raised. ##
378 378 ################################################################################
379 379 set debug = false
380 380
381 381 ##################################
382 382 ### LOGVIEW CONFIG ###
383 383 ##################################
384 384 logview.sqlalchemy = #faa
385 385 logview.pylons.templating = #bfb
386 386 logview.pylons.util = #eee
387 387
388 388 #########################################################
389 389 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
390 390 #########################################################
391 391 sqlalchemy.db1.url = sqlite:///%(here)s/kallithea_test.sqlite
392 392 #sqlalchemy.db1.url = postgresql://postgres:qwe@localhost/kallithea_test
393 393 #sqlalchemy.db1.url = mysql://root:qwe@localhost/kallithea_test
394 394 sqlalchemy.db1.echo = false
395 395 sqlalchemy.db1.pool_recycle = 3600
396 396 sqlalchemy.db1.convert_unicode = true
397 397
398 398 ################################
399 399 ### LOGGING CONFIGURATION ####
400 400 ################################
401 401 [loggers]
402 keys = root, routes, rhodecode, sqlalchemy, beaker, templates, whoosh_indexer
402 keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer
403 403
404 404 [handlers]
405 405 keys = console, console_sql
406 406
407 407 [formatters]
408 408 keys = generic, color_formatter, color_formatter_sql
409 409
410 410 #############
411 411 ## LOGGERS ##
412 412 #############
413 413 [logger_root]
414 414 level = DEBUG
415 415 handlers = console
416 416
417 417 [logger_routes]
418 418 level = DEBUG
419 419 handlers =
420 420 qualname = routes.middleware
421 421 ## "level = DEBUG" logs the route matched and routing variables.
422 422 propagate = 1
423 423
424 424 [logger_beaker]
425 425 level = DEBUG
426 426 handlers =
427 427 qualname = beaker.container
428 428 propagate = 1
429 429
430 430 [logger_templates]
431 431 level = INFO
432 432 handlers =
433 433 qualname = pylons.templating
434 434 propagate = 1
435 435
436 [logger_rhodecode]
436 [logger_kallithea]
437 437 level = DEBUG
438 438 handlers =
439 qualname = rhodecode
439 qualname = kallithea
440 440 propagate = 1
441 441
442 442 [logger_sqlalchemy]
443 443 level = ERROR
444 444 handlers = console
445 445 qualname = sqlalchemy.engine
446 446 propagate = 0
447 447
448 448 [logger_whoosh_indexer]
449 449 level = DEBUG
450 450 handlers =
451 451 qualname = whoosh_indexer
452 452 propagate = 1
453 453
454 454 ##############
455 455 ## HANDLERS ##
456 456 ##############
457 457
458 458 [handler_console]
459 459 class = StreamHandler
460 460 args = (sys.stderr,)
461 461 level = NOTSET
462 462 formatter = generic
463 463
464 464 [handler_console_sql]
465 465 class = StreamHandler
466 466 args = (sys.stderr,)
467 467 level = WARN
468 468 formatter = generic
469 469
470 470 ################
471 471 ## FORMATTERS ##
472 472 ################
473 473
474 474 [formatter_generic]
475 475 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
476 476 datefmt = %Y-%m-%d %H:%M:%S
477 477
478 478 [formatter_color_formatter]
479 479 class=kallithea.lib.colored_formatter.ColorFormatter
480 480 format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
481 481 datefmt = %Y-%m-%d %H:%M:%S
482 482
483 483 [formatter_color_formatter_sql]
484 484 class=kallithea.lib.colored_formatter.ColorFormatterSql
485 485 format= %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
486 486 datefmt = %Y-%m-%d %H:%M:%S
General Comments 0
You need to be logged in to leave comments. Login now