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