##// END OF EJS Templates
ssh: allow customizing the base_url for running application....
marcink -
r2188:397144e9 default
parent child Browse files
Show More
@@ -0,0 +1,43 b''
1 # -*- coding: utf-8 -*-
2
3 # Copyright (C) 2016-2017 RhodeCode GmbH
4 #
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License, version 3
7 # (only), as published by the Free Software Foundation.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU Affero General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 #
17 # This program is dual-licensed. If you wish to learn more about the
18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20
21 import ConfigParser
22 from pyramid.paster import bootstrap as pyramid_bootstrap
23 from pyramid.request import Request
24
25
26 def get_config(ini_path):
27 parser = ConfigParser.ConfigParser()
28 parser.read(ini_path)
29 return parser
30
31
32 def bootstrap(config_uri, request=None, options=None):
33
34 config = get_config(config_uri)
35 base_url = 'http://rhodecode.local'
36 try:
37 base_url = config.get('app:main', 'app.base_url')
38 except (ConfigParser.NoSectionError, ConfigParser.NoOptionError):
39 pass
40
41 request = request or Request.blank('/', base_url=base_url)
42
43 return pyramid_bootstrap(config_uri, request=request, options=options)
@@ -1,720 +1,725 b''
1
1
2
2
3 ################################################################################
3 ################################################################################
4 ## RHODECODE COMMUNITY EDITION CONFIGURATION ##
4 ## RHODECODE COMMUNITY EDITION CONFIGURATION ##
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
10
11 ################################################################################
11 ################################################################################
12 ## EMAIL CONFIGURATION ##
12 ## EMAIL CONFIGURATION ##
13 ## Uncomment and replace with the email address which should receive ##
13 ## Uncomment and replace with the email address which should receive ##
14 ## any error reports after an application crash ##
14 ## any error reports after an application crash ##
15 ## Additionally these settings will be used by the RhodeCode mailing system ##
15 ## Additionally these settings will be used by the RhodeCode mailing system ##
16 ################################################################################
16 ################################################################################
17
17
18 ## prefix all emails subjects with given prefix, helps filtering out emails
18 ## prefix all emails subjects with given prefix, helps filtering out emails
19 #email_prefix = [RhodeCode]
19 #email_prefix = [RhodeCode]
20
20
21 ## email FROM address all mails will be sent
21 ## email FROM address all mails will be sent
22 #app_email_from = rhodecode-noreply@localhost
22 #app_email_from = rhodecode-noreply@localhost
23
23
24 ## Uncomment and replace with the address which should receive any error report
24 ## Uncomment and replace with the address which should receive any error report
25 ## note: using appenlight for error handling doesn't need this to be uncommented
25 ## note: using appenlight for error handling doesn't need this to be uncommented
26 #email_to = admin@localhost
26 #email_to = admin@localhost
27
27
28 ## in case of Application errors, sent an error email form
28 ## in case of Application errors, sent an error email form
29 #error_email_from = rhodecode_error@localhost
29 #error_email_from = rhodecode_error@localhost
30
30
31 ## additional error message to be send in case of server crash
31 ## additional error message to be send in case of server crash
32 #error_message =
32 #error_message =
33
33
34
34
35 #smtp_server = mail.server.com
35 #smtp_server = mail.server.com
36 #smtp_username =
36 #smtp_username =
37 #smtp_password =
37 #smtp_password =
38 #smtp_port =
38 #smtp_port =
39 #smtp_use_tls = false
39 #smtp_use_tls = false
40 #smtp_use_ssl = true
40 #smtp_use_ssl = true
41 ## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
41 ## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
42 #smtp_auth =
42 #smtp_auth =
43
43
44 [server:main]
44 [server:main]
45 ## COMMON ##
45 ## COMMON ##
46 host = 127.0.0.1
46 host = 127.0.0.1
47 port = 5000
47 port = 5000
48
48
49 ##################################
49 ##################################
50 ## WAITRESS WSGI SERVER ##
50 ## WAITRESS WSGI SERVER ##
51 ## Recommended for Development ##
51 ## Recommended for Development ##
52 ##################################
52 ##################################
53
53
54 use = egg:waitress#main
54 use = egg:waitress#main
55 ## number of worker threads
55 ## number of worker threads
56 threads = 5
56 threads = 5
57 ## MAX BODY SIZE 100GB
57 ## MAX BODY SIZE 100GB
58 max_request_body_size = 107374182400
58 max_request_body_size = 107374182400
59 ## Use poll instead of select, fixes file descriptors limits problems.
59 ## Use poll instead of select, fixes file descriptors limits problems.
60 ## May not work on old windows systems.
60 ## May not work on old windows systems.
61 asyncore_use_poll = true
61 asyncore_use_poll = true
62
62
63
63
64 ##########################
64 ##########################
65 ## GUNICORN WSGI SERVER ##
65 ## GUNICORN WSGI SERVER ##
66 ##########################
66 ##########################
67 ## run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini
67 ## run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini
68
68
69 #use = egg:gunicorn#main
69 #use = egg:gunicorn#main
70 ## Sets the number of process workers. You must set `instance_id = *`
70 ## Sets the number of process workers. You must set `instance_id = *`
71 ## when this option is set to more than one worker, recommended
71 ## when this option is set to more than one worker, recommended
72 ## value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers
72 ## value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers
73 ## The `instance_id = *` must be set in the [app:main] section below
73 ## The `instance_id = *` must be set in the [app:main] section below
74 #workers = 2
74 #workers = 2
75 ## number of threads for each of the worker, must be set to 1 for gevent
75 ## number of threads for each of the worker, must be set to 1 for gevent
76 ## generally recommended to be at 1
76 ## generally recommended to be at 1
77 #threads = 1
77 #threads = 1
78 ## process name
78 ## process name
79 #proc_name = rhodecode
79 #proc_name = rhodecode
80 ## type of worker class, one of sync, gevent
80 ## type of worker class, one of sync, gevent
81 ## recommended for bigger setup is using of of other than sync one
81 ## recommended for bigger setup is using of of other than sync one
82 #worker_class = sync
82 #worker_class = sync
83 ## The maximum number of simultaneous clients. Valid only for Gevent
83 ## The maximum number of simultaneous clients. Valid only for Gevent
84 #worker_connections = 10
84 #worker_connections = 10
85 ## max number of requests that worker will handle before being gracefully
85 ## max number of requests that worker will handle before being gracefully
86 ## restarted, could prevent memory leaks
86 ## restarted, could prevent memory leaks
87 #max_requests = 1000
87 #max_requests = 1000
88 #max_requests_jitter = 30
88 #max_requests_jitter = 30
89 ## amount of time a worker can spend with handling a request before it
89 ## amount of time a worker can spend with handling a request before it
90 ## gets killed and restarted. Set to 6hrs
90 ## gets killed and restarted. Set to 6hrs
91 #timeout = 21600
91 #timeout = 21600
92
92
93
93
94 ## prefix middleware for RhodeCode.
94 ## prefix middleware for RhodeCode.
95 ## recommended when using proxy setup.
95 ## recommended when using proxy setup.
96 ## allows to set RhodeCode under a prefix in server.
96 ## allows to set RhodeCode under a prefix in server.
97 ## eg https://server.com/custom_prefix. Enable `filter-with =` option below as well.
97 ## eg https://server.com/custom_prefix. Enable `filter-with =` option below as well.
98 ## And set your prefix like: `prefix = /custom_prefix`
98 ## And set your prefix like: `prefix = /custom_prefix`
99 ## be sure to also set beaker.session.cookie_path = /custom_prefix if you need
99 ## be sure to also set beaker.session.cookie_path = /custom_prefix if you need
100 ## to make your cookies only work on prefix url
100 ## to make your cookies only work on prefix url
101 [filter:proxy-prefix]
101 [filter:proxy-prefix]
102 use = egg:PasteDeploy#prefix
102 use = egg:PasteDeploy#prefix
103 prefix = /
103 prefix = /
104
104
105 [app:main]
105 [app:main]
106 use = egg:rhodecode-enterprise-ce
106 use = egg:rhodecode-enterprise-ce
107
107
108 ## enable proxy prefix middleware, defined above
108 ## enable proxy prefix middleware, defined above
109 #filter-with = proxy-prefix
109 #filter-with = proxy-prefix
110
110
111 # During development the we want to have the debug toolbar enabled
111 # During development the we want to have the debug toolbar enabled
112 pyramid.includes =
112 pyramid.includes =
113 pyramid_debugtoolbar
113 pyramid_debugtoolbar
114 rhodecode.lib.middleware.request_wrapper
114 rhodecode.lib.middleware.request_wrapper
115
115
116 pyramid.reload_templates = true
116 pyramid.reload_templates = true
117
117
118 debugtoolbar.hosts = 0.0.0.0/0
118 debugtoolbar.hosts = 0.0.0.0/0
119 debugtoolbar.exclude_prefixes =
119 debugtoolbar.exclude_prefixes =
120 /css
120 /css
121 /fonts
121 /fonts
122 /images
122 /images
123 /js
123 /js
124
124
125 ## RHODECODE PLUGINS ##
125 ## RHODECODE PLUGINS ##
126 rhodecode.includes =
126 rhodecode.includes =
127 rhodecode.api
127 rhodecode.api
128
128
129
129
130 # api prefix url
130 # api prefix url
131 rhodecode.api.url = /_admin/api
131 rhodecode.api.url = /_admin/api
132
132
133
133
134 ## END RHODECODE PLUGINS ##
134 ## END RHODECODE PLUGINS ##
135
135
136 ## encryption key used to encrypt social plugin tokens,
136 ## encryption key used to encrypt social plugin tokens,
137 ## remote_urls with credentials etc, if not set it defaults to
137 ## remote_urls with credentials etc, if not set it defaults to
138 ## `beaker.session.secret`
138 ## `beaker.session.secret`
139 #rhodecode.encrypted_values.secret =
139 #rhodecode.encrypted_values.secret =
140
140
141 ## decryption strict mode (enabled by default). It controls if decryption raises
141 ## decryption strict mode (enabled by default). It controls if decryption raises
142 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
142 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
143 #rhodecode.encrypted_values.strict = false
143 #rhodecode.encrypted_values.strict = false
144
144
145 ## return gzipped responses from Rhodecode (static files/application)
145 ## return gzipped responses from Rhodecode (static files/application)
146 gzip_responses = false
146 gzip_responses = false
147
147
148 ## autogenerate javascript routes file on startup
148 ## autogenerate javascript routes file on startup
149 generate_js_files = false
149 generate_js_files = false
150
150
151 ## Optional Languages
151 ## Optional Languages
152 ## en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
152 ## en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
153 lang = en
153 lang = en
154
154
155 ## perform a full repository scan on each server start, this should be
155 ## perform a full repository scan on each server start, this should be
156 ## set to false after first startup, to allow faster server restarts.
156 ## set to false after first startup, to allow faster server restarts.
157 startup.import_repos = false
157 startup.import_repos = false
158
158
159 ## Uncomment and set this path to use archive download cache.
159 ## Uncomment and set this path to use archive download cache.
160 ## Once enabled, generated archives will be cached at this location
160 ## Once enabled, generated archives will be cached at this location
161 ## and served from the cache during subsequent requests for the same archive of
161 ## and served from the cache during subsequent requests for the same archive of
162 ## the repository.
162 ## the repository.
163 #archive_cache_dir = /tmp/tarballcache
163 #archive_cache_dir = /tmp/tarballcache
164
164
165 ## URL at which the application is running. This is used for bootstraping
166 ## requests in context when no web request is available. Used in ishell, or
167 ## SSH calls. Set this for events to receive proper url for SSH calls.
168 app.base_url = http://rhodecode.local
169
165 ## change this to unique ID for security
170 ## change this to unique ID for security
166 app_instance_uuid = rc-production
171 app_instance_uuid = rc-production
167
172
168 ## cut off limit for large diffs (size in bytes). If overall diff size on
173 ## cut off limit for large diffs (size in bytes). If overall diff size on
169 ## commit, or pull request exceeds this limit this diff will be displayed
174 ## commit, or pull request exceeds this limit this diff will be displayed
170 ## partially. E.g 512000 == 512Kb
175 ## partially. E.g 512000 == 512Kb
171 cut_off_limit_diff = 512000
176 cut_off_limit_diff = 512000
172
177
173 ## cut off limit for large files inside diffs (size in bytes). Each individual
178 ## cut off limit for large files inside diffs (size in bytes). Each individual
174 ## file inside diff which exceeds this limit will be displayed partially.
179 ## file inside diff which exceeds this limit will be displayed partially.
175 ## E.g 128000 == 128Kb
180 ## E.g 128000 == 128Kb
176 cut_off_limit_file = 128000
181 cut_off_limit_file = 128000
177
182
178 ## use cache version of scm repo everywhere
183 ## use cache version of scm repo everywhere
179 vcs_full_cache = true
184 vcs_full_cache = true
180
185
181 ## force https in RhodeCode, fixes https redirects, assumes it's always https
186 ## force https in RhodeCode, fixes https redirects, assumes it's always https
182 ## Normally this is controlled by proper http flags sent from http server
187 ## Normally this is controlled by proper http flags sent from http server
183 force_https = false
188 force_https = false
184
189
185 ## use Strict-Transport-Security headers
190 ## use Strict-Transport-Security headers
186 use_htsts = false
191 use_htsts = false
187
192
188 ## number of commits stats will parse on each iteration
193 ## number of commits stats will parse on each iteration
189 commit_parse_limit = 25
194 commit_parse_limit = 25
190
195
191 ## git rev filter option, --all is the default filter, if you need to
196 ## git rev filter option, --all is the default filter, if you need to
192 ## hide all refs in changelog switch this to --branches --tags
197 ## hide all refs in changelog switch this to --branches --tags
193 git_rev_filter = --branches --tags
198 git_rev_filter = --branches --tags
194
199
195 # Set to true if your repos are exposed using the dumb protocol
200 # Set to true if your repos are exposed using the dumb protocol
196 git_update_server_info = false
201 git_update_server_info = false
197
202
198 ## RSS/ATOM feed options
203 ## RSS/ATOM feed options
199 rss_cut_off_limit = 256000
204 rss_cut_off_limit = 256000
200 rss_items_per_page = 10
205 rss_items_per_page = 10
201 rss_include_diff = false
206 rss_include_diff = false
202
207
203 ## gist URL alias, used to create nicer urls for gist. This should be an
208 ## gist URL alias, used to create nicer urls for gist. This should be an
204 ## url that does rewrites to _admin/gists/{gistid}.
209 ## url that does rewrites to _admin/gists/{gistid}.
205 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
210 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
206 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/{gistid}
211 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/{gistid}
207 gist_alias_url =
212 gist_alias_url =
208
213
209 ## List of views (using glob pattern syntax) that AUTH TOKENS could be
214 ## List of views (using glob pattern syntax) that AUTH TOKENS could be
210 ## used for access.
215 ## used for access.
211 ## Adding ?auth_token=TOKEN_HASH to the url authenticates this request as if it
216 ## Adding ?auth_token=TOKEN_HASH to the url authenticates this request as if it
212 ## came from the the logged in user who own this authentication token.
217 ## came from the the logged in user who own this authentication token.
213 ## Additionally @TOKEN syntaxt can be used to bound the view to specific
218 ## Additionally @TOKEN syntaxt can be used to bound the view to specific
214 ## authentication token. Such view would be only accessible when used together
219 ## authentication token. Such view would be only accessible when used together
215 ## with this authentication token
220 ## with this authentication token
216 ##
221 ##
217 ## list of all views can be found under `/_admin/permissions/auth_token_access`
222 ## list of all views can be found under `/_admin/permissions/auth_token_access`
218 ## The list should be "," separated and on a single line.
223 ## The list should be "," separated and on a single line.
219 ##
224 ##
220 ## Most common views to enable:
225 ## Most common views to enable:
221 # RepoCommitsView:repo_commit_download
226 # RepoCommitsView:repo_commit_download
222 # RepoCommitsView:repo_commit_patch
227 # RepoCommitsView:repo_commit_patch
223 # RepoCommitsView:repo_commit_raw
228 # RepoCommitsView:repo_commit_raw
224 # RepoCommitsView:repo_commit_raw@TOKEN
229 # RepoCommitsView:repo_commit_raw@TOKEN
225 # RepoFilesView:repo_files_diff
230 # RepoFilesView:repo_files_diff
226 # RepoFilesView:repo_archivefile
231 # RepoFilesView:repo_archivefile
227 # RepoFilesView:repo_file_raw
232 # RepoFilesView:repo_file_raw
228 # GistView:*
233 # GistView:*
229 api_access_controllers_whitelist =
234 api_access_controllers_whitelist =
230
235
231 ## default encoding used to convert from and to unicode
236 ## default encoding used to convert from and to unicode
232 ## can be also a comma separated list of encoding in case of mixed encodings
237 ## can be also a comma separated list of encoding in case of mixed encodings
233 default_encoding = UTF-8
238 default_encoding = UTF-8
234
239
235 ## instance-id prefix
240 ## instance-id prefix
236 ## a prefix key for this instance used for cache invalidation when running
241 ## a prefix key for this instance used for cache invalidation when running
237 ## multiple instances of rhodecode, make sure it's globally unique for
242 ## multiple instances of rhodecode, make sure it's globally unique for
238 ## all running rhodecode instances. Leave empty if you don't use it
243 ## all running rhodecode instances. Leave empty if you don't use it
239 instance_id =
244 instance_id =
240
245
241 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
246 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
242 ## of an authentication plugin also if it is disabled by it's settings.
247 ## of an authentication plugin also if it is disabled by it's settings.
243 ## This could be useful if you are unable to log in to the system due to broken
248 ## This could be useful if you are unable to log in to the system due to broken
244 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
249 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
245 ## module to log in again and fix the settings.
250 ## module to log in again and fix the settings.
246 ##
251 ##
247 ## Available builtin plugin IDs (hash is part of the ID):
252 ## Available builtin plugin IDs (hash is part of the ID):
248 ## egg:rhodecode-enterprise-ce#rhodecode
253 ## egg:rhodecode-enterprise-ce#rhodecode
249 ## egg:rhodecode-enterprise-ce#pam
254 ## egg:rhodecode-enterprise-ce#pam
250 ## egg:rhodecode-enterprise-ce#ldap
255 ## egg:rhodecode-enterprise-ce#ldap
251 ## egg:rhodecode-enterprise-ce#jasig_cas
256 ## egg:rhodecode-enterprise-ce#jasig_cas
252 ## egg:rhodecode-enterprise-ce#headers
257 ## egg:rhodecode-enterprise-ce#headers
253 ## egg:rhodecode-enterprise-ce#crowd
258 ## egg:rhodecode-enterprise-ce#crowd
254 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
259 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
255
260
256 ## alternative return HTTP header for failed authentication. Default HTTP
261 ## alternative return HTTP header for failed authentication. Default HTTP
257 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
262 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
258 ## handling that causing a series of failed authentication calls.
263 ## handling that causing a series of failed authentication calls.
259 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
264 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
260 ## This will be served instead of default 401 on bad authnetication
265 ## This will be served instead of default 401 on bad authnetication
261 auth_ret_code =
266 auth_ret_code =
262
267
263 ## use special detection method when serving auth_ret_code, instead of serving
268 ## use special detection method when serving auth_ret_code, instead of serving
264 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
269 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
265 ## and then serve auth_ret_code to clients
270 ## and then serve auth_ret_code to clients
266 auth_ret_code_detection = false
271 auth_ret_code_detection = false
267
272
268 ## locking return code. When repository is locked return this HTTP code. 2XX
273 ## locking return code. When repository is locked return this HTTP code. 2XX
269 ## codes don't break the transactions while 4XX codes do
274 ## codes don't break the transactions while 4XX codes do
270 lock_ret_code = 423
275 lock_ret_code = 423
271
276
272 ## allows to change the repository location in settings page
277 ## allows to change the repository location in settings page
273 allow_repo_location_change = true
278 allow_repo_location_change = true
274
279
275 ## allows to setup custom hooks in settings page
280 ## allows to setup custom hooks in settings page
276 allow_custom_hooks_settings = true
281 allow_custom_hooks_settings = true
277
282
278 ## generated license token, goto license page in RhodeCode settings to obtain
283 ## generated license token, goto license page in RhodeCode settings to obtain
279 ## new token
284 ## new token
280 license_token =
285 license_token =
281
286
282 ## supervisor connection uri, for managing supervisor and logs.
287 ## supervisor connection uri, for managing supervisor and logs.
283 supervisor.uri =
288 supervisor.uri =
284 ## supervisord group name/id we only want this RC instance to handle
289 ## supervisord group name/id we only want this RC instance to handle
285 supervisor.group_id = dev
290 supervisor.group_id = dev
286
291
287 ## Display extended labs settings
292 ## Display extended labs settings
288 labs_settings_active = true
293 labs_settings_active = true
289
294
290 ####################################
295 ####################################
291 ### CELERY CONFIG ####
296 ### CELERY CONFIG ####
292 ####################################
297 ####################################
293 use_celery = false
298 use_celery = false
294 broker.host = localhost
299 broker.host = localhost
295 broker.vhost = rabbitmqhost
300 broker.vhost = rabbitmqhost
296 broker.port = 5672
301 broker.port = 5672
297 broker.user = rabbitmq
302 broker.user = rabbitmq
298 broker.password = qweqwe
303 broker.password = qweqwe
299
304
300 celery.imports = rhodecode.lib.celerylib.tasks
305 celery.imports = rhodecode.lib.celerylib.tasks
301
306
302 celery.result.backend = amqp
307 celery.result.backend = amqp
303 celery.result.dburi = amqp://
308 celery.result.dburi = amqp://
304 celery.result.serialier = json
309 celery.result.serialier = json
305
310
306 #celery.send.task.error.emails = true
311 #celery.send.task.error.emails = true
307 #celery.amqp.task.result.expires = 18000
312 #celery.amqp.task.result.expires = 18000
308
313
309 celeryd.concurrency = 2
314 celeryd.concurrency = 2
310 #celeryd.log.file = celeryd.log
315 #celeryd.log.file = celeryd.log
311 celeryd.log.level = debug
316 celeryd.log.level = debug
312 celeryd.max.tasks.per.child = 1
317 celeryd.max.tasks.per.child = 1
313
318
314 ## tasks will never be sent to the queue, but executed locally instead.
319 ## tasks will never be sent to the queue, but executed locally instead.
315 celery.always.eager = false
320 celery.always.eager = false
316
321
317 ####################################
322 ####################################
318 ### BEAKER CACHE ####
323 ### BEAKER CACHE ####
319 ####################################
324 ####################################
320 # default cache dir for templates. Putting this into a ramdisk
325 # default cache dir for templates. Putting this into a ramdisk
321 ## can boost performance, eg. %(here)s/data_ramdisk
326 ## can boost performance, eg. %(here)s/data_ramdisk
322 cache_dir = %(here)s/data
327 cache_dir = %(here)s/data
323
328
324 ## locking and default file storage for Beaker. Putting this into a ramdisk
329 ## locking and default file storage for Beaker. Putting this into a ramdisk
325 ## can boost performance, eg. %(here)s/data_ramdisk/cache/beaker_data
330 ## can boost performance, eg. %(here)s/data_ramdisk/cache/beaker_data
326 beaker.cache.data_dir = %(here)s/data/cache/beaker_data
331 beaker.cache.data_dir = %(here)s/data/cache/beaker_data
327 beaker.cache.lock_dir = %(here)s/data/cache/beaker_lock
332 beaker.cache.lock_dir = %(here)s/data/cache/beaker_lock
328
333
329 beaker.cache.regions = super_short_term, short_term, long_term, sql_cache_short, auth_plugins, repo_cache_long
334 beaker.cache.regions = super_short_term, short_term, long_term, sql_cache_short, auth_plugins, repo_cache_long
330
335
331 beaker.cache.super_short_term.type = memory
336 beaker.cache.super_short_term.type = memory
332 beaker.cache.super_short_term.expire = 10
337 beaker.cache.super_short_term.expire = 10
333 beaker.cache.super_short_term.key_length = 256
338 beaker.cache.super_short_term.key_length = 256
334
339
335 beaker.cache.short_term.type = memory
340 beaker.cache.short_term.type = memory
336 beaker.cache.short_term.expire = 60
341 beaker.cache.short_term.expire = 60
337 beaker.cache.short_term.key_length = 256
342 beaker.cache.short_term.key_length = 256
338
343
339 beaker.cache.long_term.type = memory
344 beaker.cache.long_term.type = memory
340 beaker.cache.long_term.expire = 36000
345 beaker.cache.long_term.expire = 36000
341 beaker.cache.long_term.key_length = 256
346 beaker.cache.long_term.key_length = 256
342
347
343 beaker.cache.sql_cache_short.type = memory
348 beaker.cache.sql_cache_short.type = memory
344 beaker.cache.sql_cache_short.expire = 10
349 beaker.cache.sql_cache_short.expire = 10
345 beaker.cache.sql_cache_short.key_length = 256
350 beaker.cache.sql_cache_short.key_length = 256
346
351
347 ## default is memory cache, configure only if required
352 ## default is memory cache, configure only if required
348 ## using multi-node or multi-worker setup
353 ## using multi-node or multi-worker setup
349 #beaker.cache.auth_plugins.type = ext:database
354 #beaker.cache.auth_plugins.type = ext:database
350 #beaker.cache.auth_plugins.lock_dir = %(here)s/data/cache/auth_plugin_lock
355 #beaker.cache.auth_plugins.lock_dir = %(here)s/data/cache/auth_plugin_lock
351 #beaker.cache.auth_plugins.url = postgresql://postgres:secret@localhost/rhodecode
356 #beaker.cache.auth_plugins.url = postgresql://postgres:secret@localhost/rhodecode
352 #beaker.cache.auth_plugins.url = mysql://root:secret@127.0.0.1/rhodecode
357 #beaker.cache.auth_plugins.url = mysql://root:secret@127.0.0.1/rhodecode
353 #beaker.cache.auth_plugins.sa.pool_recycle = 3600
358 #beaker.cache.auth_plugins.sa.pool_recycle = 3600
354 #beaker.cache.auth_plugins.sa.pool_size = 10
359 #beaker.cache.auth_plugins.sa.pool_size = 10
355 #beaker.cache.auth_plugins.sa.max_overflow = 0
360 #beaker.cache.auth_plugins.sa.max_overflow = 0
356
361
357 beaker.cache.repo_cache_long.type = memorylru_base
362 beaker.cache.repo_cache_long.type = memorylru_base
358 beaker.cache.repo_cache_long.max_items = 4096
363 beaker.cache.repo_cache_long.max_items = 4096
359 beaker.cache.repo_cache_long.expire = 2592000
364 beaker.cache.repo_cache_long.expire = 2592000
360
365
361 ## default is memorylru_base cache, configure only if required
366 ## default is memorylru_base cache, configure only if required
362 ## using multi-node or multi-worker setup
367 ## using multi-node or multi-worker setup
363 #beaker.cache.repo_cache_long.type = ext:memcached
368 #beaker.cache.repo_cache_long.type = ext:memcached
364 #beaker.cache.repo_cache_long.url = localhost:11211
369 #beaker.cache.repo_cache_long.url = localhost:11211
365 #beaker.cache.repo_cache_long.expire = 1209600
370 #beaker.cache.repo_cache_long.expire = 1209600
366 #beaker.cache.repo_cache_long.key_length = 256
371 #beaker.cache.repo_cache_long.key_length = 256
367
372
368 ####################################
373 ####################################
369 ### BEAKER SESSION ####
374 ### BEAKER SESSION ####
370 ####################################
375 ####################################
371
376
372 ## .session.type is type of storage options for the session, current allowed
377 ## .session.type is type of storage options for the session, current allowed
373 ## types are file, ext:memcached, ext:database, and memory (default).
378 ## types are file, ext:memcached, ext:database, and memory (default).
374 beaker.session.type = file
379 beaker.session.type = file
375 beaker.session.data_dir = %(here)s/data/sessions/data
380 beaker.session.data_dir = %(here)s/data/sessions/data
376
381
377 ## db based session, fast, and allows easy management over logged in users
382 ## db based session, fast, and allows easy management over logged in users
378 #beaker.session.type = ext:database
383 #beaker.session.type = ext:database
379 #beaker.session.table_name = db_session
384 #beaker.session.table_name = db_session
380 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
385 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
381 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
386 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
382 #beaker.session.sa.pool_recycle = 3600
387 #beaker.session.sa.pool_recycle = 3600
383 #beaker.session.sa.echo = false
388 #beaker.session.sa.echo = false
384
389
385 beaker.session.key = rhodecode
390 beaker.session.key = rhodecode
386 beaker.session.secret = develop-rc-uytcxaz
391 beaker.session.secret = develop-rc-uytcxaz
387 beaker.session.lock_dir = %(here)s/data/sessions/lock
392 beaker.session.lock_dir = %(here)s/data/sessions/lock
388
393
389 ## Secure encrypted cookie. Requires AES and AES python libraries
394 ## Secure encrypted cookie. Requires AES and AES python libraries
390 ## you must disable beaker.session.secret to use this
395 ## you must disable beaker.session.secret to use this
391 #beaker.session.encrypt_key = key_for_encryption
396 #beaker.session.encrypt_key = key_for_encryption
392 #beaker.session.validate_key = validation_key
397 #beaker.session.validate_key = validation_key
393
398
394 ## sets session as invalid(also logging out user) if it haven not been
399 ## sets session as invalid(also logging out user) if it haven not been
395 ## accessed for given amount of time in seconds
400 ## accessed for given amount of time in seconds
396 beaker.session.timeout = 2592000
401 beaker.session.timeout = 2592000
397 beaker.session.httponly = true
402 beaker.session.httponly = true
398 ## Path to use for the cookie. Set to prefix if you use prefix middleware
403 ## Path to use for the cookie. Set to prefix if you use prefix middleware
399 #beaker.session.cookie_path = /custom_prefix
404 #beaker.session.cookie_path = /custom_prefix
400
405
401 ## uncomment for https secure cookie
406 ## uncomment for https secure cookie
402 beaker.session.secure = false
407 beaker.session.secure = false
403
408
404 ## auto save the session to not to use .save()
409 ## auto save the session to not to use .save()
405 beaker.session.auto = false
410 beaker.session.auto = false
406
411
407 ## default cookie expiration time in seconds, set to `true` to set expire
412 ## default cookie expiration time in seconds, set to `true` to set expire
408 ## at browser close
413 ## at browser close
409 #beaker.session.cookie_expires = 3600
414 #beaker.session.cookie_expires = 3600
410
415
411 ###################################
416 ###################################
412 ## SEARCH INDEXING CONFIGURATION ##
417 ## SEARCH INDEXING CONFIGURATION ##
413 ###################################
418 ###################################
414 ## Full text search indexer is available in rhodecode-tools under
419 ## Full text search indexer is available in rhodecode-tools under
415 ## `rhodecode-tools index` command
420 ## `rhodecode-tools index` command
416
421
417 ## WHOOSH Backend, doesn't require additional services to run
422 ## WHOOSH Backend, doesn't require additional services to run
418 ## it works good with few dozen repos
423 ## it works good with few dozen repos
419 search.module = rhodecode.lib.index.whoosh
424 search.module = rhodecode.lib.index.whoosh
420 search.location = %(here)s/data/index
425 search.location = %(here)s/data/index
421
426
422 ########################################
427 ########################################
423 ### CHANNELSTREAM CONFIG ####
428 ### CHANNELSTREAM CONFIG ####
424 ########################################
429 ########################################
425 ## channelstream enables persistent connections and live notification
430 ## channelstream enables persistent connections and live notification
426 ## in the system. It's also used by the chat system
431 ## in the system. It's also used by the chat system
427 channelstream.enabled = false
432 channelstream.enabled = false
428
433
429 ## server address for channelstream server on the backend
434 ## server address for channelstream server on the backend
430 channelstream.server = 127.0.0.1:9800
435 channelstream.server = 127.0.0.1:9800
431
436
432 ## location of the channelstream server from outside world
437 ## location of the channelstream server from outside world
433 ## use ws:// for http or wss:// for https. This address needs to be handled
438 ## use ws:// for http or wss:// for https. This address needs to be handled
434 ## by external HTTP server such as Nginx or Apache
439 ## by external HTTP server such as Nginx or Apache
435 ## see nginx/apache configuration examples in our docs
440 ## see nginx/apache configuration examples in our docs
436 channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
441 channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
437 channelstream.secret = secret
442 channelstream.secret = secret
438 channelstream.history.location = %(here)s/channelstream_history
443 channelstream.history.location = %(here)s/channelstream_history
439
444
440 ## Internal application path that Javascript uses to connect into.
445 ## Internal application path that Javascript uses to connect into.
441 ## If you use proxy-prefix the prefix should be added before /_channelstream
446 ## If you use proxy-prefix the prefix should be added before /_channelstream
442 channelstream.proxy_path = /_channelstream
447 channelstream.proxy_path = /_channelstream
443
448
444
449
445 ###################################
450 ###################################
446 ## APPENLIGHT CONFIG ##
451 ## APPENLIGHT CONFIG ##
447 ###################################
452 ###################################
448
453
449 ## Appenlight is tailored to work with RhodeCode, see
454 ## Appenlight is tailored to work with RhodeCode, see
450 ## http://appenlight.com for details how to obtain an account
455 ## http://appenlight.com for details how to obtain an account
451
456
452 ## appenlight integration enabled
457 ## appenlight integration enabled
453 appenlight = false
458 appenlight = false
454
459
455 appenlight.server_url = https://api.appenlight.com
460 appenlight.server_url = https://api.appenlight.com
456 appenlight.api_key = YOUR_API_KEY
461 appenlight.api_key = YOUR_API_KEY
457 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
462 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
458
463
459 # used for JS client
464 # used for JS client
460 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
465 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
461
466
462 ## TWEAK AMOUNT OF INFO SENT HERE
467 ## TWEAK AMOUNT OF INFO SENT HERE
463
468
464 ## enables 404 error logging (default False)
469 ## enables 404 error logging (default False)
465 appenlight.report_404 = false
470 appenlight.report_404 = false
466
471
467 ## time in seconds after request is considered being slow (default 1)
472 ## time in seconds after request is considered being slow (default 1)
468 appenlight.slow_request_time = 1
473 appenlight.slow_request_time = 1
469
474
470 ## record slow requests in application
475 ## record slow requests in application
471 ## (needs to be enabled for slow datastore recording and time tracking)
476 ## (needs to be enabled for slow datastore recording and time tracking)
472 appenlight.slow_requests = true
477 appenlight.slow_requests = true
473
478
474 ## enable hooking to application loggers
479 ## enable hooking to application loggers
475 appenlight.logging = true
480 appenlight.logging = true
476
481
477 ## minimum log level for log capture
482 ## minimum log level for log capture
478 appenlight.logging.level = WARNING
483 appenlight.logging.level = WARNING
479
484
480 ## send logs only from erroneous/slow requests
485 ## send logs only from erroneous/slow requests
481 ## (saves API quota for intensive logging)
486 ## (saves API quota for intensive logging)
482 appenlight.logging_on_error = false
487 appenlight.logging_on_error = false
483
488
484 ## list of additonal keywords that should be grabbed from environ object
489 ## list of additonal keywords that should be grabbed from environ object
485 ## can be string with comma separated list of words in lowercase
490 ## can be string with comma separated list of words in lowercase
486 ## (by default client will always send following info:
491 ## (by default client will always send following info:
487 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
492 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
488 ## start with HTTP* this list be extended with additional keywords here
493 ## start with HTTP* this list be extended with additional keywords here
489 appenlight.environ_keys_whitelist =
494 appenlight.environ_keys_whitelist =
490
495
491 ## list of keywords that should be blanked from request object
496 ## list of keywords that should be blanked from request object
492 ## can be string with comma separated list of words in lowercase
497 ## can be string with comma separated list of words in lowercase
493 ## (by default client will always blank keys that contain following words
498 ## (by default client will always blank keys that contain following words
494 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
499 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
495 ## this list be extended with additional keywords set here
500 ## this list be extended with additional keywords set here
496 appenlight.request_keys_blacklist =
501 appenlight.request_keys_blacklist =
497
502
498 ## list of namespaces that should be ignores when gathering log entries
503 ## list of namespaces that should be ignores when gathering log entries
499 ## can be string with comma separated list of namespaces
504 ## can be string with comma separated list of namespaces
500 ## (by default the client ignores own entries: appenlight_client.client)
505 ## (by default the client ignores own entries: appenlight_client.client)
501 appenlight.log_namespace_blacklist =
506 appenlight.log_namespace_blacklist =
502
507
503
508
504 ################################################################################
509 ################################################################################
505 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
510 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
506 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
511 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
507 ## execute malicious code after an exception is raised. ##
512 ## execute malicious code after an exception is raised. ##
508 ################################################################################
513 ################################################################################
509 #set debug = false
514 #set debug = false
510
515
511
516
512 ##############
517 ##############
513 ## STYLING ##
518 ## STYLING ##
514 ##############
519 ##############
515 debug_style = true
520 debug_style = true
516
521
517 ###########################################
522 ###########################################
518 ### MAIN RHODECODE DATABASE CONFIG ###
523 ### MAIN RHODECODE DATABASE CONFIG ###
519 ###########################################
524 ###########################################
520 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
525 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
521 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
526 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
522 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode
527 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode
523 sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
528 sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
524
529
525 # see sqlalchemy docs for other advanced settings
530 # see sqlalchemy docs for other advanced settings
526
531
527 ## print the sql statements to output
532 ## print the sql statements to output
528 sqlalchemy.db1.echo = false
533 sqlalchemy.db1.echo = false
529 ## recycle the connections after this amount of seconds
534 ## recycle the connections after this amount of seconds
530 sqlalchemy.db1.pool_recycle = 3600
535 sqlalchemy.db1.pool_recycle = 3600
531 sqlalchemy.db1.convert_unicode = true
536 sqlalchemy.db1.convert_unicode = true
532
537
533 ## the number of connections to keep open inside the connection pool.
538 ## the number of connections to keep open inside the connection pool.
534 ## 0 indicates no limit
539 ## 0 indicates no limit
535 #sqlalchemy.db1.pool_size = 5
540 #sqlalchemy.db1.pool_size = 5
536
541
537 ## the number of connections to allow in connection pool "overflow", that is
542 ## the number of connections to allow in connection pool "overflow", that is
538 ## connections that can be opened above and beyond the pool_size setting,
543 ## connections that can be opened above and beyond the pool_size setting,
539 ## which defaults to five.
544 ## which defaults to five.
540 #sqlalchemy.db1.max_overflow = 10
545 #sqlalchemy.db1.max_overflow = 10
541
546
542
547
543 ##################
548 ##################
544 ### VCS CONFIG ###
549 ### VCS CONFIG ###
545 ##################
550 ##################
546 vcs.server.enable = true
551 vcs.server.enable = true
547 vcs.server = localhost:9900
552 vcs.server = localhost:9900
548
553
549 ## Web server connectivity protocol, responsible for web based VCS operatations
554 ## Web server connectivity protocol, responsible for web based VCS operatations
550 ## Available protocols are:
555 ## Available protocols are:
551 ## `http` - use http-rpc backend (default)
556 ## `http` - use http-rpc backend (default)
552 vcs.server.protocol = http
557 vcs.server.protocol = http
553
558
554 ## Push/Pull operations protocol, available options are:
559 ## Push/Pull operations protocol, available options are:
555 ## `http` - use http-rpc backend (default)
560 ## `http` - use http-rpc backend (default)
556 ##
561 ##
557 vcs.scm_app_implementation = http
562 vcs.scm_app_implementation = http
558
563
559 ## Push/Pull operations hooks protocol, available options are:
564 ## Push/Pull operations hooks protocol, available options are:
560 ## `http` - use http-rpc backend (default)
565 ## `http` - use http-rpc backend (default)
561 vcs.hooks.protocol = http
566 vcs.hooks.protocol = http
562
567
563 vcs.server.log_level = debug
568 vcs.server.log_level = debug
564 ## Start VCSServer with this instance as a subprocess, usefull for development
569 ## Start VCSServer with this instance as a subprocess, usefull for development
565 vcs.start_server = true
570 vcs.start_server = true
566
571
567 ## List of enabled VCS backends, available options are:
572 ## List of enabled VCS backends, available options are:
568 ## `hg` - mercurial
573 ## `hg` - mercurial
569 ## `git` - git
574 ## `git` - git
570 ## `svn` - subversion
575 ## `svn` - subversion
571 vcs.backends = hg, git, svn
576 vcs.backends = hg, git, svn
572
577
573 vcs.connection_timeout = 3600
578 vcs.connection_timeout = 3600
574 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
579 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
575 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible, pre-1.9-compatible
580 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible, pre-1.9-compatible
576 #vcs.svn.compatible_version = pre-1.8-compatible
581 #vcs.svn.compatible_version = pre-1.8-compatible
577
582
578
583
579 ############################################################
584 ############################################################
580 ### Subversion proxy support (mod_dav_svn) ###
585 ### Subversion proxy support (mod_dav_svn) ###
581 ### Maps RhodeCode repo groups into SVN paths for Apache ###
586 ### Maps RhodeCode repo groups into SVN paths for Apache ###
582 ############################################################
587 ############################################################
583 ## Enable or disable the config file generation.
588 ## Enable or disable the config file generation.
584 svn.proxy.generate_config = false
589 svn.proxy.generate_config = false
585 ## Generate config file with `SVNListParentPath` set to `On`.
590 ## Generate config file with `SVNListParentPath` set to `On`.
586 svn.proxy.list_parent_path = true
591 svn.proxy.list_parent_path = true
587 ## Set location and file name of generated config file.
592 ## Set location and file name of generated config file.
588 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
593 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
589 ## alternative mod_dav config template. This needs to be a mako template
594 ## alternative mod_dav config template. This needs to be a mako template
590 #svn.proxy.config_template = ~/.rccontrol/enterprise-1/custom_svn_conf.mako
595 #svn.proxy.config_template = ~/.rccontrol/enterprise-1/custom_svn_conf.mako
591 ## Used as a prefix to the `Location` block in the generated config file.
596 ## Used as a prefix to the `Location` block in the generated config file.
592 ## In most cases it should be set to `/`.
597 ## In most cases it should be set to `/`.
593 svn.proxy.location_root = /
598 svn.proxy.location_root = /
594 ## Command to reload the mod dav svn configuration on change.
599 ## Command to reload the mod dav svn configuration on change.
595 ## Example: `/etc/init.d/apache2 reload`
600 ## Example: `/etc/init.d/apache2 reload`
596 #svn.proxy.reload_cmd = /etc/init.d/apache2 reload
601 #svn.proxy.reload_cmd = /etc/init.d/apache2 reload
597 ## If the timeout expires before the reload command finishes, the command will
602 ## If the timeout expires before the reload command finishes, the command will
598 ## be killed. Setting it to zero means no timeout. Defaults to 10 seconds.
603 ## be killed. Setting it to zero means no timeout. Defaults to 10 seconds.
599 #svn.proxy.reload_timeout = 10
604 #svn.proxy.reload_timeout = 10
600
605
601 ############################################################
606 ############################################################
602 ### SSH Support Settings ###
607 ### SSH Support Settings ###
603 ############################################################
608 ############################################################
604
609
605 ## Defines if a custom authorized_keys file should be created and written on
610 ## Defines if a custom authorized_keys file should be created and written on
606 ## any change user ssh keys. Setting this to false also disables posibility
611 ## any change user ssh keys. Setting this to false also disables posibility
607 ## of adding SSH keys by users from web interface. Super admins can still
612 ## of adding SSH keys by users from web interface. Super admins can still
608 ## manage SSH Keys.
613 ## manage SSH Keys.
609 ssh.generate_authorized_keyfile = false
614 ssh.generate_authorized_keyfile = false
610
615
611 ## Options for ssh, default is `no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding`
616 ## Options for ssh, default is `no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding`
612 # ssh.authorized_keys_ssh_opts =
617 # ssh.authorized_keys_ssh_opts =
613
618
614 ## Path to the authrozied_keys file where the generate entries are placed.
619 ## Path to the authrozied_keys file where the generate entries are placed.
615 ## It is possible to have multiple key files specified in `sshd_config` e.g.
620 ## It is possible to have multiple key files specified in `sshd_config` e.g.
616 ## AuthorizedKeysFile %h/.ssh/authorized_keys %h/.ssh/authorized_keys_rhodecode
621 ## AuthorizedKeysFile %h/.ssh/authorized_keys %h/.ssh/authorized_keys_rhodecode
617 ssh.authorized_keys_file_path = ~/.ssh/authorized_keys_rhodecode
622 ssh.authorized_keys_file_path = ~/.ssh/authorized_keys_rhodecode
618
623
619 ## Command to execute the SSH wrapper. The binary is available in the
624 ## Command to execute the SSH wrapper. The binary is available in the
620 ## rhodecode installation directory.
625 ## rhodecode installation directory.
621 ## e.g ~/.rccontrol/community-1/profile/bin/rc-ssh-wrapper
626 ## e.g ~/.rccontrol/community-1/profile/bin/rc-ssh-wrapper
622 ssh.wrapper_cmd = ~/.rccontrol/community-1/rc-ssh-wrapper
627 ssh.wrapper_cmd = ~/.rccontrol/community-1/rc-ssh-wrapper
623
628
624 ## Allow shell when executing the ssh-wrapper command
629 ## Allow shell when executing the ssh-wrapper command
625 ssh.wrapper_cmd_allow_shell = false
630 ssh.wrapper_cmd_allow_shell = false
626
631
627 ## Enables logging, and detailed output send back to the client during SSH
632 ## Enables logging, and detailed output send back to the client during SSH
628 ## operations. Usefull for debugging, shouldn't be used in production.
633 ## operations. Usefull for debugging, shouldn't be used in production.
629 ssh.enable_debug_logging = true
634 ssh.enable_debug_logging = true
630
635
631 ## Paths to binary executable, by default they are the names, but we can
636 ## Paths to binary executable, by default they are the names, but we can
632 ## override them if we want to use a custom one
637 ## override them if we want to use a custom one
633 ssh.executable.hg = ~/.rccontrol/vcsserver-1/profile/bin/hg
638 ssh.executable.hg = ~/.rccontrol/vcsserver-1/profile/bin/hg
634 ssh.executable.git = ~/.rccontrol/vcsserver-1/profile/bin/git
639 ssh.executable.git = ~/.rccontrol/vcsserver-1/profile/bin/git
635 ssh.executable.svn = ~/.rccontrol/vcsserver-1/profile/bin/svnserve
640 ssh.executable.svn = ~/.rccontrol/vcsserver-1/profile/bin/svnserve
636
641
637
642
638 ## Dummy marker to add new entries after.
643 ## Dummy marker to add new entries after.
639 ## Add any custom entries below. Please don't remove.
644 ## Add any custom entries below. Please don't remove.
640 custom.conf = 1
645 custom.conf = 1
641
646
642
647
643 ################################
648 ################################
644 ### LOGGING CONFIGURATION ####
649 ### LOGGING CONFIGURATION ####
645 ################################
650 ################################
646 [loggers]
651 [loggers]
647 keys = root, sqlalchemy, beaker, rhodecode, ssh_wrapper
652 keys = root, sqlalchemy, beaker, rhodecode, ssh_wrapper
648
653
649 [handlers]
654 [handlers]
650 keys = console, console_sql
655 keys = console, console_sql
651
656
652 [formatters]
657 [formatters]
653 keys = generic, color_formatter, color_formatter_sql
658 keys = generic, color_formatter, color_formatter_sql
654
659
655 #############
660 #############
656 ## LOGGERS ##
661 ## LOGGERS ##
657 #############
662 #############
658 [logger_root]
663 [logger_root]
659 level = NOTSET
664 level = NOTSET
660 handlers = console
665 handlers = console
661
666
662 [logger_sqlalchemy]
667 [logger_sqlalchemy]
663 level = INFO
668 level = INFO
664 handlers = console_sql
669 handlers = console_sql
665 qualname = sqlalchemy.engine
670 qualname = sqlalchemy.engine
666 propagate = 0
671 propagate = 0
667
672
668 [logger_beaker]
673 [logger_beaker]
669 level = DEBUG
674 level = DEBUG
670 handlers =
675 handlers =
671 qualname = beaker.container
676 qualname = beaker.container
672 propagate = 1
677 propagate = 1
673
678
674 [logger_rhodecode]
679 [logger_rhodecode]
675 level = DEBUG
680 level = DEBUG
676 handlers =
681 handlers =
677 qualname = rhodecode
682 qualname = rhodecode
678 propagate = 1
683 propagate = 1
679
684
680 [logger_ssh_wrapper]
685 [logger_ssh_wrapper]
681 level = DEBUG
686 level = DEBUG
682 handlers =
687 handlers =
683 qualname = ssh_wrapper
688 qualname = ssh_wrapper
684 propagate = 1
689 propagate = 1
685
690
686
691
687 ##############
692 ##############
688 ## HANDLERS ##
693 ## HANDLERS ##
689 ##############
694 ##############
690
695
691 [handler_console]
696 [handler_console]
692 class = StreamHandler
697 class = StreamHandler
693 args = (sys.stderr, )
698 args = (sys.stderr, )
694 level = DEBUG
699 level = DEBUG
695 formatter = color_formatter
700 formatter = color_formatter
696
701
697 [handler_console_sql]
702 [handler_console_sql]
698 class = StreamHandler
703 class = StreamHandler
699 args = (sys.stderr, )
704 args = (sys.stderr, )
700 level = DEBUG
705 level = DEBUG
701 formatter = color_formatter_sql
706 formatter = color_formatter_sql
702
707
703 ################
708 ################
704 ## FORMATTERS ##
709 ## FORMATTERS ##
705 ################
710 ################
706
711
707 [formatter_generic]
712 [formatter_generic]
708 class = rhodecode.lib.logging_formatter.ExceptionAwareFormatter
713 class = rhodecode.lib.logging_formatter.ExceptionAwareFormatter
709 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
714 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
710 datefmt = %Y-%m-%d %H:%M:%S
715 datefmt = %Y-%m-%d %H:%M:%S
711
716
712 [formatter_color_formatter]
717 [formatter_color_formatter]
713 class = rhodecode.lib.logging_formatter.ColorFormatter
718 class = rhodecode.lib.logging_formatter.ColorFormatter
714 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
719 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
715 datefmt = %Y-%m-%d %H:%M:%S
720 datefmt = %Y-%m-%d %H:%M:%S
716
721
717 [formatter_color_formatter_sql]
722 [formatter_color_formatter_sql]
718 class = rhodecode.lib.logging_formatter.ColorFormatterSql
723 class = rhodecode.lib.logging_formatter.ColorFormatterSql
719 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
724 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
720 datefmt = %Y-%m-%d %H:%M:%S
725 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,690 +1,695 b''
1
1
2
2
3 ################################################################################
3 ################################################################################
4 ## RHODECODE COMMUNITY EDITION CONFIGURATION ##
4 ## RHODECODE COMMUNITY EDITION CONFIGURATION ##
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
10
11 ################################################################################
11 ################################################################################
12 ## EMAIL CONFIGURATION ##
12 ## EMAIL CONFIGURATION ##
13 ## Uncomment and replace with the email address which should receive ##
13 ## Uncomment and replace with the email address which should receive ##
14 ## any error reports after an application crash ##
14 ## any error reports after an application crash ##
15 ## Additionally these settings will be used by the RhodeCode mailing system ##
15 ## Additionally these settings will be used by the RhodeCode mailing system ##
16 ################################################################################
16 ################################################################################
17
17
18 ## prefix all emails subjects with given prefix, helps filtering out emails
18 ## prefix all emails subjects with given prefix, helps filtering out emails
19 #email_prefix = [RhodeCode]
19 #email_prefix = [RhodeCode]
20
20
21 ## email FROM address all mails will be sent
21 ## email FROM address all mails will be sent
22 #app_email_from = rhodecode-noreply@localhost
22 #app_email_from = rhodecode-noreply@localhost
23
23
24 ## Uncomment and replace with the address which should receive any error report
24 ## Uncomment and replace with the address which should receive any error report
25 ## note: using appenlight for error handling doesn't need this to be uncommented
25 ## note: using appenlight for error handling doesn't need this to be uncommented
26 #email_to = admin@localhost
26 #email_to = admin@localhost
27
27
28 ## in case of Application errors, sent an error email form
28 ## in case of Application errors, sent an error email form
29 #error_email_from = rhodecode_error@localhost
29 #error_email_from = rhodecode_error@localhost
30
30
31 ## additional error message to be send in case of server crash
31 ## additional error message to be send in case of server crash
32 #error_message =
32 #error_message =
33
33
34
34
35 #smtp_server = mail.server.com
35 #smtp_server = mail.server.com
36 #smtp_username =
36 #smtp_username =
37 #smtp_password =
37 #smtp_password =
38 #smtp_port =
38 #smtp_port =
39 #smtp_use_tls = false
39 #smtp_use_tls = false
40 #smtp_use_ssl = true
40 #smtp_use_ssl = true
41 ## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
41 ## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
42 #smtp_auth =
42 #smtp_auth =
43
43
44 [server:main]
44 [server:main]
45 ## COMMON ##
45 ## COMMON ##
46 host = 127.0.0.1
46 host = 127.0.0.1
47 port = 5000
47 port = 5000
48
48
49 ##################################
49 ##################################
50 ## WAITRESS WSGI SERVER ##
50 ## WAITRESS WSGI SERVER ##
51 ## Recommended for Development ##
51 ## Recommended for Development ##
52 ##################################
52 ##################################
53
53
54 #use = egg:waitress#main
54 #use = egg:waitress#main
55 ## number of worker threads
55 ## number of worker threads
56 #threads = 5
56 #threads = 5
57 ## MAX BODY SIZE 100GB
57 ## MAX BODY SIZE 100GB
58 #max_request_body_size = 107374182400
58 #max_request_body_size = 107374182400
59 ## Use poll instead of select, fixes file descriptors limits problems.
59 ## Use poll instead of select, fixes file descriptors limits problems.
60 ## May not work on old windows systems.
60 ## May not work on old windows systems.
61 #asyncore_use_poll = true
61 #asyncore_use_poll = true
62
62
63
63
64 ##########################
64 ##########################
65 ## GUNICORN WSGI SERVER ##
65 ## GUNICORN WSGI SERVER ##
66 ##########################
66 ##########################
67 ## run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini
67 ## run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini
68
68
69 use = egg:gunicorn#main
69 use = egg:gunicorn#main
70 ## Sets the number of process workers. You must set `instance_id = *`
70 ## Sets the number of process workers. You must set `instance_id = *`
71 ## when this option is set to more than one worker, recommended
71 ## when this option is set to more than one worker, recommended
72 ## value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers
72 ## value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers
73 ## The `instance_id = *` must be set in the [app:main] section below
73 ## The `instance_id = *` must be set in the [app:main] section below
74 workers = 2
74 workers = 2
75 ## number of threads for each of the worker, must be set to 1 for gevent
75 ## number of threads for each of the worker, must be set to 1 for gevent
76 ## generally recommended to be at 1
76 ## generally recommended to be at 1
77 #threads = 1
77 #threads = 1
78 ## process name
78 ## process name
79 proc_name = rhodecode
79 proc_name = rhodecode
80 ## type of worker class, one of sync, gevent
80 ## type of worker class, one of sync, gevent
81 ## recommended for bigger setup is using of of other than sync one
81 ## recommended for bigger setup is using of of other than sync one
82 worker_class = sync
82 worker_class = sync
83 ## The maximum number of simultaneous clients. Valid only for Gevent
83 ## The maximum number of simultaneous clients. Valid only for Gevent
84 #worker_connections = 10
84 #worker_connections = 10
85 ## max number of requests that worker will handle before being gracefully
85 ## max number of requests that worker will handle before being gracefully
86 ## restarted, could prevent memory leaks
86 ## restarted, could prevent memory leaks
87 max_requests = 1000
87 max_requests = 1000
88 max_requests_jitter = 30
88 max_requests_jitter = 30
89 ## amount of time a worker can spend with handling a request before it
89 ## amount of time a worker can spend with handling a request before it
90 ## gets killed and restarted. Set to 6hrs
90 ## gets killed and restarted. Set to 6hrs
91 timeout = 21600
91 timeout = 21600
92
92
93
93
94 ## prefix middleware for RhodeCode.
94 ## prefix middleware for RhodeCode.
95 ## recommended when using proxy setup.
95 ## recommended when using proxy setup.
96 ## allows to set RhodeCode under a prefix in server.
96 ## allows to set RhodeCode under a prefix in server.
97 ## eg https://server.com/custom_prefix. Enable `filter-with =` option below as well.
97 ## eg https://server.com/custom_prefix. Enable `filter-with =` option below as well.
98 ## And set your prefix like: `prefix = /custom_prefix`
98 ## And set your prefix like: `prefix = /custom_prefix`
99 ## be sure to also set beaker.session.cookie_path = /custom_prefix if you need
99 ## be sure to also set beaker.session.cookie_path = /custom_prefix if you need
100 ## to make your cookies only work on prefix url
100 ## to make your cookies only work on prefix url
101 [filter:proxy-prefix]
101 [filter:proxy-prefix]
102 use = egg:PasteDeploy#prefix
102 use = egg:PasteDeploy#prefix
103 prefix = /
103 prefix = /
104
104
105 [app:main]
105 [app:main]
106 use = egg:rhodecode-enterprise-ce
106 use = egg:rhodecode-enterprise-ce
107
107
108 ## enable proxy prefix middleware, defined above
108 ## enable proxy prefix middleware, defined above
109 #filter-with = proxy-prefix
109 #filter-with = proxy-prefix
110
110
111 ## encryption key used to encrypt social plugin tokens,
111 ## encryption key used to encrypt social plugin tokens,
112 ## remote_urls with credentials etc, if not set it defaults to
112 ## remote_urls with credentials etc, if not set it defaults to
113 ## `beaker.session.secret`
113 ## `beaker.session.secret`
114 #rhodecode.encrypted_values.secret =
114 #rhodecode.encrypted_values.secret =
115
115
116 ## decryption strict mode (enabled by default). It controls if decryption raises
116 ## decryption strict mode (enabled by default). It controls if decryption raises
117 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
117 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
118 #rhodecode.encrypted_values.strict = false
118 #rhodecode.encrypted_values.strict = false
119
119
120 ## return gzipped responses from Rhodecode (static files/application)
120 ## return gzipped responses from Rhodecode (static files/application)
121 gzip_responses = false
121 gzip_responses = false
122
122
123 ## autogenerate javascript routes file on startup
123 ## autogenerate javascript routes file on startup
124 generate_js_files = false
124 generate_js_files = false
125
125
126 ## Optional Languages
126 ## Optional Languages
127 ## en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
127 ## en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
128 lang = en
128 lang = en
129
129
130 ## perform a full repository scan on each server start, this should be
130 ## perform a full repository scan on each server start, this should be
131 ## set to false after first startup, to allow faster server restarts.
131 ## set to false after first startup, to allow faster server restarts.
132 startup.import_repos = false
132 startup.import_repos = false
133
133
134 ## Uncomment and set this path to use archive download cache.
134 ## Uncomment and set this path to use archive download cache.
135 ## Once enabled, generated archives will be cached at this location
135 ## Once enabled, generated archives will be cached at this location
136 ## and served from the cache during subsequent requests for the same archive of
136 ## and served from the cache during subsequent requests for the same archive of
137 ## the repository.
137 ## the repository.
138 #archive_cache_dir = /tmp/tarballcache
138 #archive_cache_dir = /tmp/tarballcache
139
139
140 ## URL at which the application is running. This is used for bootstraping
141 ## requests in context when no web request is available. Used in ishell, or
142 ## SSH calls. Set this for events to receive proper url for SSH calls.
143 app.base_url = http://rhodecode.local
144
140 ## change this to unique ID for security
145 ## change this to unique ID for security
141 app_instance_uuid = rc-production
146 app_instance_uuid = rc-production
142
147
143 ## cut off limit for large diffs (size in bytes). If overall diff size on
148 ## cut off limit for large diffs (size in bytes). If overall diff size on
144 ## commit, or pull request exceeds this limit this diff will be displayed
149 ## commit, or pull request exceeds this limit this diff will be displayed
145 ## partially. E.g 512000 == 512Kb
150 ## partially. E.g 512000 == 512Kb
146 cut_off_limit_diff = 512000
151 cut_off_limit_diff = 512000
147
152
148 ## cut off limit for large files inside diffs (size in bytes). Each individual
153 ## cut off limit for large files inside diffs (size in bytes). Each individual
149 ## file inside diff which exceeds this limit will be displayed partially.
154 ## file inside diff which exceeds this limit will be displayed partially.
150 ## E.g 128000 == 128Kb
155 ## E.g 128000 == 128Kb
151 cut_off_limit_file = 128000
156 cut_off_limit_file = 128000
152
157
153 ## use cache version of scm repo everywhere
158 ## use cache version of scm repo everywhere
154 vcs_full_cache = true
159 vcs_full_cache = true
155
160
156 ## force https in RhodeCode, fixes https redirects, assumes it's always https
161 ## force https in RhodeCode, fixes https redirects, assumes it's always https
157 ## Normally this is controlled by proper http flags sent from http server
162 ## Normally this is controlled by proper http flags sent from http server
158 force_https = false
163 force_https = false
159
164
160 ## use Strict-Transport-Security headers
165 ## use Strict-Transport-Security headers
161 use_htsts = false
166 use_htsts = false
162
167
163 ## number of commits stats will parse on each iteration
168 ## number of commits stats will parse on each iteration
164 commit_parse_limit = 25
169 commit_parse_limit = 25
165
170
166 ## git rev filter option, --all is the default filter, if you need to
171 ## git rev filter option, --all is the default filter, if you need to
167 ## hide all refs in changelog switch this to --branches --tags
172 ## hide all refs in changelog switch this to --branches --tags
168 git_rev_filter = --branches --tags
173 git_rev_filter = --branches --tags
169
174
170 # Set to true if your repos are exposed using the dumb protocol
175 # Set to true if your repos are exposed using the dumb protocol
171 git_update_server_info = false
176 git_update_server_info = false
172
177
173 ## RSS/ATOM feed options
178 ## RSS/ATOM feed options
174 rss_cut_off_limit = 256000
179 rss_cut_off_limit = 256000
175 rss_items_per_page = 10
180 rss_items_per_page = 10
176 rss_include_diff = false
181 rss_include_diff = false
177
182
178 ## gist URL alias, used to create nicer urls for gist. This should be an
183 ## gist URL alias, used to create nicer urls for gist. This should be an
179 ## url that does rewrites to _admin/gists/{gistid}.
184 ## url that does rewrites to _admin/gists/{gistid}.
180 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
185 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
181 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/{gistid}
186 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/{gistid}
182 gist_alias_url =
187 gist_alias_url =
183
188
184 ## List of views (using glob pattern syntax) that AUTH TOKENS could be
189 ## List of views (using glob pattern syntax) that AUTH TOKENS could be
185 ## used for access.
190 ## used for access.
186 ## Adding ?auth_token=TOKEN_HASH to the url authenticates this request as if it
191 ## Adding ?auth_token=TOKEN_HASH to the url authenticates this request as if it
187 ## came from the the logged in user who own this authentication token.
192 ## came from the the logged in user who own this authentication token.
188 ## Additionally @TOKEN syntaxt can be used to bound the view to specific
193 ## Additionally @TOKEN syntaxt can be used to bound the view to specific
189 ## authentication token. Such view would be only accessible when used together
194 ## authentication token. Such view would be only accessible when used together
190 ## with this authentication token
195 ## with this authentication token
191 ##
196 ##
192 ## list of all views can be found under `/_admin/permissions/auth_token_access`
197 ## list of all views can be found under `/_admin/permissions/auth_token_access`
193 ## The list should be "," separated and on a single line.
198 ## The list should be "," separated and on a single line.
194 ##
199 ##
195 ## Most common views to enable:
200 ## Most common views to enable:
196 # RepoCommitsView:repo_commit_download
201 # RepoCommitsView:repo_commit_download
197 # RepoCommitsView:repo_commit_patch
202 # RepoCommitsView:repo_commit_patch
198 # RepoCommitsView:repo_commit_raw
203 # RepoCommitsView:repo_commit_raw
199 # RepoCommitsView:repo_commit_raw@TOKEN
204 # RepoCommitsView:repo_commit_raw@TOKEN
200 # RepoFilesView:repo_files_diff
205 # RepoFilesView:repo_files_diff
201 # RepoFilesView:repo_archivefile
206 # RepoFilesView:repo_archivefile
202 # RepoFilesView:repo_file_raw
207 # RepoFilesView:repo_file_raw
203 # GistView:*
208 # GistView:*
204 api_access_controllers_whitelist =
209 api_access_controllers_whitelist =
205
210
206 ## default encoding used to convert from and to unicode
211 ## default encoding used to convert from and to unicode
207 ## can be also a comma separated list of encoding in case of mixed encodings
212 ## can be also a comma separated list of encoding in case of mixed encodings
208 default_encoding = UTF-8
213 default_encoding = UTF-8
209
214
210 ## instance-id prefix
215 ## instance-id prefix
211 ## a prefix key for this instance used for cache invalidation when running
216 ## a prefix key for this instance used for cache invalidation when running
212 ## multiple instances of rhodecode, make sure it's globally unique for
217 ## multiple instances of rhodecode, make sure it's globally unique for
213 ## all running rhodecode instances. Leave empty if you don't use it
218 ## all running rhodecode instances. Leave empty if you don't use it
214 instance_id =
219 instance_id =
215
220
216 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
221 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
217 ## of an authentication plugin also if it is disabled by it's settings.
222 ## of an authentication plugin also if it is disabled by it's settings.
218 ## This could be useful if you are unable to log in to the system due to broken
223 ## This could be useful if you are unable to log in to the system due to broken
219 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
224 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
220 ## module to log in again and fix the settings.
225 ## module to log in again and fix the settings.
221 ##
226 ##
222 ## Available builtin plugin IDs (hash is part of the ID):
227 ## Available builtin plugin IDs (hash is part of the ID):
223 ## egg:rhodecode-enterprise-ce#rhodecode
228 ## egg:rhodecode-enterprise-ce#rhodecode
224 ## egg:rhodecode-enterprise-ce#pam
229 ## egg:rhodecode-enterprise-ce#pam
225 ## egg:rhodecode-enterprise-ce#ldap
230 ## egg:rhodecode-enterprise-ce#ldap
226 ## egg:rhodecode-enterprise-ce#jasig_cas
231 ## egg:rhodecode-enterprise-ce#jasig_cas
227 ## egg:rhodecode-enterprise-ce#headers
232 ## egg:rhodecode-enterprise-ce#headers
228 ## egg:rhodecode-enterprise-ce#crowd
233 ## egg:rhodecode-enterprise-ce#crowd
229 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
234 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
230
235
231 ## alternative return HTTP header for failed authentication. Default HTTP
236 ## alternative return HTTP header for failed authentication. Default HTTP
232 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
237 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
233 ## handling that causing a series of failed authentication calls.
238 ## handling that causing a series of failed authentication calls.
234 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
239 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
235 ## This will be served instead of default 401 on bad authnetication
240 ## This will be served instead of default 401 on bad authnetication
236 auth_ret_code =
241 auth_ret_code =
237
242
238 ## use special detection method when serving auth_ret_code, instead of serving
243 ## use special detection method when serving auth_ret_code, instead of serving
239 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
244 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
240 ## and then serve auth_ret_code to clients
245 ## and then serve auth_ret_code to clients
241 auth_ret_code_detection = false
246 auth_ret_code_detection = false
242
247
243 ## locking return code. When repository is locked return this HTTP code. 2XX
248 ## locking return code. When repository is locked return this HTTP code. 2XX
244 ## codes don't break the transactions while 4XX codes do
249 ## codes don't break the transactions while 4XX codes do
245 lock_ret_code = 423
250 lock_ret_code = 423
246
251
247 ## allows to change the repository location in settings page
252 ## allows to change the repository location in settings page
248 allow_repo_location_change = true
253 allow_repo_location_change = true
249
254
250 ## allows to setup custom hooks in settings page
255 ## allows to setup custom hooks in settings page
251 allow_custom_hooks_settings = true
256 allow_custom_hooks_settings = true
252
257
253 ## generated license token, goto license page in RhodeCode settings to obtain
258 ## generated license token, goto license page in RhodeCode settings to obtain
254 ## new token
259 ## new token
255 license_token =
260 license_token =
256
261
257 ## supervisor connection uri, for managing supervisor and logs.
262 ## supervisor connection uri, for managing supervisor and logs.
258 supervisor.uri =
263 supervisor.uri =
259 ## supervisord group name/id we only want this RC instance to handle
264 ## supervisord group name/id we only want this RC instance to handle
260 supervisor.group_id = prod
265 supervisor.group_id = prod
261
266
262 ## Display extended labs settings
267 ## Display extended labs settings
263 labs_settings_active = true
268 labs_settings_active = true
264
269
265 ####################################
270 ####################################
266 ### CELERY CONFIG ####
271 ### CELERY CONFIG ####
267 ####################################
272 ####################################
268 use_celery = false
273 use_celery = false
269 broker.host = localhost
274 broker.host = localhost
270 broker.vhost = rabbitmqhost
275 broker.vhost = rabbitmqhost
271 broker.port = 5672
276 broker.port = 5672
272 broker.user = rabbitmq
277 broker.user = rabbitmq
273 broker.password = qweqwe
278 broker.password = qweqwe
274
279
275 celery.imports = rhodecode.lib.celerylib.tasks
280 celery.imports = rhodecode.lib.celerylib.tasks
276
281
277 celery.result.backend = amqp
282 celery.result.backend = amqp
278 celery.result.dburi = amqp://
283 celery.result.dburi = amqp://
279 celery.result.serialier = json
284 celery.result.serialier = json
280
285
281 #celery.send.task.error.emails = true
286 #celery.send.task.error.emails = true
282 #celery.amqp.task.result.expires = 18000
287 #celery.amqp.task.result.expires = 18000
283
288
284 celeryd.concurrency = 2
289 celeryd.concurrency = 2
285 #celeryd.log.file = celeryd.log
290 #celeryd.log.file = celeryd.log
286 celeryd.log.level = debug
291 celeryd.log.level = debug
287 celeryd.max.tasks.per.child = 1
292 celeryd.max.tasks.per.child = 1
288
293
289 ## tasks will never be sent to the queue, but executed locally instead.
294 ## tasks will never be sent to the queue, but executed locally instead.
290 celery.always.eager = false
295 celery.always.eager = false
291
296
292 ####################################
297 ####################################
293 ### BEAKER CACHE ####
298 ### BEAKER CACHE ####
294 ####################################
299 ####################################
295 # default cache dir for templates. Putting this into a ramdisk
300 # default cache dir for templates. Putting this into a ramdisk
296 ## can boost performance, eg. %(here)s/data_ramdisk
301 ## can boost performance, eg. %(here)s/data_ramdisk
297 cache_dir = %(here)s/data
302 cache_dir = %(here)s/data
298
303
299 ## locking and default file storage for Beaker. Putting this into a ramdisk
304 ## locking and default file storage for Beaker. Putting this into a ramdisk
300 ## can boost performance, eg. %(here)s/data_ramdisk/cache/beaker_data
305 ## can boost performance, eg. %(here)s/data_ramdisk/cache/beaker_data
301 beaker.cache.data_dir = %(here)s/data/cache/beaker_data
306 beaker.cache.data_dir = %(here)s/data/cache/beaker_data
302 beaker.cache.lock_dir = %(here)s/data/cache/beaker_lock
307 beaker.cache.lock_dir = %(here)s/data/cache/beaker_lock
303
308
304 beaker.cache.regions = super_short_term, short_term, long_term, sql_cache_short, auth_plugins, repo_cache_long
309 beaker.cache.regions = super_short_term, short_term, long_term, sql_cache_short, auth_plugins, repo_cache_long
305
310
306 beaker.cache.super_short_term.type = memory
311 beaker.cache.super_short_term.type = memory
307 beaker.cache.super_short_term.expire = 10
312 beaker.cache.super_short_term.expire = 10
308 beaker.cache.super_short_term.key_length = 256
313 beaker.cache.super_short_term.key_length = 256
309
314
310 beaker.cache.short_term.type = memory
315 beaker.cache.short_term.type = memory
311 beaker.cache.short_term.expire = 60
316 beaker.cache.short_term.expire = 60
312 beaker.cache.short_term.key_length = 256
317 beaker.cache.short_term.key_length = 256
313
318
314 beaker.cache.long_term.type = memory
319 beaker.cache.long_term.type = memory
315 beaker.cache.long_term.expire = 36000
320 beaker.cache.long_term.expire = 36000
316 beaker.cache.long_term.key_length = 256
321 beaker.cache.long_term.key_length = 256
317
322
318 beaker.cache.sql_cache_short.type = memory
323 beaker.cache.sql_cache_short.type = memory
319 beaker.cache.sql_cache_short.expire = 10
324 beaker.cache.sql_cache_short.expire = 10
320 beaker.cache.sql_cache_short.key_length = 256
325 beaker.cache.sql_cache_short.key_length = 256
321
326
322 ## default is memory cache, configure only if required
327 ## default is memory cache, configure only if required
323 ## using multi-node or multi-worker setup
328 ## using multi-node or multi-worker setup
324 #beaker.cache.auth_plugins.type = ext:database
329 #beaker.cache.auth_plugins.type = ext:database
325 #beaker.cache.auth_plugins.lock_dir = %(here)s/data/cache/auth_plugin_lock
330 #beaker.cache.auth_plugins.lock_dir = %(here)s/data/cache/auth_plugin_lock
326 #beaker.cache.auth_plugins.url = postgresql://postgres:secret@localhost/rhodecode
331 #beaker.cache.auth_plugins.url = postgresql://postgres:secret@localhost/rhodecode
327 #beaker.cache.auth_plugins.url = mysql://root:secret@127.0.0.1/rhodecode
332 #beaker.cache.auth_plugins.url = mysql://root:secret@127.0.0.1/rhodecode
328 #beaker.cache.auth_plugins.sa.pool_recycle = 3600
333 #beaker.cache.auth_plugins.sa.pool_recycle = 3600
329 #beaker.cache.auth_plugins.sa.pool_size = 10
334 #beaker.cache.auth_plugins.sa.pool_size = 10
330 #beaker.cache.auth_plugins.sa.max_overflow = 0
335 #beaker.cache.auth_plugins.sa.max_overflow = 0
331
336
332 beaker.cache.repo_cache_long.type = memorylru_base
337 beaker.cache.repo_cache_long.type = memorylru_base
333 beaker.cache.repo_cache_long.max_items = 4096
338 beaker.cache.repo_cache_long.max_items = 4096
334 beaker.cache.repo_cache_long.expire = 2592000
339 beaker.cache.repo_cache_long.expire = 2592000
335
340
336 ## default is memorylru_base cache, configure only if required
341 ## default is memorylru_base cache, configure only if required
337 ## using multi-node or multi-worker setup
342 ## using multi-node or multi-worker setup
338 #beaker.cache.repo_cache_long.type = ext:memcached
343 #beaker.cache.repo_cache_long.type = ext:memcached
339 #beaker.cache.repo_cache_long.url = localhost:11211
344 #beaker.cache.repo_cache_long.url = localhost:11211
340 #beaker.cache.repo_cache_long.expire = 1209600
345 #beaker.cache.repo_cache_long.expire = 1209600
341 #beaker.cache.repo_cache_long.key_length = 256
346 #beaker.cache.repo_cache_long.key_length = 256
342
347
343 ####################################
348 ####################################
344 ### BEAKER SESSION ####
349 ### BEAKER SESSION ####
345 ####################################
350 ####################################
346
351
347 ## .session.type is type of storage options for the session, current allowed
352 ## .session.type is type of storage options for the session, current allowed
348 ## types are file, ext:memcached, ext:database, and memory (default).
353 ## types are file, ext:memcached, ext:database, and memory (default).
349 beaker.session.type = file
354 beaker.session.type = file
350 beaker.session.data_dir = %(here)s/data/sessions/data
355 beaker.session.data_dir = %(here)s/data/sessions/data
351
356
352 ## db based session, fast, and allows easy management over logged in users
357 ## db based session, fast, and allows easy management over logged in users
353 #beaker.session.type = ext:database
358 #beaker.session.type = ext:database
354 #beaker.session.table_name = db_session
359 #beaker.session.table_name = db_session
355 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
360 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
356 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
361 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
357 #beaker.session.sa.pool_recycle = 3600
362 #beaker.session.sa.pool_recycle = 3600
358 #beaker.session.sa.echo = false
363 #beaker.session.sa.echo = false
359
364
360 beaker.session.key = rhodecode
365 beaker.session.key = rhodecode
361 beaker.session.secret = production-rc-uytcxaz
366 beaker.session.secret = production-rc-uytcxaz
362 beaker.session.lock_dir = %(here)s/data/sessions/lock
367 beaker.session.lock_dir = %(here)s/data/sessions/lock
363
368
364 ## Secure encrypted cookie. Requires AES and AES python libraries
369 ## Secure encrypted cookie. Requires AES and AES python libraries
365 ## you must disable beaker.session.secret to use this
370 ## you must disable beaker.session.secret to use this
366 #beaker.session.encrypt_key = key_for_encryption
371 #beaker.session.encrypt_key = key_for_encryption
367 #beaker.session.validate_key = validation_key
372 #beaker.session.validate_key = validation_key
368
373
369 ## sets session as invalid(also logging out user) if it haven not been
374 ## sets session as invalid(also logging out user) if it haven not been
370 ## accessed for given amount of time in seconds
375 ## accessed for given amount of time in seconds
371 beaker.session.timeout = 2592000
376 beaker.session.timeout = 2592000
372 beaker.session.httponly = true
377 beaker.session.httponly = true
373 ## Path to use for the cookie. Set to prefix if you use prefix middleware
378 ## Path to use for the cookie. Set to prefix if you use prefix middleware
374 #beaker.session.cookie_path = /custom_prefix
379 #beaker.session.cookie_path = /custom_prefix
375
380
376 ## uncomment for https secure cookie
381 ## uncomment for https secure cookie
377 beaker.session.secure = false
382 beaker.session.secure = false
378
383
379 ## auto save the session to not to use .save()
384 ## auto save the session to not to use .save()
380 beaker.session.auto = false
385 beaker.session.auto = false
381
386
382 ## default cookie expiration time in seconds, set to `true` to set expire
387 ## default cookie expiration time in seconds, set to `true` to set expire
383 ## at browser close
388 ## at browser close
384 #beaker.session.cookie_expires = 3600
389 #beaker.session.cookie_expires = 3600
385
390
386 ###################################
391 ###################################
387 ## SEARCH INDEXING CONFIGURATION ##
392 ## SEARCH INDEXING CONFIGURATION ##
388 ###################################
393 ###################################
389 ## Full text search indexer is available in rhodecode-tools under
394 ## Full text search indexer is available in rhodecode-tools under
390 ## `rhodecode-tools index` command
395 ## `rhodecode-tools index` command
391
396
392 ## WHOOSH Backend, doesn't require additional services to run
397 ## WHOOSH Backend, doesn't require additional services to run
393 ## it works good with few dozen repos
398 ## it works good with few dozen repos
394 search.module = rhodecode.lib.index.whoosh
399 search.module = rhodecode.lib.index.whoosh
395 search.location = %(here)s/data/index
400 search.location = %(here)s/data/index
396
401
397 ########################################
402 ########################################
398 ### CHANNELSTREAM CONFIG ####
403 ### CHANNELSTREAM CONFIG ####
399 ########################################
404 ########################################
400 ## channelstream enables persistent connections and live notification
405 ## channelstream enables persistent connections and live notification
401 ## in the system. It's also used by the chat system
406 ## in the system. It's also used by the chat system
402 channelstream.enabled = false
407 channelstream.enabled = false
403
408
404 ## server address for channelstream server on the backend
409 ## server address for channelstream server on the backend
405 channelstream.server = 127.0.0.1:9800
410 channelstream.server = 127.0.0.1:9800
406
411
407 ## location of the channelstream server from outside world
412 ## location of the channelstream server from outside world
408 ## use ws:// for http or wss:// for https. This address needs to be handled
413 ## use ws:// for http or wss:// for https. This address needs to be handled
409 ## by external HTTP server such as Nginx or Apache
414 ## by external HTTP server such as Nginx or Apache
410 ## see nginx/apache configuration examples in our docs
415 ## see nginx/apache configuration examples in our docs
411 channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
416 channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
412 channelstream.secret = secret
417 channelstream.secret = secret
413 channelstream.history.location = %(here)s/channelstream_history
418 channelstream.history.location = %(here)s/channelstream_history
414
419
415 ## Internal application path that Javascript uses to connect into.
420 ## Internal application path that Javascript uses to connect into.
416 ## If you use proxy-prefix the prefix should be added before /_channelstream
421 ## If you use proxy-prefix the prefix should be added before /_channelstream
417 channelstream.proxy_path = /_channelstream
422 channelstream.proxy_path = /_channelstream
418
423
419
424
420 ###################################
425 ###################################
421 ## APPENLIGHT CONFIG ##
426 ## APPENLIGHT CONFIG ##
422 ###################################
427 ###################################
423
428
424 ## Appenlight is tailored to work with RhodeCode, see
429 ## Appenlight is tailored to work with RhodeCode, see
425 ## http://appenlight.com for details how to obtain an account
430 ## http://appenlight.com for details how to obtain an account
426
431
427 ## appenlight integration enabled
432 ## appenlight integration enabled
428 appenlight = false
433 appenlight = false
429
434
430 appenlight.server_url = https://api.appenlight.com
435 appenlight.server_url = https://api.appenlight.com
431 appenlight.api_key = YOUR_API_KEY
436 appenlight.api_key = YOUR_API_KEY
432 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
437 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
433
438
434 # used for JS client
439 # used for JS client
435 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
440 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
436
441
437 ## TWEAK AMOUNT OF INFO SENT HERE
442 ## TWEAK AMOUNT OF INFO SENT HERE
438
443
439 ## enables 404 error logging (default False)
444 ## enables 404 error logging (default False)
440 appenlight.report_404 = false
445 appenlight.report_404 = false
441
446
442 ## time in seconds after request is considered being slow (default 1)
447 ## time in seconds after request is considered being slow (default 1)
443 appenlight.slow_request_time = 1
448 appenlight.slow_request_time = 1
444
449
445 ## record slow requests in application
450 ## record slow requests in application
446 ## (needs to be enabled for slow datastore recording and time tracking)
451 ## (needs to be enabled for slow datastore recording and time tracking)
447 appenlight.slow_requests = true
452 appenlight.slow_requests = true
448
453
449 ## enable hooking to application loggers
454 ## enable hooking to application loggers
450 appenlight.logging = true
455 appenlight.logging = true
451
456
452 ## minimum log level for log capture
457 ## minimum log level for log capture
453 appenlight.logging.level = WARNING
458 appenlight.logging.level = WARNING
454
459
455 ## send logs only from erroneous/slow requests
460 ## send logs only from erroneous/slow requests
456 ## (saves API quota for intensive logging)
461 ## (saves API quota for intensive logging)
457 appenlight.logging_on_error = false
462 appenlight.logging_on_error = false
458
463
459 ## list of additonal keywords that should be grabbed from environ object
464 ## list of additonal keywords that should be grabbed from environ object
460 ## can be string with comma separated list of words in lowercase
465 ## can be string with comma separated list of words in lowercase
461 ## (by default client will always send following info:
466 ## (by default client will always send following info:
462 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
467 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
463 ## start with HTTP* this list be extended with additional keywords here
468 ## start with HTTP* this list be extended with additional keywords here
464 appenlight.environ_keys_whitelist =
469 appenlight.environ_keys_whitelist =
465
470
466 ## list of keywords that should be blanked from request object
471 ## list of keywords that should be blanked from request object
467 ## can be string with comma separated list of words in lowercase
472 ## can be string with comma separated list of words in lowercase
468 ## (by default client will always blank keys that contain following words
473 ## (by default client will always blank keys that contain following words
469 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
474 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
470 ## this list be extended with additional keywords set here
475 ## this list be extended with additional keywords set here
471 appenlight.request_keys_blacklist =
476 appenlight.request_keys_blacklist =
472
477
473 ## list of namespaces that should be ignores when gathering log entries
478 ## list of namespaces that should be ignores when gathering log entries
474 ## can be string with comma separated list of namespaces
479 ## can be string with comma separated list of namespaces
475 ## (by default the client ignores own entries: appenlight_client.client)
480 ## (by default the client ignores own entries: appenlight_client.client)
476 appenlight.log_namespace_blacklist =
481 appenlight.log_namespace_blacklist =
477
482
478
483
479 ################################################################################
484 ################################################################################
480 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
485 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
481 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
486 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
482 ## execute malicious code after an exception is raised. ##
487 ## execute malicious code after an exception is raised. ##
483 ################################################################################
488 ################################################################################
484 set debug = false
489 set debug = false
485
490
486
491
487 ###########################################
492 ###########################################
488 ### MAIN RHODECODE DATABASE CONFIG ###
493 ### MAIN RHODECODE DATABASE CONFIG ###
489 ###########################################
494 ###########################################
490 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
495 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
491 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
496 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
492 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode
497 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode
493 sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
498 sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
494
499
495 # see sqlalchemy docs for other advanced settings
500 # see sqlalchemy docs for other advanced settings
496
501
497 ## print the sql statements to output
502 ## print the sql statements to output
498 sqlalchemy.db1.echo = false
503 sqlalchemy.db1.echo = false
499 ## recycle the connections after this amount of seconds
504 ## recycle the connections after this amount of seconds
500 sqlalchemy.db1.pool_recycle = 3600
505 sqlalchemy.db1.pool_recycle = 3600
501 sqlalchemy.db1.convert_unicode = true
506 sqlalchemy.db1.convert_unicode = true
502
507
503 ## the number of connections to keep open inside the connection pool.
508 ## the number of connections to keep open inside the connection pool.
504 ## 0 indicates no limit
509 ## 0 indicates no limit
505 #sqlalchemy.db1.pool_size = 5
510 #sqlalchemy.db1.pool_size = 5
506
511
507 ## the number of connections to allow in connection pool "overflow", that is
512 ## the number of connections to allow in connection pool "overflow", that is
508 ## connections that can be opened above and beyond the pool_size setting,
513 ## connections that can be opened above and beyond the pool_size setting,
509 ## which defaults to five.
514 ## which defaults to five.
510 #sqlalchemy.db1.max_overflow = 10
515 #sqlalchemy.db1.max_overflow = 10
511
516
512
517
513 ##################
518 ##################
514 ### VCS CONFIG ###
519 ### VCS CONFIG ###
515 ##################
520 ##################
516 vcs.server.enable = true
521 vcs.server.enable = true
517 vcs.server = localhost:9900
522 vcs.server = localhost:9900
518
523
519 ## Web server connectivity protocol, responsible for web based VCS operatations
524 ## Web server connectivity protocol, responsible for web based VCS operatations
520 ## Available protocols are:
525 ## Available protocols are:
521 ## `http` - use http-rpc backend (default)
526 ## `http` - use http-rpc backend (default)
522 vcs.server.protocol = http
527 vcs.server.protocol = http
523
528
524 ## Push/Pull operations protocol, available options are:
529 ## Push/Pull operations protocol, available options are:
525 ## `http` - use http-rpc backend (default)
530 ## `http` - use http-rpc backend (default)
526 ##
531 ##
527 vcs.scm_app_implementation = http
532 vcs.scm_app_implementation = http
528
533
529 ## Push/Pull operations hooks protocol, available options are:
534 ## Push/Pull operations hooks protocol, available options are:
530 ## `http` - use http-rpc backend (default)
535 ## `http` - use http-rpc backend (default)
531 vcs.hooks.protocol = http
536 vcs.hooks.protocol = http
532
537
533 vcs.server.log_level = info
538 vcs.server.log_level = info
534 ## Start VCSServer with this instance as a subprocess, usefull for development
539 ## Start VCSServer with this instance as a subprocess, usefull for development
535 vcs.start_server = false
540 vcs.start_server = false
536
541
537 ## List of enabled VCS backends, available options are:
542 ## List of enabled VCS backends, available options are:
538 ## `hg` - mercurial
543 ## `hg` - mercurial
539 ## `git` - git
544 ## `git` - git
540 ## `svn` - subversion
545 ## `svn` - subversion
541 vcs.backends = hg, git, svn
546 vcs.backends = hg, git, svn
542
547
543 vcs.connection_timeout = 3600
548 vcs.connection_timeout = 3600
544 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
549 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
545 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible, pre-1.9-compatible
550 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible, pre-1.9-compatible
546 #vcs.svn.compatible_version = pre-1.8-compatible
551 #vcs.svn.compatible_version = pre-1.8-compatible
547
552
548
553
549 ############################################################
554 ############################################################
550 ### Subversion proxy support (mod_dav_svn) ###
555 ### Subversion proxy support (mod_dav_svn) ###
551 ### Maps RhodeCode repo groups into SVN paths for Apache ###
556 ### Maps RhodeCode repo groups into SVN paths for Apache ###
552 ############################################################
557 ############################################################
553 ## Enable or disable the config file generation.
558 ## Enable or disable the config file generation.
554 svn.proxy.generate_config = false
559 svn.proxy.generate_config = false
555 ## Generate config file with `SVNListParentPath` set to `On`.
560 ## Generate config file with `SVNListParentPath` set to `On`.
556 svn.proxy.list_parent_path = true
561 svn.proxy.list_parent_path = true
557 ## Set location and file name of generated config file.
562 ## Set location and file name of generated config file.
558 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
563 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
559 ## alternative mod_dav config template. This needs to be a mako template
564 ## alternative mod_dav config template. This needs to be a mako template
560 #svn.proxy.config_template = ~/.rccontrol/enterprise-1/custom_svn_conf.mako
565 #svn.proxy.config_template = ~/.rccontrol/enterprise-1/custom_svn_conf.mako
561 ## Used as a prefix to the `Location` block in the generated config file.
566 ## Used as a prefix to the `Location` block in the generated config file.
562 ## In most cases it should be set to `/`.
567 ## In most cases it should be set to `/`.
563 svn.proxy.location_root = /
568 svn.proxy.location_root = /
564 ## Command to reload the mod dav svn configuration on change.
569 ## Command to reload the mod dav svn configuration on change.
565 ## Example: `/etc/init.d/apache2 reload`
570 ## Example: `/etc/init.d/apache2 reload`
566 #svn.proxy.reload_cmd = /etc/init.d/apache2 reload
571 #svn.proxy.reload_cmd = /etc/init.d/apache2 reload
567 ## If the timeout expires before the reload command finishes, the command will
572 ## If the timeout expires before the reload command finishes, the command will
568 ## be killed. Setting it to zero means no timeout. Defaults to 10 seconds.
573 ## be killed. Setting it to zero means no timeout. Defaults to 10 seconds.
569 #svn.proxy.reload_timeout = 10
574 #svn.proxy.reload_timeout = 10
570
575
571 ############################################################
576 ############################################################
572 ### SSH Support Settings ###
577 ### SSH Support Settings ###
573 ############################################################
578 ############################################################
574
579
575 ## Defines if a custom authorized_keys file should be created and written on
580 ## Defines if a custom authorized_keys file should be created and written on
576 ## any change user ssh keys. Setting this to false also disables posibility
581 ## any change user ssh keys. Setting this to false also disables posibility
577 ## of adding SSH keys by users from web interface. Super admins can still
582 ## of adding SSH keys by users from web interface. Super admins can still
578 ## manage SSH Keys.
583 ## manage SSH Keys.
579 ssh.generate_authorized_keyfile = false
584 ssh.generate_authorized_keyfile = false
580
585
581 ## Options for ssh, default is `no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding`
586 ## Options for ssh, default is `no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding`
582 # ssh.authorized_keys_ssh_opts =
587 # ssh.authorized_keys_ssh_opts =
583
588
584 ## Path to the authrozied_keys file where the generate entries are placed.
589 ## Path to the authrozied_keys file where the generate entries are placed.
585 ## It is possible to have multiple key files specified in `sshd_config` e.g.
590 ## It is possible to have multiple key files specified in `sshd_config` e.g.
586 ## AuthorizedKeysFile %h/.ssh/authorized_keys %h/.ssh/authorized_keys_rhodecode
591 ## AuthorizedKeysFile %h/.ssh/authorized_keys %h/.ssh/authorized_keys_rhodecode
587 ssh.authorized_keys_file_path = ~/.ssh/authorized_keys_rhodecode
592 ssh.authorized_keys_file_path = ~/.ssh/authorized_keys_rhodecode
588
593
589 ## Command to execute the SSH wrapper. The binary is available in the
594 ## Command to execute the SSH wrapper. The binary is available in the
590 ## rhodecode installation directory.
595 ## rhodecode installation directory.
591 ## e.g ~/.rccontrol/community-1/profile/bin/rc-ssh-wrapper
596 ## e.g ~/.rccontrol/community-1/profile/bin/rc-ssh-wrapper
592 ssh.wrapper_cmd = ~/.rccontrol/community-1/rc-ssh-wrapper
597 ssh.wrapper_cmd = ~/.rccontrol/community-1/rc-ssh-wrapper
593
598
594 ## Allow shell when executing the ssh-wrapper command
599 ## Allow shell when executing the ssh-wrapper command
595 ssh.wrapper_cmd_allow_shell = false
600 ssh.wrapper_cmd_allow_shell = false
596
601
597 ## Enables logging, and detailed output send back to the client during SSH
602 ## Enables logging, and detailed output send back to the client during SSH
598 ## operations. Usefull for debugging, shouldn't be used in production.
603 ## operations. Usefull for debugging, shouldn't be used in production.
599 ssh.enable_debug_logging = false
604 ssh.enable_debug_logging = false
600
605
601 ## Paths to binary executable, by default they are the names, but we can
606 ## Paths to binary executable, by default they are the names, but we can
602 ## override them if we want to use a custom one
607 ## override them if we want to use a custom one
603 ssh.executable.hg = ~/.rccontrol/vcsserver-1/profile/bin/hg
608 ssh.executable.hg = ~/.rccontrol/vcsserver-1/profile/bin/hg
604 ssh.executable.git = ~/.rccontrol/vcsserver-1/profile/bin/git
609 ssh.executable.git = ~/.rccontrol/vcsserver-1/profile/bin/git
605 ssh.executable.svn = ~/.rccontrol/vcsserver-1/profile/bin/svnserve
610 ssh.executable.svn = ~/.rccontrol/vcsserver-1/profile/bin/svnserve
606
611
607
612
608 ## Dummy marker to add new entries after.
613 ## Dummy marker to add new entries after.
609 ## Add any custom entries below. Please don't remove.
614 ## Add any custom entries below. Please don't remove.
610 custom.conf = 1
615 custom.conf = 1
611
616
612
617
613 ################################
618 ################################
614 ### LOGGING CONFIGURATION ####
619 ### LOGGING CONFIGURATION ####
615 ################################
620 ################################
616 [loggers]
621 [loggers]
617 keys = root, sqlalchemy, beaker, rhodecode, ssh_wrapper
622 keys = root, sqlalchemy, beaker, rhodecode, ssh_wrapper
618
623
619 [handlers]
624 [handlers]
620 keys = console, console_sql
625 keys = console, console_sql
621
626
622 [formatters]
627 [formatters]
623 keys = generic, color_formatter, color_formatter_sql
628 keys = generic, color_formatter, color_formatter_sql
624
629
625 #############
630 #############
626 ## LOGGERS ##
631 ## LOGGERS ##
627 #############
632 #############
628 [logger_root]
633 [logger_root]
629 level = NOTSET
634 level = NOTSET
630 handlers = console
635 handlers = console
631
636
632 [logger_sqlalchemy]
637 [logger_sqlalchemy]
633 level = INFO
638 level = INFO
634 handlers = console_sql
639 handlers = console_sql
635 qualname = sqlalchemy.engine
640 qualname = sqlalchemy.engine
636 propagate = 0
641 propagate = 0
637
642
638 [logger_beaker]
643 [logger_beaker]
639 level = DEBUG
644 level = DEBUG
640 handlers =
645 handlers =
641 qualname = beaker.container
646 qualname = beaker.container
642 propagate = 1
647 propagate = 1
643
648
644 [logger_rhodecode]
649 [logger_rhodecode]
645 level = DEBUG
650 level = DEBUG
646 handlers =
651 handlers =
647 qualname = rhodecode
652 qualname = rhodecode
648 propagate = 1
653 propagate = 1
649
654
650 [logger_ssh_wrapper]
655 [logger_ssh_wrapper]
651 level = DEBUG
656 level = DEBUG
652 handlers =
657 handlers =
653 qualname = ssh_wrapper
658 qualname = ssh_wrapper
654 propagate = 1
659 propagate = 1
655
660
656
661
657 ##############
662 ##############
658 ## HANDLERS ##
663 ## HANDLERS ##
659 ##############
664 ##############
660
665
661 [handler_console]
666 [handler_console]
662 class = StreamHandler
667 class = StreamHandler
663 args = (sys.stderr, )
668 args = (sys.stderr, )
664 level = INFO
669 level = INFO
665 formatter = generic
670 formatter = generic
666
671
667 [handler_console_sql]
672 [handler_console_sql]
668 class = StreamHandler
673 class = StreamHandler
669 args = (sys.stderr, )
674 args = (sys.stderr, )
670 level = WARN
675 level = WARN
671 formatter = generic
676 formatter = generic
672
677
673 ################
678 ################
674 ## FORMATTERS ##
679 ## FORMATTERS ##
675 ################
680 ################
676
681
677 [formatter_generic]
682 [formatter_generic]
678 class = rhodecode.lib.logging_formatter.ExceptionAwareFormatter
683 class = rhodecode.lib.logging_formatter.ExceptionAwareFormatter
679 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
684 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
680 datefmt = %Y-%m-%d %H:%M:%S
685 datefmt = %Y-%m-%d %H:%M:%S
681
686
682 [formatter_color_formatter]
687 [formatter_color_formatter]
683 class = rhodecode.lib.logging_formatter.ColorFormatter
688 class = rhodecode.lib.logging_formatter.ColorFormatter
684 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
689 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
685 datefmt = %Y-%m-%d %H:%M:%S
690 datefmt = %Y-%m-%d %H:%M:%S
686
691
687 [formatter_color_formatter_sql]
692 [formatter_color_formatter_sql]
688 class = rhodecode.lib.logging_formatter.ColorFormatterSql
693 class = rhodecode.lib.logging_formatter.ColorFormatterSql
689 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
694 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
690 datefmt = %Y-%m-%d %H:%M:%S
695 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,83 +1,81 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 # Copyright (C) 2016-2017 RhodeCode GmbH
3 # Copyright (C) 2016-2017 RhodeCode GmbH
4 #
4 #
5 # This program is free software: you can redistribute it and/or modify
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License, version 3
6 # it under the terms of the GNU Affero General Public License, version 3
7 # (only), as published by the Free Software Foundation.
7 # (only), as published by the Free Software Foundation.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU Affero General Public License
14 # You should have received a copy of the GNU Affero General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 #
16 #
17 # This program is dual-licensed. If you wish to learn more about the
17 # This program is dual-licensed. If you wish to learn more about the
18 # RhodeCode Enterprise Edition, including its added features, Support services,
18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20
20
21 import os
21 import os
22 import sys
22 import sys
23 import logging
23 import logging
24
24
25 import click
25 import click
26
26
27 from pyramid.paster import bootstrap, setup_logging
27 from pyramid.paster import setup_logging
28 from pyramid.request import Request
29
28
29 from rhodecode.lib.pyramid_utils import bootstrap
30 from .backends import SshWrapper
30 from .backends import SshWrapper
31
31
32 log = logging.getLogger(__name__)
32 log = logging.getLogger(__name__)
33
33
34
34
35 def setup_custom_logging(ini_path, debug):
35 def setup_custom_logging(ini_path, debug):
36 if debug:
36 if debug:
37 # enabled rhodecode.ini controlled logging setup
37 # enabled rhodecode.ini controlled logging setup
38 setup_logging(ini_path)
38 setup_logging(ini_path)
39 else:
39 else:
40 # configure logging in a mode that doesn't print anything.
40 # configure logging in a mode that doesn't print anything.
41 # in case of regularly configured logging it gets printed out back
41 # in case of regularly configured logging it gets printed out back
42 # to the client doing an SSH command.
42 # to the client doing an SSH command.
43 logger = logging.getLogger('')
43 logger = logging.getLogger('')
44 null = logging.NullHandler()
44 null = logging.NullHandler()
45 # add the handler to the root logger
45 # add the handler to the root logger
46 logger.handlers = [null]
46 logger.handlers = [null]
47
47
48
48
49 @click.command()
49 @click.command()
50 @click.argument('ini_path', type=click.Path(exists=True))
50 @click.argument('ini_path', type=click.Path(exists=True))
51 @click.option(
51 @click.option(
52 '--mode', '-m', required=False, default='auto',
52 '--mode', '-m', required=False, default='auto',
53 type=click.Choice(['auto', 'vcs', 'git', 'hg', 'svn', 'test']),
53 type=click.Choice(['auto', 'vcs', 'git', 'hg', 'svn', 'test']),
54 help='mode of operation')
54 help='mode of operation')
55 @click.option('--user', help='Username for which the command will be executed')
55 @click.option('--user', help='Username for which the command will be executed')
56 @click.option('--user-id', help='User ID for which the command will be executed')
56 @click.option('--user-id', help='User ID for which the command will be executed')
57 @click.option('--key-id', help='ID of the key from the database')
57 @click.option('--key-id', help='ID of the key from the database')
58 @click.option('--shell', '-s', is_flag=True, help='Allow Shell')
58 @click.option('--shell', '-s', is_flag=True, help='Allow Shell')
59 @click.option('--debug', is_flag=True, help='Enabled detailed output logging')
59 @click.option('--debug', is_flag=True, help='Enabled detailed output logging')
60 def main(ini_path, mode, user, user_id, key_id, shell, debug):
60 def main(ini_path, mode, user, user_id, key_id, shell, debug):
61 setup_custom_logging(ini_path, debug)
61 setup_custom_logging(ini_path, debug)
62
62
63 command = os.environ.get('SSH_ORIGINAL_COMMAND', '')
63 command = os.environ.get('SSH_ORIGINAL_COMMAND', '')
64 if not command and mode not in ['test']:
64 if not command and mode not in ['test']:
65 raise ValueError(
65 raise ValueError(
66 'Unable to fetch SSH_ORIGINAL_COMMAND from environment.'
66 'Unable to fetch SSH_ORIGINAL_COMMAND from environment.'
67 'Please make sure this is set and available during execution '
67 'Please make sure this is set and available during execution '
68 'of this script.')
68 'of this script.')
69 connection_info = os.environ.get('SSH_CONNECTION', '')
69 connection_info = os.environ.get('SSH_CONNECTION', '')
70
70
71 # TODO(marcink): configure the running host...
71 with bootstrap(ini_path) as env:
72 request = Request.blank('/', base_url='http://localhost:8080')
73 with bootstrap(ini_path, request=request) as env:
74 try:
72 try:
75 ssh_wrapper = SshWrapper(
73 ssh_wrapper = SshWrapper(
76 command, connection_info, mode,
74 command, connection_info, mode,
77 user, user_id, key_id, shell, ini_path, env)
75 user, user_id, key_id, shell, ini_path, env)
78 except Exception:
76 except Exception:
79 log.exception('Failed to execute SshWrapper')
77 log.exception('Failed to execute SshWrapper')
80 sys.exit(-5)
78 sys.exit(-5)
81
79
82 return_code = ssh_wrapper.wrap()
80 return_code = ssh_wrapper.wrap()
83 sys.exit(return_code)
81 sys.exit(return_code)
@@ -1,769 +1,774 b''
1
1
2
2
3 ################################################################################
3 ################################################################################
4 ## RHODECODE COMMUNITY EDITION CONFIGURATION ##
4 ## RHODECODE COMMUNITY EDITION CONFIGURATION ##
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
10
11 ################################################################################
11 ################################################################################
12 ## EMAIL CONFIGURATION ##
12 ## EMAIL CONFIGURATION ##
13 ## Uncomment and replace with the email address which should receive ##
13 ## Uncomment and replace with the email address which should receive ##
14 ## any error reports after an application crash ##
14 ## any error reports after an application crash ##
15 ## Additionally these settings will be used by the RhodeCode mailing system ##
15 ## Additionally these settings will be used by the RhodeCode mailing system ##
16 ################################################################################
16 ################################################################################
17
17
18 ## prefix all emails subjects with given prefix, helps filtering out emails
18 ## prefix all emails subjects with given prefix, helps filtering out emails
19 #email_prefix = [RhodeCode]
19 #email_prefix = [RhodeCode]
20
20
21 ## email FROM address all mails will be sent
21 ## email FROM address all mails will be sent
22 #app_email_from = rhodecode-noreply@localhost
22 #app_email_from = rhodecode-noreply@localhost
23
23
24 ## Uncomment and replace with the address which should receive any error report
24 ## Uncomment and replace with the address which should receive any error report
25 ## note: using appenlight for error handling doesn't need this to be uncommented
25 ## note: using appenlight for error handling doesn't need this to be uncommented
26 #email_to = admin@localhost
26 #email_to = admin@localhost
27
27
28 ## in case of Application errors, sent an error email form
28 ## in case of Application errors, sent an error email form
29 #error_email_from = rhodecode_error@localhost
29 #error_email_from = rhodecode_error@localhost
30
30
31 ## additional error message to be send in case of server crash
31 ## additional error message to be send in case of server crash
32 #error_message =
32 #error_message =
33
33
34
34
35 #smtp_server = mail.server.com
35 #smtp_server = mail.server.com
36 #smtp_username =
36 #smtp_username =
37 #smtp_password =
37 #smtp_password =
38 #smtp_port =
38 #smtp_port =
39 #smtp_use_tls = false
39 #smtp_use_tls = false
40 #smtp_use_ssl = true
40 #smtp_use_ssl = true
41 ## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
41 ## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
42 #smtp_auth =
42 #smtp_auth =
43
43
44 [server:main]
44 [server:main]
45 ## COMMON ##
45 ## COMMON ##
46 host = 0.0.0.0
46 host = 0.0.0.0
47 port = 5000
47 port = 5000
48
48
49 ##################################
49 ##################################
50 ## WAITRESS WSGI SERVER ##
50 ## WAITRESS WSGI SERVER ##
51 ## Recommended for Development ##
51 ## Recommended for Development ##
52 ##################################
52 ##################################
53
53
54 use = egg:waitress#main
54 use = egg:waitress#main
55 ## number of worker threads
55 ## number of worker threads
56 threads = 5
56 threads = 5
57 ## MAX BODY SIZE 100GB
57 ## MAX BODY SIZE 100GB
58 max_request_body_size = 107374182400
58 max_request_body_size = 107374182400
59 ## Use poll instead of select, fixes file descriptors limits problems.
59 ## Use poll instead of select, fixes file descriptors limits problems.
60 ## May not work on old windows systems.
60 ## May not work on old windows systems.
61 asyncore_use_poll = true
61 asyncore_use_poll = true
62
62
63
63
64 ##########################
64 ##########################
65 ## GUNICORN WSGI SERVER ##
65 ## GUNICORN WSGI SERVER ##
66 ##########################
66 ##########################
67 ## run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini
67 ## run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini
68
68
69 #use = egg:gunicorn#main
69 #use = egg:gunicorn#main
70 ## Sets the number of process workers. You must set `instance_id = *`
70 ## Sets the number of process workers. You must set `instance_id = *`
71 ## when this option is set to more than one worker, recommended
71 ## when this option is set to more than one worker, recommended
72 ## value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers
72 ## value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers
73 ## The `instance_id = *` must be set in the [app:main] section below
73 ## The `instance_id = *` must be set in the [app:main] section below
74 #workers = 2
74 #workers = 2
75 ## number of threads for each of the worker, must be set to 1 for gevent
75 ## number of threads for each of the worker, must be set to 1 for gevent
76 ## generally recommened to be at 1
76 ## generally recommened to be at 1
77 #threads = 1
77 #threads = 1
78 ## process name
78 ## process name
79 #proc_name = rhodecode
79 #proc_name = rhodecode
80 ## type of worker class, one of sync, gevent
80 ## type of worker class, one of sync, gevent
81 ## recommended for bigger setup is using of of other than sync one
81 ## recommended for bigger setup is using of of other than sync one
82 #worker_class = sync
82 #worker_class = sync
83 ## The maximum number of simultaneous clients. Valid only for Gevent
83 ## The maximum number of simultaneous clients. Valid only for Gevent
84 #worker_connections = 10
84 #worker_connections = 10
85 ## max number of requests that worker will handle before being gracefully
85 ## max number of requests that worker will handle before being gracefully
86 ## restarted, could prevent memory leaks
86 ## restarted, could prevent memory leaks
87 #max_requests = 1000
87 #max_requests = 1000
88 #max_requests_jitter = 30
88 #max_requests_jitter = 30
89 ## amount of time a worker can spend with handling a request before it
89 ## amount of time a worker can spend with handling a request before it
90 ## gets killed and restarted. Set to 6hrs
90 ## gets killed and restarted. Set to 6hrs
91 #timeout = 21600
91 #timeout = 21600
92
92
93 ## UWSGI ##
93 ## UWSGI ##
94 ## run with uwsgi --ini-paste-logged <inifile.ini>
94 ## run with uwsgi --ini-paste-logged <inifile.ini>
95 #[uwsgi]
95 #[uwsgi]
96 #socket = /tmp/uwsgi.sock
96 #socket = /tmp/uwsgi.sock
97 #master = true
97 #master = true
98 #http = 127.0.0.1:5000
98 #http = 127.0.0.1:5000
99
99
100 ## set as deamon and redirect all output to file
100 ## set as deamon and redirect all output to file
101 #daemonize = ./uwsgi_rhodecode.log
101 #daemonize = ./uwsgi_rhodecode.log
102
102
103 ## master process PID
103 ## master process PID
104 #pidfile = ./uwsgi_rhodecode.pid
104 #pidfile = ./uwsgi_rhodecode.pid
105
105
106 ## stats server with workers statistics, use uwsgitop
106 ## stats server with workers statistics, use uwsgitop
107 ## for monitoring, `uwsgitop 127.0.0.1:1717`
107 ## for monitoring, `uwsgitop 127.0.0.1:1717`
108 #stats = 127.0.0.1:1717
108 #stats = 127.0.0.1:1717
109 #memory-report = true
109 #memory-report = true
110
110
111 ## log 5XX errors
111 ## log 5XX errors
112 #log-5xx = true
112 #log-5xx = true
113
113
114 ## Set the socket listen queue size.
114 ## Set the socket listen queue size.
115 #listen = 256
115 #listen = 256
116
116
117 ## Gracefully Reload workers after the specified amount of managed requests
117 ## Gracefully Reload workers after the specified amount of managed requests
118 ## (avoid memory leaks).
118 ## (avoid memory leaks).
119 #max-requests = 1000
119 #max-requests = 1000
120
120
121 ## enable large buffers
121 ## enable large buffers
122 #buffer-size=65535
122 #buffer-size=65535
123
123
124 ## socket and http timeouts ##
124 ## socket and http timeouts ##
125 #http-timeout=3600
125 #http-timeout=3600
126 #socket-timeout=3600
126 #socket-timeout=3600
127
127
128 ## Log requests slower than the specified number of milliseconds.
128 ## Log requests slower than the specified number of milliseconds.
129 #log-slow = 10
129 #log-slow = 10
130
130
131 ## Exit if no app can be loaded.
131 ## Exit if no app can be loaded.
132 #need-app = true
132 #need-app = true
133
133
134 ## Set lazy mode (load apps in workers instead of master).
134 ## Set lazy mode (load apps in workers instead of master).
135 #lazy = true
135 #lazy = true
136
136
137 ## scaling ##
137 ## scaling ##
138 ## set cheaper algorithm to use, if not set default will be used
138 ## set cheaper algorithm to use, if not set default will be used
139 #cheaper-algo = spare
139 #cheaper-algo = spare
140
140
141 ## minimum number of workers to keep at all times
141 ## minimum number of workers to keep at all times
142 #cheaper = 1
142 #cheaper = 1
143
143
144 ## number of workers to spawn at startup
144 ## number of workers to spawn at startup
145 #cheaper-initial = 1
145 #cheaper-initial = 1
146
146
147 ## maximum number of workers that can be spawned
147 ## maximum number of workers that can be spawned
148 #workers = 4
148 #workers = 4
149
149
150 ## how many workers should be spawned at a time
150 ## how many workers should be spawned at a time
151 #cheaper-step = 1
151 #cheaper-step = 1
152
152
153 ## prefix middleware for RhodeCode.
153 ## prefix middleware for RhodeCode.
154 ## recommended when using proxy setup.
154 ## recommended when using proxy setup.
155 ## allows to set RhodeCode under a prefix in server.
155 ## allows to set RhodeCode under a prefix in server.
156 ## eg https://server.com/custom_prefix. Enable `filter-with =` option below as well.
156 ## eg https://server.com/custom_prefix. Enable `filter-with =` option below as well.
157 ## And set your prefix like: `prefix = /custom_prefix`
157 ## And set your prefix like: `prefix = /custom_prefix`
158 ## be sure to also set beaker.session.cookie_path = /custom_prefix if you need
158 ## be sure to also set beaker.session.cookie_path = /custom_prefix if you need
159 ## to make your cookies only work on prefix url
159 ## to make your cookies only work on prefix url
160 [filter:proxy-prefix]
160 [filter:proxy-prefix]
161 use = egg:PasteDeploy#prefix
161 use = egg:PasteDeploy#prefix
162 prefix = /
162 prefix = /
163
163
164 [app:main]
164 [app:main]
165 is_test = True
165 is_test = True
166 use = egg:rhodecode-enterprise-ce
166 use = egg:rhodecode-enterprise-ce
167
167
168 ## enable proxy prefix middleware, defined above
168 ## enable proxy prefix middleware, defined above
169 #filter-with = proxy-prefix
169 #filter-with = proxy-prefix
170
170
171
171
172 ## RHODECODE PLUGINS ##
172 ## RHODECODE PLUGINS ##
173 rhodecode.includes = rhodecode.api
173 rhodecode.includes = rhodecode.api
174
174
175 # api prefix url
175 # api prefix url
176 rhodecode.api.url = /_admin/api
176 rhodecode.api.url = /_admin/api
177
177
178
178
179 ## END RHODECODE PLUGINS ##
179 ## END RHODECODE PLUGINS ##
180
180
181 ## encryption key used to encrypt social plugin tokens,
181 ## encryption key used to encrypt social plugin tokens,
182 ## remote_urls with credentials etc, if not set it defaults to
182 ## remote_urls with credentials etc, if not set it defaults to
183 ## `beaker.session.secret`
183 ## `beaker.session.secret`
184 #rhodecode.encrypted_values.secret =
184 #rhodecode.encrypted_values.secret =
185
185
186 ## decryption strict mode (enabled by default). It controls if decryption raises
186 ## decryption strict mode (enabled by default). It controls if decryption raises
187 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
187 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
188 #rhodecode.encrypted_values.strict = false
188 #rhodecode.encrypted_values.strict = false
189
189
190 ## return gzipped responses from Rhodecode (static files/application)
190 ## return gzipped responses from Rhodecode (static files/application)
191 gzip_responses = false
191 gzip_responses = false
192
192
193 ## autogenerate javascript routes file on startup
193 ## autogenerate javascript routes file on startup
194 generate_js_files = false
194 generate_js_files = false
195
195
196 ## Optional Languages
196 ## Optional Languages
197 ## en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
197 ## en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
198 lang = en
198 lang = en
199
199
200 ## perform a full repository scan on each server start, this should be
200 ## perform a full repository scan on each server start, this should be
201 ## set to false after first startup, to allow faster server restarts.
201 ## set to false after first startup, to allow faster server restarts.
202 startup.import_repos = true
202 startup.import_repos = true
203
203
204 ## Uncomment and set this path to use archive download cache.
204 ## Uncomment and set this path to use archive download cache.
205 ## Once enabled, generated archives will be cached at this location
205 ## Once enabled, generated archives will be cached at this location
206 ## and served from the cache during subsequent requests for the same archive of
206 ## and served from the cache during subsequent requests for the same archive of
207 ## the repository.
207 ## the repository.
208 #archive_cache_dir = /tmp/tarballcache
208 #archive_cache_dir = /tmp/tarballcache
209
209
210 ## URL at which the application is running. This is used for bootstraping
211 ## requests in context when no web request is available. Used in ishell, or
212 ## SSH calls. Set this for events to receive proper url for SSH calls.
213 app.base_url = http://rhodecode.local
214
210 ## change this to unique ID for security
215 ## change this to unique ID for security
211 app_instance_uuid = rc-production
216 app_instance_uuid = rc-production
212
217
213 ## cut off limit for large diffs (size in bytes)
218 ## cut off limit for large diffs (size in bytes)
214 cut_off_limit_diff = 1024000
219 cut_off_limit_diff = 1024000
215 cut_off_limit_file = 256000
220 cut_off_limit_file = 256000
216
221
217 ## use cache version of scm repo everywhere
222 ## use cache version of scm repo everywhere
218 vcs_full_cache = false
223 vcs_full_cache = false
219
224
220 ## force https in RhodeCode, fixes https redirects, assumes it's always https
225 ## force https in RhodeCode, fixes https redirects, assumes it's always https
221 ## Normally this is controlled by proper http flags sent from http server
226 ## Normally this is controlled by proper http flags sent from http server
222 force_https = false
227 force_https = false
223
228
224 ## use Strict-Transport-Security headers
229 ## use Strict-Transport-Security headers
225 use_htsts = false
230 use_htsts = false
226
231
227 ## number of commits stats will parse on each iteration
232 ## number of commits stats will parse on each iteration
228 commit_parse_limit = 25
233 commit_parse_limit = 25
229
234
230 ## git rev filter option, --all is the default filter, if you need to
235 ## git rev filter option, --all is the default filter, if you need to
231 ## hide all refs in changelog switch this to --branches --tags
236 ## hide all refs in changelog switch this to --branches --tags
232 git_rev_filter = --all
237 git_rev_filter = --all
233
238
234 # Set to true if your repos are exposed using the dumb protocol
239 # Set to true if your repos are exposed using the dumb protocol
235 git_update_server_info = false
240 git_update_server_info = false
236
241
237 ## RSS/ATOM feed options
242 ## RSS/ATOM feed options
238 rss_cut_off_limit = 256000
243 rss_cut_off_limit = 256000
239 rss_items_per_page = 10
244 rss_items_per_page = 10
240 rss_include_diff = false
245 rss_include_diff = false
241
246
242 ## gist URL alias, used to create nicer urls for gist. This should be an
247 ## gist URL alias, used to create nicer urls for gist. This should be an
243 ## url that does rewrites to _admin/gists/{gistid}.
248 ## url that does rewrites to _admin/gists/{gistid}.
244 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
249 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
245 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/{gistid}
250 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/{gistid}
246 gist_alias_url =
251 gist_alias_url =
247
252
248 ## List of views (using glob pattern syntax) that AUTH TOKENS could be
253 ## List of views (using glob pattern syntax) that AUTH TOKENS could be
249 ## used for access.
254 ## used for access.
250 ## Adding ?auth_token=TOKEN_HASH to the url authenticates this request as if it
255 ## Adding ?auth_token=TOKEN_HASH to the url authenticates this request as if it
251 ## came from the the logged in user who own this authentication token.
256 ## came from the the logged in user who own this authentication token.
252 ## Additionally @TOKEN syntaxt can be used to bound the view to specific
257 ## Additionally @TOKEN syntaxt can be used to bound the view to specific
253 ## authentication token. Such view would be only accessible when used together
258 ## authentication token. Such view would be only accessible when used together
254 ## with this authentication token
259 ## with this authentication token
255 ##
260 ##
256 ## list of all views can be found under `/_admin/permissions/auth_token_access`
261 ## list of all views can be found under `/_admin/permissions/auth_token_access`
257 ## The list should be "," separated and on a single line.
262 ## The list should be "," separated and on a single line.
258 ##
263 ##
259 ## Most common views to enable:
264 ## Most common views to enable:
260 # RepoCommitsView:repo_commit_download
265 # RepoCommitsView:repo_commit_download
261 # RepoCommitsView:repo_commit_patch
266 # RepoCommitsView:repo_commit_patch
262 # RepoCommitsView:repo_commit_raw
267 # RepoCommitsView:repo_commit_raw
263 # RepoCommitsView:repo_commit_raw@TOKEN
268 # RepoCommitsView:repo_commit_raw@TOKEN
264 # RepoFilesView:repo_files_diff
269 # RepoFilesView:repo_files_diff
265 # RepoFilesView:repo_archivefile
270 # RepoFilesView:repo_archivefile
266 # RepoFilesView:repo_file_raw
271 # RepoFilesView:repo_file_raw
267 # GistView:*
272 # GistView:*
268 api_access_controllers_whitelist =
273 api_access_controllers_whitelist =
269
274
270 ## default encoding used to convert from and to unicode
275 ## default encoding used to convert from and to unicode
271 ## can be also a comma separated list of encoding in case of mixed encodings
276 ## can be also a comma separated list of encoding in case of mixed encodings
272 default_encoding = UTF-8
277 default_encoding = UTF-8
273
278
274 ## instance-id prefix
279 ## instance-id prefix
275 ## a prefix key for this instance used for cache invalidation when running
280 ## a prefix key for this instance used for cache invalidation when running
276 ## multiple instances of rhodecode, make sure it's globally unique for
281 ## multiple instances of rhodecode, make sure it's globally unique for
277 ## all running rhodecode instances. Leave empty if you don't use it
282 ## all running rhodecode instances. Leave empty if you don't use it
278 instance_id =
283 instance_id =
279
284
280 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
285 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
281 ## of an authentication plugin also if it is disabled by it's settings.
286 ## of an authentication plugin also if it is disabled by it's settings.
282 ## This could be useful if you are unable to log in to the system due to broken
287 ## This could be useful if you are unable to log in to the system due to broken
283 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
288 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
284 ## module to log in again and fix the settings.
289 ## module to log in again and fix the settings.
285 ##
290 ##
286 ## Available builtin plugin IDs (hash is part of the ID):
291 ## Available builtin plugin IDs (hash is part of the ID):
287 ## egg:rhodecode-enterprise-ce#rhodecode
292 ## egg:rhodecode-enterprise-ce#rhodecode
288 ## egg:rhodecode-enterprise-ce#pam
293 ## egg:rhodecode-enterprise-ce#pam
289 ## egg:rhodecode-enterprise-ce#ldap
294 ## egg:rhodecode-enterprise-ce#ldap
290 ## egg:rhodecode-enterprise-ce#jasig_cas
295 ## egg:rhodecode-enterprise-ce#jasig_cas
291 ## egg:rhodecode-enterprise-ce#headers
296 ## egg:rhodecode-enterprise-ce#headers
292 ## egg:rhodecode-enterprise-ce#crowd
297 ## egg:rhodecode-enterprise-ce#crowd
293 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
298 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
294
299
295 ## alternative return HTTP header for failed authentication. Default HTTP
300 ## alternative return HTTP header for failed authentication. Default HTTP
296 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
301 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
297 ## handling that causing a series of failed authentication calls.
302 ## handling that causing a series of failed authentication calls.
298 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
303 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
299 ## This will be served instead of default 401 on bad authnetication
304 ## This will be served instead of default 401 on bad authnetication
300 auth_ret_code =
305 auth_ret_code =
301
306
302 ## use special detection method when serving auth_ret_code, instead of serving
307 ## use special detection method when serving auth_ret_code, instead of serving
303 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
308 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
304 ## and then serve auth_ret_code to clients
309 ## and then serve auth_ret_code to clients
305 auth_ret_code_detection = false
310 auth_ret_code_detection = false
306
311
307 ## locking return code. When repository is locked return this HTTP code. 2XX
312 ## locking return code. When repository is locked return this HTTP code. 2XX
308 ## codes don't break the transactions while 4XX codes do
313 ## codes don't break the transactions while 4XX codes do
309 lock_ret_code = 423
314 lock_ret_code = 423
310
315
311 ## allows to change the repository location in settings page
316 ## allows to change the repository location in settings page
312 allow_repo_location_change = true
317 allow_repo_location_change = true
313
318
314 ## allows to setup custom hooks in settings page
319 ## allows to setup custom hooks in settings page
315 allow_custom_hooks_settings = true
320 allow_custom_hooks_settings = true
316
321
317 ## generated license token, goto license page in RhodeCode settings to obtain
322 ## generated license token, goto license page in RhodeCode settings to obtain
318 ## new token
323 ## new token
319 license_token = abra-cada-bra1-rce3
324 license_token = abra-cada-bra1-rce3
320
325
321 ## supervisor connection uri, for managing supervisor and logs.
326 ## supervisor connection uri, for managing supervisor and logs.
322 supervisor.uri =
327 supervisor.uri =
323 ## supervisord group name/id we only want this RC instance to handle
328 ## supervisord group name/id we only want this RC instance to handle
324 supervisor.group_id = dev
329 supervisor.group_id = dev
325
330
326 ## Display extended labs settings
331 ## Display extended labs settings
327 labs_settings_active = true
332 labs_settings_active = true
328
333
329 ####################################
334 ####################################
330 ### CELERY CONFIG ####
335 ### CELERY CONFIG ####
331 ####################################
336 ####################################
332 use_celery = false
337 use_celery = false
333 broker.host = localhost
338 broker.host = localhost
334 broker.vhost = rabbitmqhost
339 broker.vhost = rabbitmqhost
335 broker.port = 5672
340 broker.port = 5672
336 broker.user = rabbitmq
341 broker.user = rabbitmq
337 broker.password = qweqwe
342 broker.password = qweqwe
338
343
339 celery.imports = rhodecode.lib.celerylib.tasks
344 celery.imports = rhodecode.lib.celerylib.tasks
340
345
341 celery.result.backend = amqp
346 celery.result.backend = amqp
342 celery.result.dburi = amqp://
347 celery.result.dburi = amqp://
343 celery.result.serialier = json
348 celery.result.serialier = json
344
349
345 #celery.send.task.error.emails = true
350 #celery.send.task.error.emails = true
346 #celery.amqp.task.result.expires = 18000
351 #celery.amqp.task.result.expires = 18000
347
352
348 celeryd.concurrency = 2
353 celeryd.concurrency = 2
349 #celeryd.log.file = celeryd.log
354 #celeryd.log.file = celeryd.log
350 celeryd.log.level = debug
355 celeryd.log.level = debug
351 celeryd.max.tasks.per.child = 1
356 celeryd.max.tasks.per.child = 1
352
357
353 ## tasks will never be sent to the queue, but executed locally instead.
358 ## tasks will never be sent to the queue, but executed locally instead.
354 celery.always.eager = false
359 celery.always.eager = false
355
360
356 ####################################
361 ####################################
357 ### BEAKER CACHE ####
362 ### BEAKER CACHE ####
358 ####################################
363 ####################################
359 # default cache dir for templates. Putting this into a ramdisk
364 # default cache dir for templates. Putting this into a ramdisk
360 ## can boost performance, eg. %(here)s/data_ramdisk
365 ## can boost performance, eg. %(here)s/data_ramdisk
361 cache_dir = %(here)s/data
366 cache_dir = %(here)s/data
362
367
363 ## locking and default file storage for Beaker. Putting this into a ramdisk
368 ## locking and default file storage for Beaker. Putting this into a ramdisk
364 ## can boost performance, eg. %(here)s/data_ramdisk/cache/beaker_data
369 ## can boost performance, eg. %(here)s/data_ramdisk/cache/beaker_data
365 beaker.cache.data_dir = %(here)s/rc/data/cache/beaker_data
370 beaker.cache.data_dir = %(here)s/rc/data/cache/beaker_data
366 beaker.cache.lock_dir = %(here)s/rc/data/cache/beaker_lock
371 beaker.cache.lock_dir = %(here)s/rc/data/cache/beaker_lock
367
372
368 beaker.cache.regions = super_short_term, short_term, long_term, sql_cache_short, auth_plugins, repo_cache_long
373 beaker.cache.regions = super_short_term, short_term, long_term, sql_cache_short, auth_plugins, repo_cache_long
369
374
370 beaker.cache.super_short_term.type = memory
375 beaker.cache.super_short_term.type = memory
371 beaker.cache.super_short_term.expire = 1
376 beaker.cache.super_short_term.expire = 1
372 beaker.cache.super_short_term.key_length = 256
377 beaker.cache.super_short_term.key_length = 256
373
378
374 beaker.cache.short_term.type = memory
379 beaker.cache.short_term.type = memory
375 beaker.cache.short_term.expire = 60
380 beaker.cache.short_term.expire = 60
376 beaker.cache.short_term.key_length = 256
381 beaker.cache.short_term.key_length = 256
377
382
378 beaker.cache.long_term.type = memory
383 beaker.cache.long_term.type = memory
379 beaker.cache.long_term.expire = 36000
384 beaker.cache.long_term.expire = 36000
380 beaker.cache.long_term.key_length = 256
385 beaker.cache.long_term.key_length = 256
381
386
382 beaker.cache.sql_cache_short.type = memory
387 beaker.cache.sql_cache_short.type = memory
383 beaker.cache.sql_cache_short.expire = 1
388 beaker.cache.sql_cache_short.expire = 1
384 beaker.cache.sql_cache_short.key_length = 256
389 beaker.cache.sql_cache_short.key_length = 256
385
390
386 ## default is memory cache, configure only if required
391 ## default is memory cache, configure only if required
387 ## using multi-node or multi-worker setup
392 ## using multi-node or multi-worker setup
388 #beaker.cache.auth_plugins.type = ext:database
393 #beaker.cache.auth_plugins.type = ext:database
389 #beaker.cache.auth_plugins.lock_dir = %(here)s/data/cache/auth_plugin_lock
394 #beaker.cache.auth_plugins.lock_dir = %(here)s/data/cache/auth_plugin_lock
390 #beaker.cache.auth_plugins.url = postgresql://postgres:secret@localhost/rhodecode
395 #beaker.cache.auth_plugins.url = postgresql://postgres:secret@localhost/rhodecode
391 #beaker.cache.auth_plugins.url = mysql://root:secret@127.0.0.1/rhodecode
396 #beaker.cache.auth_plugins.url = mysql://root:secret@127.0.0.1/rhodecode
392 #beaker.cache.auth_plugins.sa.pool_recycle = 3600
397 #beaker.cache.auth_plugins.sa.pool_recycle = 3600
393 #beaker.cache.auth_plugins.sa.pool_size = 10
398 #beaker.cache.auth_plugins.sa.pool_size = 10
394 #beaker.cache.auth_plugins.sa.max_overflow = 0
399 #beaker.cache.auth_plugins.sa.max_overflow = 0
395
400
396 beaker.cache.repo_cache_long.type = memorylru_base
401 beaker.cache.repo_cache_long.type = memorylru_base
397 beaker.cache.repo_cache_long.max_items = 4096
402 beaker.cache.repo_cache_long.max_items = 4096
398 beaker.cache.repo_cache_long.expire = 2592000
403 beaker.cache.repo_cache_long.expire = 2592000
399
404
400 ## default is memorylru_base cache, configure only if required
405 ## default is memorylru_base cache, configure only if required
401 ## using multi-node or multi-worker setup
406 ## using multi-node or multi-worker setup
402 #beaker.cache.repo_cache_long.type = ext:memcached
407 #beaker.cache.repo_cache_long.type = ext:memcached
403 #beaker.cache.repo_cache_long.url = localhost:11211
408 #beaker.cache.repo_cache_long.url = localhost:11211
404 #beaker.cache.repo_cache_long.expire = 1209600
409 #beaker.cache.repo_cache_long.expire = 1209600
405 #beaker.cache.repo_cache_long.key_length = 256
410 #beaker.cache.repo_cache_long.key_length = 256
406
411
407 ####################################
412 ####################################
408 ### BEAKER SESSION ####
413 ### BEAKER SESSION ####
409 ####################################
414 ####################################
410
415
411 ## .session.type is type of storage options for the session, current allowed
416 ## .session.type is type of storage options for the session, current allowed
412 ## types are file, ext:memcached, ext:database, and memory (default).
417 ## types are file, ext:memcached, ext:database, and memory (default).
413 beaker.session.type = file
418 beaker.session.type = file
414 beaker.session.data_dir = %(here)s/rc/data/sessions/data
419 beaker.session.data_dir = %(here)s/rc/data/sessions/data
415
420
416 ## db based session, fast, and allows easy management over logged in users
421 ## db based session, fast, and allows easy management over logged in users
417 #beaker.session.type = ext:database
422 #beaker.session.type = ext:database
418 #beaker.session.table_name = db_session
423 #beaker.session.table_name = db_session
419 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
424 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
420 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
425 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
421 #beaker.session.sa.pool_recycle = 3600
426 #beaker.session.sa.pool_recycle = 3600
422 #beaker.session.sa.echo = false
427 #beaker.session.sa.echo = false
423
428
424 beaker.session.key = rhodecode
429 beaker.session.key = rhodecode
425 beaker.session.secret = test-rc-uytcxaz
430 beaker.session.secret = test-rc-uytcxaz
426 beaker.session.lock_dir = %(here)s/rc/data/sessions/lock
431 beaker.session.lock_dir = %(here)s/rc/data/sessions/lock
427
432
428 ## Secure encrypted cookie. Requires AES and AES python libraries
433 ## Secure encrypted cookie. Requires AES and AES python libraries
429 ## you must disable beaker.session.secret to use this
434 ## you must disable beaker.session.secret to use this
430 #beaker.session.encrypt_key = key_for_encryption
435 #beaker.session.encrypt_key = key_for_encryption
431 #beaker.session.validate_key = validation_key
436 #beaker.session.validate_key = validation_key
432
437
433 ## sets session as invalid(also logging out user) if it haven not been
438 ## sets session as invalid(also logging out user) if it haven not been
434 ## accessed for given amount of time in seconds
439 ## accessed for given amount of time in seconds
435 beaker.session.timeout = 2592000
440 beaker.session.timeout = 2592000
436 beaker.session.httponly = true
441 beaker.session.httponly = true
437 ## Path to use for the cookie. Set to prefix if you use prefix middleware
442 ## Path to use for the cookie. Set to prefix if you use prefix middleware
438 #beaker.session.cookie_path = /custom_prefix
443 #beaker.session.cookie_path = /custom_prefix
439
444
440 ## uncomment for https secure cookie
445 ## uncomment for https secure cookie
441 beaker.session.secure = false
446 beaker.session.secure = false
442
447
443 ## auto save the session to not to use .save()
448 ## auto save the session to not to use .save()
444 beaker.session.auto = false
449 beaker.session.auto = false
445
450
446 ## default cookie expiration time in seconds, set to `true` to set expire
451 ## default cookie expiration time in seconds, set to `true` to set expire
447 ## at browser close
452 ## at browser close
448 #beaker.session.cookie_expires = 3600
453 #beaker.session.cookie_expires = 3600
449
454
450 ###################################
455 ###################################
451 ## SEARCH INDEXING CONFIGURATION ##
456 ## SEARCH INDEXING CONFIGURATION ##
452 ###################################
457 ###################################
453 ## Full text search indexer is available in rhodecode-tools under
458 ## Full text search indexer is available in rhodecode-tools under
454 ## `rhodecode-tools index` command
459 ## `rhodecode-tools index` command
455
460
456 ## WHOOSH Backend, doesn't require additional services to run
461 ## WHOOSH Backend, doesn't require additional services to run
457 ## it works good with few dozen repos
462 ## it works good with few dozen repos
458 search.module = rhodecode.lib.index.whoosh
463 search.module = rhodecode.lib.index.whoosh
459 search.location = %(here)s/data/index
464 search.location = %(here)s/data/index
460
465
461 ########################################
466 ########################################
462 ### CHANNELSTREAM CONFIG ####
467 ### CHANNELSTREAM CONFIG ####
463 ########################################
468 ########################################
464 ## channelstream enables persistent connections and live notification
469 ## channelstream enables persistent connections and live notification
465 ## in the system. It's also used by the chat system
470 ## in the system. It's also used by the chat system
466
471
467 channelstream.enabled = false
472 channelstream.enabled = false
468
473
469 ## server address for channelstream server on the backend
474 ## server address for channelstream server on the backend
470 channelstream.server = 127.0.0.1:9800
475 channelstream.server = 127.0.0.1:9800
471 ## location of the channelstream server from outside world
476 ## location of the channelstream server from outside world
472 ## use ws:// for http or wss:// for https. This address needs to be handled
477 ## use ws:// for http or wss:// for https. This address needs to be handled
473 ## by external HTTP server such as Nginx or Apache
478 ## by external HTTP server such as Nginx or Apache
474 ## see nginx/apache configuration examples in our docs
479 ## see nginx/apache configuration examples in our docs
475 channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
480 channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
476 channelstream.secret = secret
481 channelstream.secret = secret
477 channelstream.history.location = %(here)s/channelstream_history
482 channelstream.history.location = %(here)s/channelstream_history
478
483
479 ## Internal application path that Javascript uses to connect into.
484 ## Internal application path that Javascript uses to connect into.
480 ## If you use proxy-prefix the prefix should be added before /_channelstream
485 ## If you use proxy-prefix the prefix should be added before /_channelstream
481 channelstream.proxy_path = /_channelstream
486 channelstream.proxy_path = /_channelstream
482
487
483
488
484 ###################################
489 ###################################
485 ## APPENLIGHT CONFIG ##
490 ## APPENLIGHT CONFIG ##
486 ###################################
491 ###################################
487
492
488 ## Appenlight is tailored to work with RhodeCode, see
493 ## Appenlight is tailored to work with RhodeCode, see
489 ## http://appenlight.com for details how to obtain an account
494 ## http://appenlight.com for details how to obtain an account
490
495
491 ## appenlight integration enabled
496 ## appenlight integration enabled
492 appenlight = false
497 appenlight = false
493
498
494 appenlight.server_url = https://api.appenlight.com
499 appenlight.server_url = https://api.appenlight.com
495 appenlight.api_key = YOUR_API_KEY
500 appenlight.api_key = YOUR_API_KEY
496 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
501 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
497
502
498 # used for JS client
503 # used for JS client
499 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
504 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
500
505
501 ## TWEAK AMOUNT OF INFO SENT HERE
506 ## TWEAK AMOUNT OF INFO SENT HERE
502
507
503 ## enables 404 error logging (default False)
508 ## enables 404 error logging (default False)
504 appenlight.report_404 = false
509 appenlight.report_404 = false
505
510
506 ## time in seconds after request is considered being slow (default 1)
511 ## time in seconds after request is considered being slow (default 1)
507 appenlight.slow_request_time = 1
512 appenlight.slow_request_time = 1
508
513
509 ## record slow requests in application
514 ## record slow requests in application
510 ## (needs to be enabled for slow datastore recording and time tracking)
515 ## (needs to be enabled for slow datastore recording and time tracking)
511 appenlight.slow_requests = true
516 appenlight.slow_requests = true
512
517
513 ## enable hooking to application loggers
518 ## enable hooking to application loggers
514 appenlight.logging = true
519 appenlight.logging = true
515
520
516 ## minimum log level for log capture
521 ## minimum log level for log capture
517 appenlight.logging.level = WARNING
522 appenlight.logging.level = WARNING
518
523
519 ## send logs only from erroneous/slow requests
524 ## send logs only from erroneous/slow requests
520 ## (saves API quota for intensive logging)
525 ## (saves API quota for intensive logging)
521 appenlight.logging_on_error = false
526 appenlight.logging_on_error = false
522
527
523 ## list of additonal keywords that should be grabbed from environ object
528 ## list of additonal keywords that should be grabbed from environ object
524 ## can be string with comma separated list of words in lowercase
529 ## can be string with comma separated list of words in lowercase
525 ## (by default client will always send following info:
530 ## (by default client will always send following info:
526 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
531 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
527 ## start with HTTP* this list be extended with additional keywords here
532 ## start with HTTP* this list be extended with additional keywords here
528 appenlight.environ_keys_whitelist =
533 appenlight.environ_keys_whitelist =
529
534
530 ## list of keywords that should be blanked from request object
535 ## list of keywords that should be blanked from request object
531 ## can be string with comma separated list of words in lowercase
536 ## can be string with comma separated list of words in lowercase
532 ## (by default client will always blank keys that contain following words
537 ## (by default client will always blank keys that contain following words
533 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
538 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
534 ## this list be extended with additional keywords set here
539 ## this list be extended with additional keywords set here
535 appenlight.request_keys_blacklist =
540 appenlight.request_keys_blacklist =
536
541
537 ## list of namespaces that should be ignores when gathering log entries
542 ## list of namespaces that should be ignores when gathering log entries
538 ## can be string with comma separated list of namespaces
543 ## can be string with comma separated list of namespaces
539 ## (by default the client ignores own entries: appenlight_client.client)
544 ## (by default the client ignores own entries: appenlight_client.client)
540 appenlight.log_namespace_blacklist =
545 appenlight.log_namespace_blacklist =
541
546
542
547
543 ################################################################################
548 ################################################################################
544 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
549 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
545 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
550 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
546 ## execute malicious code after an exception is raised. ##
551 ## execute malicious code after an exception is raised. ##
547 ################################################################################
552 ################################################################################
548 set debug = false
553 set debug = false
549
554
550
555
551 ##############
556 ##############
552 ## STYLING ##
557 ## STYLING ##
553 ##############
558 ##############
554 debug_style = false
559 debug_style = false
555
560
556 ###########################################
561 ###########################################
557 ### MAIN RHODECODE DATABASE CONFIG ###
562 ### MAIN RHODECODE DATABASE CONFIG ###
558 ###########################################
563 ###########################################
559 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode_test.db?timeout=30
564 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode_test.db?timeout=30
560 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode_test
565 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode_test
561 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode_test
566 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode_test
562 sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode_test.db?timeout=30
567 sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode_test.db?timeout=30
563
568
564 # see sqlalchemy docs for other advanced settings
569 # see sqlalchemy docs for other advanced settings
565
570
566 ## print the sql statements to output
571 ## print the sql statements to output
567 sqlalchemy.db1.echo = false
572 sqlalchemy.db1.echo = false
568 ## recycle the connections after this amount of seconds
573 ## recycle the connections after this amount of seconds
569 sqlalchemy.db1.pool_recycle = 3600
574 sqlalchemy.db1.pool_recycle = 3600
570 sqlalchemy.db1.convert_unicode = true
575 sqlalchemy.db1.convert_unicode = true
571
576
572 ## the number of connections to keep open inside the connection pool.
577 ## the number of connections to keep open inside the connection pool.
573 ## 0 indicates no limit
578 ## 0 indicates no limit
574 #sqlalchemy.db1.pool_size = 5
579 #sqlalchemy.db1.pool_size = 5
575
580
576 ## the number of connections to allow in connection pool "overflow", that is
581 ## the number of connections to allow in connection pool "overflow", that is
577 ## connections that can be opened above and beyond the pool_size setting,
582 ## connections that can be opened above and beyond the pool_size setting,
578 ## which defaults to five.
583 ## which defaults to five.
579 #sqlalchemy.db1.max_overflow = 10
584 #sqlalchemy.db1.max_overflow = 10
580
585
581
586
582 ##################
587 ##################
583 ### VCS CONFIG ###
588 ### VCS CONFIG ###
584 ##################
589 ##################
585 vcs.server.enable = true
590 vcs.server.enable = true
586 vcs.server = localhost:9901
591 vcs.server = localhost:9901
587
592
588 ## Web server connectivity protocol, responsible for web based VCS operatations
593 ## Web server connectivity protocol, responsible for web based VCS operatations
589 ## Available protocols are:
594 ## Available protocols are:
590 ## `http` - use http-rpc backend (default)
595 ## `http` - use http-rpc backend (default)
591 vcs.server.protocol = http
596 vcs.server.protocol = http
592
597
593 ## Push/Pull operations protocol, available options are:
598 ## Push/Pull operations protocol, available options are:
594 ## `http` - use http-rpc backend (default)
599 ## `http` - use http-rpc backend (default)
595 ## `vcsserver.scm_app` - internal app (EE only)
600 ## `vcsserver.scm_app` - internal app (EE only)
596 vcs.scm_app_implementation = http
601 vcs.scm_app_implementation = http
597
602
598 ## Push/Pull operations hooks protocol, available options are:
603 ## Push/Pull operations hooks protocol, available options are:
599 ## `http` - use http-rpc backend (default)
604 ## `http` - use http-rpc backend (default)
600 vcs.hooks.protocol = http
605 vcs.hooks.protocol = http
601
606
602 vcs.server.log_level = debug
607 vcs.server.log_level = debug
603 ## Start VCSServer with this instance as a subprocess, usefull for development
608 ## Start VCSServer with this instance as a subprocess, usefull for development
604 vcs.start_server = false
609 vcs.start_server = false
605
610
606 ## List of enabled VCS backends, available options are:
611 ## List of enabled VCS backends, available options are:
607 ## `hg` - mercurial
612 ## `hg` - mercurial
608 ## `git` - git
613 ## `git` - git
609 ## `svn` - subversion
614 ## `svn` - subversion
610 vcs.backends = hg, git, svn
615 vcs.backends = hg, git, svn
611
616
612 vcs.connection_timeout = 3600
617 vcs.connection_timeout = 3600
613 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
618 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
614 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible, pre-1.9-compatible
619 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible, pre-1.9-compatible
615 #vcs.svn.compatible_version = pre-1.8-compatible
620 #vcs.svn.compatible_version = pre-1.8-compatible
616
621
617
622
618 ############################################################
623 ############################################################
619 ### Subversion proxy support (mod_dav_svn) ###
624 ### Subversion proxy support (mod_dav_svn) ###
620 ### Maps RhodeCode repo groups into SVN paths for Apache ###
625 ### Maps RhodeCode repo groups into SVN paths for Apache ###
621 ############################################################
626 ############################################################
622 ## Enable or disable the config file generation.
627 ## Enable or disable the config file generation.
623 svn.proxy.generate_config = false
628 svn.proxy.generate_config = false
624 ## Generate config file with `SVNListParentPath` set to `On`.
629 ## Generate config file with `SVNListParentPath` set to `On`.
625 svn.proxy.list_parent_path = true
630 svn.proxy.list_parent_path = true
626 ## Set location and file name of generated config file.
631 ## Set location and file name of generated config file.
627 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
632 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
628 ## Used as a prefix to the `Location` block in the generated config file.
633 ## Used as a prefix to the `Location` block in the generated config file.
629 ## In most cases it should be set to `/`.
634 ## In most cases it should be set to `/`.
630 svn.proxy.location_root = /
635 svn.proxy.location_root = /
631 ## Command to reload the mod dav svn configuration on change.
636 ## Command to reload the mod dav svn configuration on change.
632 ## Example: `/etc/init.d/apache2 reload`
637 ## Example: `/etc/init.d/apache2 reload`
633 #svn.proxy.reload_cmd = /etc/init.d/apache2 reload
638 #svn.proxy.reload_cmd = /etc/init.d/apache2 reload
634 ## If the timeout expires before the reload command finishes, the command will
639 ## If the timeout expires before the reload command finishes, the command will
635 ## be killed. Setting it to zero means no timeout. Defaults to 10 seconds.
640 ## be killed. Setting it to zero means no timeout. Defaults to 10 seconds.
636 #svn.proxy.reload_timeout = 10
641 #svn.proxy.reload_timeout = 10
637
642
638 ############################################################
643 ############################################################
639 ### SSH Support Settings ###
644 ### SSH Support Settings ###
640 ############################################################
645 ############################################################
641
646
642 ## Defines if the authorized_keys file should be written on any change of
647 ## Defines if the authorized_keys file should be written on any change of
643 ## user ssh keys, setting this to false also disables posibility of adding
648 ## user ssh keys, setting this to false also disables posibility of adding
644 ## ssh keys for users from web interface.
649 ## ssh keys for users from web interface.
645 ssh.generate_authorized_keyfile = true
650 ssh.generate_authorized_keyfile = true
646
651
647 ## Options for ssh, default is `no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding`
652 ## Options for ssh, default is `no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding`
648 # ssh.authorized_keys_ssh_opts =
653 # ssh.authorized_keys_ssh_opts =
649
654
650 ## File to generate the authorized keys together with options
655 ## File to generate the authorized keys together with options
651 ## It is possible to have multiple key files specified in `sshd_config` e.g.
656 ## It is possible to have multiple key files specified in `sshd_config` e.g.
652 ## AuthorizedKeysFile %h/.ssh/authorized_keys %h/.ssh/authorized_keys_rhodecode
657 ## AuthorizedKeysFile %h/.ssh/authorized_keys %h/.ssh/authorized_keys_rhodecode
653 ssh.authorized_keys_file_path = %(here)s/rc/authorized_keys_rhodecode
658 ssh.authorized_keys_file_path = %(here)s/rc/authorized_keys_rhodecode
654
659
655 ## Command to execute the SSH wrapper. The binary is available in the
660 ## Command to execute the SSH wrapper. The binary is available in the
656 ## rhodecode installation directory.
661 ## rhodecode installation directory.
657 ## e.g ~/.rccontrol/community-1/profile/bin/rc-ssh-wrapper
662 ## e.g ~/.rccontrol/community-1/profile/bin/rc-ssh-wrapper
658 ssh.wrapper_cmd = ~/.rccontrol/community-1/rc-ssh-wrapper
663 ssh.wrapper_cmd = ~/.rccontrol/community-1/rc-ssh-wrapper
659
664
660 ## Allow shell when executing the ssh-wrapper command
665 ## Allow shell when executing the ssh-wrapper command
661 ssh.wrapper_cmd_allow_shell = false
666 ssh.wrapper_cmd_allow_shell = false
662
667
663 ## Enables logging, and detailed output send back to the client. Usefull for
668 ## Enables logging, and detailed output send back to the client. Usefull for
664 ## debugging, shouldn't be used in production.
669 ## debugging, shouldn't be used in production.
665 ssh.enable_debug_logging = false
670 ssh.enable_debug_logging = false
666
671
667 ## Paths to binary executrables, by default they are the names, but we can
672 ## Paths to binary executrables, by default they are the names, but we can
668 ## override them if we want to use a custom one
673 ## override them if we want to use a custom one
669 ssh.executable.hg = ~/.rccontrol/vcsserver-1/profile/bin/hg
674 ssh.executable.hg = ~/.rccontrol/vcsserver-1/profile/bin/hg
670 ssh.executable.git = ~/.rccontrol/vcsserver-1/profile/bin/git
675 ssh.executable.git = ~/.rccontrol/vcsserver-1/profile/bin/git
671 ssh.executable.svn = ~/.rccontrol/vcsserver-1/profile/bin/svnserve
676 ssh.executable.svn = ~/.rccontrol/vcsserver-1/profile/bin/svnserve
672
677
673
678
674 ## Dummy marker to add new entries after.
679 ## Dummy marker to add new entries after.
675 ## Add any custom entries below. Please don't remove.
680 ## Add any custom entries below. Please don't remove.
676 custom.conf = 1
681 custom.conf = 1
677
682
678
683
679 ################################
684 ################################
680 ### LOGGING CONFIGURATION ####
685 ### LOGGING CONFIGURATION ####
681 ################################
686 ################################
682 [loggers]
687 [loggers]
683 keys = root, routes, rhodecode, sqlalchemy, beaker, templates, ssh_wrapper
688 keys = root, routes, rhodecode, sqlalchemy, beaker, templates, ssh_wrapper
684
689
685 [handlers]
690 [handlers]
686 keys = console, console_sql
691 keys = console, console_sql
687
692
688 [formatters]
693 [formatters]
689 keys = generic, color_formatter, color_formatter_sql
694 keys = generic, color_formatter, color_formatter_sql
690
695
691 #############
696 #############
692 ## LOGGERS ##
697 ## LOGGERS ##
693 #############
698 #############
694 [logger_root]
699 [logger_root]
695 level = NOTSET
700 level = NOTSET
696 handlers = console
701 handlers = console
697
702
698 [logger_routes]
703 [logger_routes]
699 level = DEBUG
704 level = DEBUG
700 handlers =
705 handlers =
701 qualname = routes.middleware
706 qualname = routes.middleware
702 ## "level = DEBUG" logs the route matched and routing variables.
707 ## "level = DEBUG" logs the route matched and routing variables.
703 propagate = 1
708 propagate = 1
704
709
705 [logger_beaker]
710 [logger_beaker]
706 level = DEBUG
711 level = DEBUG
707 handlers =
712 handlers =
708 qualname = beaker.container
713 qualname = beaker.container
709 propagate = 1
714 propagate = 1
710
715
711 [logger_templates]
716 [logger_templates]
712 level = INFO
717 level = INFO
713 handlers =
718 handlers =
714 qualname = pylons.templating
719 qualname = pylons.templating
715 propagate = 1
720 propagate = 1
716
721
717 [logger_rhodecode]
722 [logger_rhodecode]
718 level = DEBUG
723 level = DEBUG
719 handlers =
724 handlers =
720 qualname = rhodecode
725 qualname = rhodecode
721 propagate = 1
726 propagate = 1
722
727
723 [logger_sqlalchemy]
728 [logger_sqlalchemy]
724 level = ERROR
729 level = ERROR
725 handlers = console_sql
730 handlers = console_sql
726 qualname = sqlalchemy.engine
731 qualname = sqlalchemy.engine
727 propagate = 0
732 propagate = 0
728
733
729 [logger_ssh_wrapper]
734 [logger_ssh_wrapper]
730 level = DEBUG
735 level = DEBUG
731 handlers =
736 handlers =
732 qualname = ssh_wrapper
737 qualname = ssh_wrapper
733 propagate = 1
738 propagate = 1
734
739
735
740
736 ##############
741 ##############
737 ## HANDLERS ##
742 ## HANDLERS ##
738 ##############
743 ##############
739
744
740 [handler_console]
745 [handler_console]
741 class = StreamHandler
746 class = StreamHandler
742 args = (sys.stderr,)
747 args = (sys.stderr,)
743 level = DEBUG
748 level = DEBUG
744 formatter = generic
749 formatter = generic
745
750
746 [handler_console_sql]
751 [handler_console_sql]
747 class = StreamHandler
752 class = StreamHandler
748 args = (sys.stderr,)
753 args = (sys.stderr,)
749 level = WARN
754 level = WARN
750 formatter = generic
755 formatter = generic
751
756
752 ################
757 ################
753 ## FORMATTERS ##
758 ## FORMATTERS ##
754 ################
759 ################
755
760
756 [formatter_generic]
761 [formatter_generic]
757 class = rhodecode.lib.logging_formatter.ExceptionAwareFormatter
762 class = rhodecode.lib.logging_formatter.ExceptionAwareFormatter
758 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
763 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
759 datefmt = %Y-%m-%d %H:%M:%S
764 datefmt = %Y-%m-%d %H:%M:%S
760
765
761 [formatter_color_formatter]
766 [formatter_color_formatter]
762 class = rhodecode.lib.logging_formatter.ColorFormatter
767 class = rhodecode.lib.logging_formatter.ColorFormatter
763 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
768 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
764 datefmt = %Y-%m-%d %H:%M:%S
769 datefmt = %Y-%m-%d %H:%M:%S
765
770
766 [formatter_color_formatter_sql]
771 [formatter_color_formatter_sql]
767 class = rhodecode.lib.logging_formatter.ColorFormatterSql
772 class = rhodecode.lib.logging_formatter.ColorFormatterSql
768 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
773 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
769 datefmt = %Y-%m-%d %H:%M:%S
774 datefmt = %Y-%m-%d %H:%M:%S
General Comments 0
You need to be logged in to leave comments. Login now