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