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