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