##// END OF EJS Templates
channelstream: try to use proxy url's unless ws urls are not explictly defined
ergo -
r844:de9d9b12 stable
parent child Browse files
Show More
@@ -1,672 +1,674 b''
1
1
2
2
3 ################################################################################
3 ################################################################################
4 ## RHODECODE ENTERPRISE CONFIGURATION ##
4 ## RHODECODE ENTERPRISE 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 <inifile.ini> --paste <inifile.ini>
67 ## run with gunicorn --log-config <inifile.ini> --paste <inifile.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
93
94 ## prefix middleware for RhodeCode, disables force_https flag.
94 ## prefix middleware for RhodeCode, disables force_https flag.
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/<prefix>. Enable `filter-with =` option below as well.
97 ## eg https://server.com/<prefix>. Enable `filter-with =` option below as well.
98 ## optionally set prefix like: `prefix = /<your-prefix>`
98 ## optionally set prefix like: `prefix = /<your-prefix>`
99 [filter:proxy-prefix]
99 [filter:proxy-prefix]
100 use = egg:PasteDeploy#prefix
100 use = egg:PasteDeploy#prefix
101 prefix = /
101 prefix = /
102
102
103 [app:main]
103 [app:main]
104 use = egg:rhodecode-enterprise-ce
104 use = egg:rhodecode-enterprise-ce
105
105
106 ## enable proxy prefix middleware, defined above
106 ## enable proxy prefix middleware, defined above
107 #filter-with = proxy-prefix
107 #filter-with = proxy-prefix
108
108
109 # During development the we want to have the debug toolbar enabled
109 # During development the we want to have the debug toolbar enabled
110 pyramid.includes =
110 pyramid.includes =
111 pyramid_debugtoolbar
111 pyramid_debugtoolbar
112 rhodecode.utils.debugtoolbar
112 rhodecode.utils.debugtoolbar
113 rhodecode.lib.middleware.request_wrapper
113 rhodecode.lib.middleware.request_wrapper
114
114
115 pyramid.reload_templates = true
115 pyramid.reload_templates = true
116
116
117 debugtoolbar.hosts = 0.0.0.0/0
117 debugtoolbar.hosts = 0.0.0.0/0
118 debugtoolbar.exclude_prefixes =
118 debugtoolbar.exclude_prefixes =
119 /css
119 /css
120 /fonts
120 /fonts
121 /images
121 /images
122 /js
122 /js
123
123
124 ## RHODECODE PLUGINS ##
124 ## RHODECODE PLUGINS ##
125 rhodecode.includes =
125 rhodecode.includes =
126 rhodecode.api
126 rhodecode.api
127
127
128
128
129 # api prefix url
129 # api prefix url
130 rhodecode.api.url = /_admin/api
130 rhodecode.api.url = /_admin/api
131
131
132
132
133 ## END RHODECODE PLUGINS ##
133 ## END RHODECODE PLUGINS ##
134
134
135 ## encryption key used to encrypt social plugin tokens,
135 ## encryption key used to encrypt social plugin tokens,
136 ## remote_urls with credentials etc, if not set it defaults to
136 ## remote_urls with credentials etc, if not set it defaults to
137 ## `beaker.session.secret`
137 ## `beaker.session.secret`
138 #rhodecode.encrypted_values.secret =
138 #rhodecode.encrypted_values.secret =
139
139
140 ## decryption strict mode (enabled by default). It controls if decryption raises
140 ## decryption strict mode (enabled by default). It controls if decryption raises
141 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
141 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
142 #rhodecode.encrypted_values.strict = false
142 #rhodecode.encrypted_values.strict = false
143
143
144 ## return gzipped responses from Rhodecode (static files/application)
144 ## return gzipped responses from Rhodecode (static files/application)
145 gzip_responses = false
145 gzip_responses = false
146
146
147 ## autogenerate javascript routes file on startup
147 ## autogenerate javascript routes file on startup
148 generate_js_files = false
148 generate_js_files = false
149
149
150 ## Optional Languages
150 ## Optional Languages
151 ## en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
151 ## en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
152 lang = en
152 lang = en
153
153
154 ## perform a full repository scan on each server start, this should be
154 ## perform a full repository scan on each server start, this should be
155 ## set to false after first startup, to allow faster server restarts.
155 ## set to false after first startup, to allow faster server restarts.
156 startup.import_repos = false
156 startup.import_repos = false
157
157
158 ## Uncomment and set this path to use archive download cache.
158 ## Uncomment and set this path to use archive download cache.
159 ## Once enabled, generated archives will be cached at this location
159 ## Once enabled, generated archives will be cached at this location
160 ## and served from the cache during subsequent requests for the same archive of
160 ## and served from the cache during subsequent requests for the same archive of
161 ## the repository.
161 ## the repository.
162 #archive_cache_dir = /tmp/tarballcache
162 #archive_cache_dir = /tmp/tarballcache
163
163
164 ## change this to unique ID for security
164 ## change this to unique ID for security
165 app_instance_uuid = rc-production
165 app_instance_uuid = rc-production
166
166
167 ## cut off limit for large diffs (size in bytes)
167 ## cut off limit for large diffs (size in bytes)
168 cut_off_limit_diff = 1024000
168 cut_off_limit_diff = 1024000
169 cut_off_limit_file = 256000
169 cut_off_limit_file = 256000
170
170
171 ## use cache version of scm repo everywhere
171 ## use cache version of scm repo everywhere
172 vcs_full_cache = true
172 vcs_full_cache = true
173
173
174 ## force https in RhodeCode, fixes https redirects, assumes it's always https
174 ## force https in RhodeCode, fixes https redirects, assumes it's always https
175 ## Normally this is controlled by proper http flags sent from http server
175 ## Normally this is controlled by proper http flags sent from http server
176 force_https = false
176 force_https = false
177
177
178 ## use Strict-Transport-Security headers
178 ## use Strict-Transport-Security headers
179 use_htsts = false
179 use_htsts = false
180
180
181 ## number of commits stats will parse on each iteration
181 ## number of commits stats will parse on each iteration
182 commit_parse_limit = 25
182 commit_parse_limit = 25
183
183
184 ## git rev filter option, --all is the default filter, if you need to
184 ## git rev filter option, --all is the default filter, if you need to
185 ## hide all refs in changelog switch this to --branches --tags
185 ## hide all refs in changelog switch this to --branches --tags
186 git_rev_filter = --branches --tags
186 git_rev_filter = --branches --tags
187
187
188 # Set to true if your repos are exposed using the dumb protocol
188 # Set to true if your repos are exposed using the dumb protocol
189 git_update_server_info = false
189 git_update_server_info = false
190
190
191 ## RSS/ATOM feed options
191 ## RSS/ATOM feed options
192 rss_cut_off_limit = 256000
192 rss_cut_off_limit = 256000
193 rss_items_per_page = 10
193 rss_items_per_page = 10
194 rss_include_diff = false
194 rss_include_diff = false
195
195
196 ## gist URL alias, used to create nicer urls for gist. This should be an
196 ## gist URL alias, used to create nicer urls for gist. This should be an
197 ## url that does rewrites to _admin/gists/<gistid>.
197 ## url that does rewrites to _admin/gists/<gistid>.
198 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
198 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
199 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/<gistid>
199 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/<gistid>
200 gist_alias_url =
200 gist_alias_url =
201
201
202 ## List of controllers (using glob pattern syntax) that AUTH TOKENS could be
202 ## List of controllers (using glob pattern syntax) that AUTH TOKENS could be
203 ## used for access.
203 ## used for access.
204 ## Adding ?auth_token = <token> to the url authenticates this request as if it
204 ## Adding ?auth_token = <token> to the url authenticates this request as if it
205 ## came from the the logged in user who own this authentication token.
205 ## came from the the logged in user who own this authentication token.
206 ##
206 ##
207 ## Syntax is <ControllerClass>:<function_pattern>.
207 ## Syntax is <ControllerClass>:<function_pattern>.
208 ## To enable access to raw_files put `FilesController:raw`.
208 ## To enable access to raw_files put `FilesController:raw`.
209 ## To enable access to patches add `ChangesetController:changeset_patch`.
209 ## To enable access to patches add `ChangesetController:changeset_patch`.
210 ## The list should be "," separated and on a single line.
210 ## The list should be "," separated and on a single line.
211 ##
211 ##
212 ## Recommended controllers to enable:
212 ## Recommended controllers to enable:
213 # ChangesetController:changeset_patch,
213 # ChangesetController:changeset_patch,
214 # ChangesetController:changeset_raw,
214 # ChangesetController:changeset_raw,
215 # FilesController:raw,
215 # FilesController:raw,
216 # FilesController:archivefile,
216 # FilesController:archivefile,
217 # GistsController:*,
217 # GistsController:*,
218 api_access_controllers_whitelist =
218 api_access_controllers_whitelist =
219
219
220 ## default encoding used to convert from and to unicode
220 ## default encoding used to convert from and to unicode
221 ## can be also a comma separated list of encoding in case of mixed encodings
221 ## can be also a comma separated list of encoding in case of mixed encodings
222 default_encoding = UTF-8
222 default_encoding = UTF-8
223
223
224 ## instance-id prefix
224 ## instance-id prefix
225 ## a prefix key for this instance used for cache invalidation when running
225 ## a prefix key for this instance used for cache invalidation when running
226 ## multiple instances of rhodecode, make sure it's globally unique for
226 ## multiple instances of rhodecode, make sure it's globally unique for
227 ## all running rhodecode instances. Leave empty if you don't use it
227 ## all running rhodecode instances. Leave empty if you don't use it
228 instance_id =
228 instance_id =
229
229
230 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
230 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
231 ## of an authentication plugin also if it is disabled by it's settings.
231 ## of an authentication plugin also if it is disabled by it's settings.
232 ## This could be useful if you are unable to log in to the system due to broken
232 ## This could be useful if you are unable to log in to the system due to broken
233 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
233 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
234 ## module to log in again and fix the settings.
234 ## module to log in again and fix the settings.
235 ##
235 ##
236 ## Available builtin plugin IDs (hash is part of the ID):
236 ## Available builtin plugin IDs (hash is part of the ID):
237 ## egg:rhodecode-enterprise-ce#rhodecode
237 ## egg:rhodecode-enterprise-ce#rhodecode
238 ## egg:rhodecode-enterprise-ce#pam
238 ## egg:rhodecode-enterprise-ce#pam
239 ## egg:rhodecode-enterprise-ce#ldap
239 ## egg:rhodecode-enterprise-ce#ldap
240 ## egg:rhodecode-enterprise-ce#jasig_cas
240 ## egg:rhodecode-enterprise-ce#jasig_cas
241 ## egg:rhodecode-enterprise-ce#headers
241 ## egg:rhodecode-enterprise-ce#headers
242 ## egg:rhodecode-enterprise-ce#crowd
242 ## egg:rhodecode-enterprise-ce#crowd
243 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
243 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
244
244
245 ## alternative return HTTP header for failed authentication. Default HTTP
245 ## alternative return HTTP header for failed authentication. Default HTTP
246 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
246 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
247 ## handling that causing a series of failed authentication calls.
247 ## handling that causing a series of failed authentication calls.
248 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
248 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
249 ## This will be served instead of default 401 on bad authnetication
249 ## This will be served instead of default 401 on bad authnetication
250 auth_ret_code =
250 auth_ret_code =
251
251
252 ## use special detection method when serving auth_ret_code, instead of serving
252 ## use special detection method when serving auth_ret_code, instead of serving
253 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
253 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
254 ## and then serve auth_ret_code to clients
254 ## and then serve auth_ret_code to clients
255 auth_ret_code_detection = false
255 auth_ret_code_detection = false
256
256
257 ## locking return code. When repository is locked return this HTTP code. 2XX
257 ## locking return code. When repository is locked return this HTTP code. 2XX
258 ## codes don't break the transactions while 4XX codes do
258 ## codes don't break the transactions while 4XX codes do
259 lock_ret_code = 423
259 lock_ret_code = 423
260
260
261 ## allows to change the repository location in settings page
261 ## allows to change the repository location in settings page
262 allow_repo_location_change = true
262 allow_repo_location_change = true
263
263
264 ## allows to setup custom hooks in settings page
264 ## allows to setup custom hooks in settings page
265 allow_custom_hooks_settings = true
265 allow_custom_hooks_settings = true
266
266
267 ## generated license token, goto license page in RhodeCode settings to obtain
267 ## generated license token, goto license page in RhodeCode settings to obtain
268 ## new token
268 ## new token
269 license_token =
269 license_token =
270
270
271 ## supervisor connection uri, for managing supervisor and logs.
271 ## supervisor connection uri, for managing supervisor and logs.
272 supervisor.uri =
272 supervisor.uri =
273 ## supervisord group name/id we only want this RC instance to handle
273 ## supervisord group name/id we only want this RC instance to handle
274 supervisor.group_id = dev
274 supervisor.group_id = dev
275
275
276 ## Display extended labs settings
276 ## Display extended labs settings
277 labs_settings_active = true
277 labs_settings_active = true
278
278
279 ####################################
279 ####################################
280 ### CELERY CONFIG ####
280 ### CELERY CONFIG ####
281 ####################################
281 ####################################
282 use_celery = false
282 use_celery = false
283 broker.host = localhost
283 broker.host = localhost
284 broker.vhost = rabbitmqhost
284 broker.vhost = rabbitmqhost
285 broker.port = 5672
285 broker.port = 5672
286 broker.user = rabbitmq
286 broker.user = rabbitmq
287 broker.password = qweqwe
287 broker.password = qweqwe
288
288
289 celery.imports = rhodecode.lib.celerylib.tasks
289 celery.imports = rhodecode.lib.celerylib.tasks
290
290
291 celery.result.backend = amqp
291 celery.result.backend = amqp
292 celery.result.dburi = amqp://
292 celery.result.dburi = amqp://
293 celery.result.serialier = json
293 celery.result.serialier = json
294
294
295 #celery.send.task.error.emails = true
295 #celery.send.task.error.emails = true
296 #celery.amqp.task.result.expires = 18000
296 #celery.amqp.task.result.expires = 18000
297
297
298 celeryd.concurrency = 2
298 celeryd.concurrency = 2
299 #celeryd.log.file = celeryd.log
299 #celeryd.log.file = celeryd.log
300 celeryd.log.level = debug
300 celeryd.log.level = debug
301 celeryd.max.tasks.per.child = 1
301 celeryd.max.tasks.per.child = 1
302
302
303 ## tasks will never be sent to the queue, but executed locally instead.
303 ## tasks will never be sent to the queue, but executed locally instead.
304 celery.always.eager = false
304 celery.always.eager = false
305
305
306 ####################################
306 ####################################
307 ### BEAKER CACHE ####
307 ### BEAKER CACHE ####
308 ####################################
308 ####################################
309 # default cache dir for templates. Putting this into a ramdisk
309 # default cache dir for templates. Putting this into a ramdisk
310 ## can boost performance, eg. %(here)s/data_ramdisk
310 ## can boost performance, eg. %(here)s/data_ramdisk
311 cache_dir = %(here)s/data
311 cache_dir = %(here)s/data
312
312
313 ## locking and default file storage for Beaker. Putting this into a ramdisk
313 ## locking and default file storage for Beaker. Putting this into a ramdisk
314 ## can boost performance, eg. %(here)s/data_ramdisk/cache/beaker_data
314 ## can boost performance, eg. %(here)s/data_ramdisk/cache/beaker_data
315 beaker.cache.data_dir = %(here)s/data/cache/beaker_data
315 beaker.cache.data_dir = %(here)s/data/cache/beaker_data
316 beaker.cache.lock_dir = %(here)s/data/cache/beaker_lock
316 beaker.cache.lock_dir = %(here)s/data/cache/beaker_lock
317
317
318 beaker.cache.regions = super_short_term, short_term, long_term, sql_cache_short, auth_plugins, repo_cache_long
318 beaker.cache.regions = super_short_term, short_term, long_term, sql_cache_short, auth_plugins, repo_cache_long
319
319
320 beaker.cache.super_short_term.type = memory
320 beaker.cache.super_short_term.type = memory
321 beaker.cache.super_short_term.expire = 10
321 beaker.cache.super_short_term.expire = 10
322 beaker.cache.super_short_term.key_length = 256
322 beaker.cache.super_short_term.key_length = 256
323
323
324 beaker.cache.short_term.type = memory
324 beaker.cache.short_term.type = memory
325 beaker.cache.short_term.expire = 60
325 beaker.cache.short_term.expire = 60
326 beaker.cache.short_term.key_length = 256
326 beaker.cache.short_term.key_length = 256
327
327
328 beaker.cache.long_term.type = memory
328 beaker.cache.long_term.type = memory
329 beaker.cache.long_term.expire = 36000
329 beaker.cache.long_term.expire = 36000
330 beaker.cache.long_term.key_length = 256
330 beaker.cache.long_term.key_length = 256
331
331
332 beaker.cache.sql_cache_short.type = memory
332 beaker.cache.sql_cache_short.type = memory
333 beaker.cache.sql_cache_short.expire = 10
333 beaker.cache.sql_cache_short.expire = 10
334 beaker.cache.sql_cache_short.key_length = 256
334 beaker.cache.sql_cache_short.key_length = 256
335
335
336 ## default is memory cache, configure only if required
336 ## default is memory cache, configure only if required
337 ## using multi-node or multi-worker setup
337 ## using multi-node or multi-worker setup
338 #beaker.cache.auth_plugins.type = ext:database
338 #beaker.cache.auth_plugins.type = ext:database
339 #beaker.cache.auth_plugins.lock_dir = %(here)s/data/cache/auth_plugin_lock
339 #beaker.cache.auth_plugins.lock_dir = %(here)s/data/cache/auth_plugin_lock
340 #beaker.cache.auth_plugins.url = postgresql://postgres:secret@localhost/rhodecode
340 #beaker.cache.auth_plugins.url = postgresql://postgres:secret@localhost/rhodecode
341 #beaker.cache.auth_plugins.url = mysql://root:secret@127.0.0.1/rhodecode
341 #beaker.cache.auth_plugins.url = mysql://root:secret@127.0.0.1/rhodecode
342 #beaker.cache.auth_plugins.sa.pool_recycle = 3600
342 #beaker.cache.auth_plugins.sa.pool_recycle = 3600
343 #beaker.cache.auth_plugins.sa.pool_size = 10
343 #beaker.cache.auth_plugins.sa.pool_size = 10
344 #beaker.cache.auth_plugins.sa.max_overflow = 0
344 #beaker.cache.auth_plugins.sa.max_overflow = 0
345
345
346 beaker.cache.repo_cache_long.type = memorylru_base
346 beaker.cache.repo_cache_long.type = memorylru_base
347 beaker.cache.repo_cache_long.max_items = 4096
347 beaker.cache.repo_cache_long.max_items = 4096
348 beaker.cache.repo_cache_long.expire = 2592000
348 beaker.cache.repo_cache_long.expire = 2592000
349
349
350 ## default is memorylru_base cache, configure only if required
350 ## default is memorylru_base cache, configure only if required
351 ## using multi-node or multi-worker setup
351 ## using multi-node or multi-worker setup
352 #beaker.cache.repo_cache_long.type = ext:memcached
352 #beaker.cache.repo_cache_long.type = ext:memcached
353 #beaker.cache.repo_cache_long.url = localhost:11211
353 #beaker.cache.repo_cache_long.url = localhost:11211
354 #beaker.cache.repo_cache_long.expire = 1209600
354 #beaker.cache.repo_cache_long.expire = 1209600
355 #beaker.cache.repo_cache_long.key_length = 256
355 #beaker.cache.repo_cache_long.key_length = 256
356
356
357 ####################################
357 ####################################
358 ### BEAKER SESSION ####
358 ### BEAKER SESSION ####
359 ####################################
359 ####################################
360
360
361 ## .session.type is type of storage options for the session, current allowed
361 ## .session.type is type of storage options for the session, current allowed
362 ## types are file, ext:memcached, ext:database, and memory (default).
362 ## types are file, ext:memcached, ext:database, and memory (default).
363 beaker.session.type = file
363 beaker.session.type = file
364 beaker.session.data_dir = %(here)s/data/sessions/data
364 beaker.session.data_dir = %(here)s/data/sessions/data
365
365
366 ## db based session, fast, and allows easy management over logged in users
366 ## db based session, fast, and allows easy management over logged in users
367 #beaker.session.type = ext:database
367 #beaker.session.type = ext:database
368 #beaker.session.table_name = db_session
368 #beaker.session.table_name = db_session
369 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
369 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
370 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
370 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
371 #beaker.session.sa.pool_recycle = 3600
371 #beaker.session.sa.pool_recycle = 3600
372 #beaker.session.sa.echo = false
372 #beaker.session.sa.echo = false
373
373
374 beaker.session.key = rhodecode
374 beaker.session.key = rhodecode
375 beaker.session.secret = develop-rc-uytcxaz
375 beaker.session.secret = develop-rc-uytcxaz
376 beaker.session.lock_dir = %(here)s/data/sessions/lock
376 beaker.session.lock_dir = %(here)s/data/sessions/lock
377
377
378 ## Secure encrypted cookie. Requires AES and AES python libraries
378 ## Secure encrypted cookie. Requires AES and AES python libraries
379 ## you must disable beaker.session.secret to use this
379 ## you must disable beaker.session.secret to use this
380 #beaker.session.encrypt_key = <key_for_encryption>
380 #beaker.session.encrypt_key = <key_for_encryption>
381 #beaker.session.validate_key = <validation_key>
381 #beaker.session.validate_key = <validation_key>
382
382
383 ## sets session as invalid(also logging out user) if it haven not been
383 ## sets session as invalid(also logging out user) if it haven not been
384 ## accessed for given amount of time in seconds
384 ## accessed for given amount of time in seconds
385 beaker.session.timeout = 2592000
385 beaker.session.timeout = 2592000
386 beaker.session.httponly = true
386 beaker.session.httponly = true
387 ## Path to use for the cookie.
387 ## Path to use for the cookie.
388 #beaker.session.cookie_path = /<your-prefix>
388 #beaker.session.cookie_path = /<your-prefix>
389
389
390 ## uncomment for https secure cookie
390 ## uncomment for https secure cookie
391 beaker.session.secure = false
391 beaker.session.secure = false
392
392
393 ## auto save the session to not to use .save()
393 ## auto save the session to not to use .save()
394 beaker.session.auto = false
394 beaker.session.auto = false
395
395
396 ## default cookie expiration time in seconds, set to `true` to set expire
396 ## default cookie expiration time in seconds, set to `true` to set expire
397 ## at browser close
397 ## at browser close
398 #beaker.session.cookie_expires = 3600
398 #beaker.session.cookie_expires = 3600
399
399
400 ###################################
400 ###################################
401 ## SEARCH INDEXING CONFIGURATION ##
401 ## SEARCH INDEXING CONFIGURATION ##
402 ###################################
402 ###################################
403 ## Full text search indexer is available in rhodecode-tools under
403 ## Full text search indexer is available in rhodecode-tools under
404 ## `rhodecode-tools index` command
404 ## `rhodecode-tools index` command
405
405
406 # WHOOSH Backend, doesn't require additional services to run
406 # WHOOSH Backend, doesn't require additional services to run
407 # it works good with few dozen repos
407 # it works good with few dozen repos
408 search.module = rhodecode.lib.index.whoosh
408 search.module = rhodecode.lib.index.whoosh
409 search.location = %(here)s/data/index
409 search.location = %(here)s/data/index
410
410
411 ########################################
411 ########################################
412 ### CHANNELSTREAM CONFIG ####
412 ### CHANNELSTREAM CONFIG ####
413 ########################################
413 ########################################
414 ## channelstream enables persistent connections and live notification
414 ## channelstream enables persistent connections and live notification
415 ## in the system. It's also used by the chat system
415 ## in the system. It's also used by the chat system
416
416
417 channelstream.enabled = false
417 channelstream.enabled = false
418 ## location of channelstream server on the backend
418 ## location of channelstream server on the backend
419 channelstream.server = 127.0.0.1:9800
419 channelstream.server = 127.0.0.1:9800
420 ## location of the channelstream server from outside world
420 ## location of the channelstream server from outside world
421 ## most likely this would be an http server special backend URL, that handles
421 ## most likely this would be an http server special backend URL, that handles
422 ## websocket connections see nginx example for config
422 ## websocket connections see nginx example for config
423 channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
423 # channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
424 ## proxy path that can be used by http daemons for exposing channelstream
425 # channelstream.proxy_path = /_channelstream
424 channelstream.secret = secret
426 channelstream.secret = secret
425 channelstream.history.location = %(here)s/channelstream_history
427 channelstream.history.location = %(here)s/channelstream_history
426
428
427
429
428 ###################################
430 ###################################
429 ## APPENLIGHT CONFIG ##
431 ## APPENLIGHT CONFIG ##
430 ###################################
432 ###################################
431
433
432 ## Appenlight is tailored to work with RhodeCode, see
434 ## Appenlight is tailored to work with RhodeCode, see
433 ## http://appenlight.com for details how to obtain an account
435 ## http://appenlight.com for details how to obtain an account
434
436
435 ## appenlight integration enabled
437 ## appenlight integration enabled
436 appenlight = false
438 appenlight = false
437
439
438 appenlight.server_url = https://api.appenlight.com
440 appenlight.server_url = https://api.appenlight.com
439 appenlight.api_key = YOUR_API_KEY
441 appenlight.api_key = YOUR_API_KEY
440 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
442 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
441
443
442 # used for JS client
444 # used for JS client
443 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
445 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
444
446
445 ## TWEAK AMOUNT OF INFO SENT HERE
447 ## TWEAK AMOUNT OF INFO SENT HERE
446
448
447 ## enables 404 error logging (default False)
449 ## enables 404 error logging (default False)
448 appenlight.report_404 = false
450 appenlight.report_404 = false
449
451
450 ## time in seconds after request is considered being slow (default 1)
452 ## time in seconds after request is considered being slow (default 1)
451 appenlight.slow_request_time = 1
453 appenlight.slow_request_time = 1
452
454
453 ## record slow requests in application
455 ## record slow requests in application
454 ## (needs to be enabled for slow datastore recording and time tracking)
456 ## (needs to be enabled for slow datastore recording and time tracking)
455 appenlight.slow_requests = true
457 appenlight.slow_requests = true
456
458
457 ## enable hooking to application loggers
459 ## enable hooking to application loggers
458 appenlight.logging = true
460 appenlight.logging = true
459
461
460 ## minimum log level for log capture
462 ## minimum log level for log capture
461 appenlight.logging.level = WARNING
463 appenlight.logging.level = WARNING
462
464
463 ## send logs only from erroneous/slow requests
465 ## send logs only from erroneous/slow requests
464 ## (saves API quota for intensive logging)
466 ## (saves API quota for intensive logging)
465 appenlight.logging_on_error = false
467 appenlight.logging_on_error = false
466
468
467 ## list of additonal keywords that should be grabbed from environ object
469 ## list of additonal keywords that should be grabbed from environ object
468 ## can be string with comma separated list of words in lowercase
470 ## can be string with comma separated list of words in lowercase
469 ## (by default client will always send following info:
471 ## (by default client will always send following info:
470 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
472 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
471 ## start with HTTP* this list be extended with additional keywords here
473 ## start with HTTP* this list be extended with additional keywords here
472 appenlight.environ_keys_whitelist =
474 appenlight.environ_keys_whitelist =
473
475
474 ## list of keywords that should be blanked from request object
476 ## list of keywords that should be blanked from request object
475 ## can be string with comma separated list of words in lowercase
477 ## can be string with comma separated list of words in lowercase
476 ## (by default client will always blank keys that contain following words
478 ## (by default client will always blank keys that contain following words
477 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
479 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
478 ## this list be extended with additional keywords set here
480 ## this list be extended with additional keywords set here
479 appenlight.request_keys_blacklist =
481 appenlight.request_keys_blacklist =
480
482
481 ## list of namespaces that should be ignores when gathering log entries
483 ## list of namespaces that should be ignores when gathering log entries
482 ## can be string with comma separated list of namespaces
484 ## can be string with comma separated list of namespaces
483 ## (by default the client ignores own entries: appenlight_client.client)
485 ## (by default the client ignores own entries: appenlight_client.client)
484 appenlight.log_namespace_blacklist =
486 appenlight.log_namespace_blacklist =
485
487
486
488
487 ################################################################################
489 ################################################################################
488 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
490 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
489 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
491 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
490 ## execute malicious code after an exception is raised. ##
492 ## execute malicious code after an exception is raised. ##
491 ################################################################################
493 ################################################################################
492 #set debug = false
494 #set debug = false
493
495
494
496
495 ##############
497 ##############
496 ## STYLING ##
498 ## STYLING ##
497 ##############
499 ##############
498 debug_style = true
500 debug_style = true
499
501
500 #########################################################
502 #########################################################
501 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
503 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
502 #########################################################
504 #########################################################
503 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
505 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
504 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
506 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
505 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode
507 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode
506 sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
508 sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
507
509
508 # see sqlalchemy docs for other advanced settings
510 # see sqlalchemy docs for other advanced settings
509
511
510 ## print the sql statements to output
512 ## print the sql statements to output
511 sqlalchemy.db1.echo = false
513 sqlalchemy.db1.echo = false
512 ## recycle the connections after this ammount of seconds
514 ## recycle the connections after this ammount of seconds
513 sqlalchemy.db1.pool_recycle = 3600
515 sqlalchemy.db1.pool_recycle = 3600
514 sqlalchemy.db1.convert_unicode = true
516 sqlalchemy.db1.convert_unicode = true
515
517
516 ## the number of connections to keep open inside the connection pool.
518 ## the number of connections to keep open inside the connection pool.
517 ## 0 indicates no limit
519 ## 0 indicates no limit
518 #sqlalchemy.db1.pool_size = 5
520 #sqlalchemy.db1.pool_size = 5
519
521
520 ## the number of connections to allow in connection pool "overflow", that is
522 ## the number of connections to allow in connection pool "overflow", that is
521 ## connections that can be opened above and beyond the pool_size setting,
523 ## connections that can be opened above and beyond the pool_size setting,
522 ## which defaults to five.
524 ## which defaults to five.
523 #sqlalchemy.db1.max_overflow = 10
525 #sqlalchemy.db1.max_overflow = 10
524
526
525
527
526 ##################
528 ##################
527 ### VCS CONFIG ###
529 ### VCS CONFIG ###
528 ##################
530 ##################
529 vcs.server.enable = true
531 vcs.server.enable = true
530 vcs.server = localhost:9900
532 vcs.server = localhost:9900
531
533
532 ## Web server connectivity protocol, responsible for web based VCS operatations
534 ## Web server connectivity protocol, responsible for web based VCS operatations
533 ## Available protocols are:
535 ## Available protocols are:
534 ## `pyro4` - using pyro4 server
536 ## `pyro4` - using pyro4 server
535 ## `http` - using http-rpc backend
537 ## `http` - using http-rpc backend
536 vcs.server.protocol = http
538 vcs.server.protocol = http
537
539
538 ## Push/Pull operations protocol, available options are:
540 ## Push/Pull operations protocol, available options are:
539 ## `pyro4` - using pyro4 server
541 ## `pyro4` - using pyro4 server
540 ## `rhodecode.lib.middleware.utils.scm_app_http` - Http based, recommended
542 ## `rhodecode.lib.middleware.utils.scm_app_http` - Http based, recommended
541 ## `vcsserver.scm_app` - internal app (EE only)
543 ## `vcsserver.scm_app` - internal app (EE only)
542 vcs.scm_app_implementation = rhodecode.lib.middleware.utils.scm_app_http
544 vcs.scm_app_implementation = rhodecode.lib.middleware.utils.scm_app_http
543
545
544 ## Push/Pull operations hooks protocol, available options are:
546 ## Push/Pull operations hooks protocol, available options are:
545 ## `pyro4` - using pyro4 server
547 ## `pyro4` - using pyro4 server
546 ## `http` - using http-rpc backend
548 ## `http` - using http-rpc backend
547 vcs.hooks.protocol = http
549 vcs.hooks.protocol = http
548
550
549 vcs.server.log_level = debug
551 vcs.server.log_level = debug
550 ## Start VCSServer with this instance as a subprocess, usefull for development
552 ## Start VCSServer with this instance as a subprocess, usefull for development
551 vcs.start_server = true
553 vcs.start_server = true
552
554
553 ## List of enabled VCS backends, available options are:
555 ## List of enabled VCS backends, available options are:
554 ## `hg` - mercurial
556 ## `hg` - mercurial
555 ## `git` - git
557 ## `git` - git
556 ## `svn` - subversion
558 ## `svn` - subversion
557 vcs.backends = hg, git, svn
559 vcs.backends = hg, git, svn
558
560
559 vcs.connection_timeout = 3600
561 vcs.connection_timeout = 3600
560 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
562 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
561 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible
563 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible
562 #vcs.svn.compatible_version = pre-1.8-compatible
564 #vcs.svn.compatible_version = pre-1.8-compatible
563
565
564
566
565 ############################################################
567 ############################################################
566 ### Subversion proxy support (mod_dav_svn) ###
568 ### Subversion proxy support (mod_dav_svn) ###
567 ### Maps RhodeCode repo groups into SVN paths for Apache ###
569 ### Maps RhodeCode repo groups into SVN paths for Apache ###
568 ############################################################
570 ############################################################
569 ## Enable or disable the config file generation.
571 ## Enable or disable the config file generation.
570 svn.proxy.generate_config = false
572 svn.proxy.generate_config = false
571 ## Generate config file with `SVNListParentPath` set to `On`.
573 ## Generate config file with `SVNListParentPath` set to `On`.
572 svn.proxy.list_parent_path = true
574 svn.proxy.list_parent_path = true
573 ## Set location and file name of generated config file.
575 ## Set location and file name of generated config file.
574 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
576 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
575 ## File system path to the directory containing the repositories served by
577 ## File system path to the directory containing the repositories served by
576 ## RhodeCode.
578 ## RhodeCode.
577 svn.proxy.parent_path_root = /path/to/repo_store
579 svn.proxy.parent_path_root = /path/to/repo_store
578 ## Used as a prefix to the <Location> block in the generated config file. In
580 ## Used as a prefix to the <Location> block in the generated config file. In
579 ## most cases it should be set to `/`.
581 ## most cases it should be set to `/`.
580 svn.proxy.location_root = /
582 svn.proxy.location_root = /
581
583
582
584
583 ################################
585 ################################
584 ### LOGGING CONFIGURATION ####
586 ### LOGGING CONFIGURATION ####
585 ################################
587 ################################
586 [loggers]
588 [loggers]
587 keys = root, routes, rhodecode, sqlalchemy, beaker, pyro4, templates
589 keys = root, routes, rhodecode, sqlalchemy, beaker, pyro4, templates
588
590
589 [handlers]
591 [handlers]
590 keys = console, console_sql
592 keys = console, console_sql
591
593
592 [formatters]
594 [formatters]
593 keys = generic, color_formatter, color_formatter_sql
595 keys = generic, color_formatter, color_formatter_sql
594
596
595 #############
597 #############
596 ## LOGGERS ##
598 ## LOGGERS ##
597 #############
599 #############
598 [logger_root]
600 [logger_root]
599 level = NOTSET
601 level = NOTSET
600 handlers = console
602 handlers = console
601
603
602 [logger_routes]
604 [logger_routes]
603 level = DEBUG
605 level = DEBUG
604 handlers =
606 handlers =
605 qualname = routes.middleware
607 qualname = routes.middleware
606 ## "level = DEBUG" logs the route matched and routing variables.
608 ## "level = DEBUG" logs the route matched and routing variables.
607 propagate = 1
609 propagate = 1
608
610
609 [logger_beaker]
611 [logger_beaker]
610 level = DEBUG
612 level = DEBUG
611 handlers =
613 handlers =
612 qualname = beaker.container
614 qualname = beaker.container
613 propagate = 1
615 propagate = 1
614
616
615 [logger_pyro4]
617 [logger_pyro4]
616 level = DEBUG
618 level = DEBUG
617 handlers =
619 handlers =
618 qualname = Pyro4
620 qualname = Pyro4
619 propagate = 1
621 propagate = 1
620
622
621 [logger_templates]
623 [logger_templates]
622 level = INFO
624 level = INFO
623 handlers =
625 handlers =
624 qualname = pylons.templating
626 qualname = pylons.templating
625 propagate = 1
627 propagate = 1
626
628
627 [logger_rhodecode]
629 [logger_rhodecode]
628 level = DEBUG
630 level = DEBUG
629 handlers =
631 handlers =
630 qualname = rhodecode
632 qualname = rhodecode
631 propagate = 1
633 propagate = 1
632
634
633 [logger_sqlalchemy]
635 [logger_sqlalchemy]
634 level = INFO
636 level = INFO
635 handlers = console_sql
637 handlers = console_sql
636 qualname = sqlalchemy.engine
638 qualname = sqlalchemy.engine
637 propagate = 0
639 propagate = 0
638
640
639 ##############
641 ##############
640 ## HANDLERS ##
642 ## HANDLERS ##
641 ##############
643 ##############
642
644
643 [handler_console]
645 [handler_console]
644 class = StreamHandler
646 class = StreamHandler
645 args = (sys.stderr,)
647 args = (sys.stderr,)
646 level = DEBUG
648 level = DEBUG
647 formatter = color_formatter
649 formatter = color_formatter
648
650
649 [handler_console_sql]
651 [handler_console_sql]
650 class = StreamHandler
652 class = StreamHandler
651 args = (sys.stderr,)
653 args = (sys.stderr,)
652 level = DEBUG
654 level = DEBUG
653 formatter = color_formatter_sql
655 formatter = color_formatter_sql
654
656
655 ################
657 ################
656 ## FORMATTERS ##
658 ## FORMATTERS ##
657 ################
659 ################
658
660
659 [formatter_generic]
661 [formatter_generic]
660 class = rhodecode.lib.logging_formatter.Pyro4AwareFormatter
662 class = rhodecode.lib.logging_formatter.Pyro4AwareFormatter
661 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
663 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
662 datefmt = %Y-%m-%d %H:%M:%S
664 datefmt = %Y-%m-%d %H:%M:%S
663
665
664 [formatter_color_formatter]
666 [formatter_color_formatter]
665 class = rhodecode.lib.logging_formatter.ColorFormatter
667 class = rhodecode.lib.logging_formatter.ColorFormatter
666 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
668 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
667 datefmt = %Y-%m-%d %H:%M:%S
669 datefmt = %Y-%m-%d %H:%M:%S
668
670
669 [formatter_color_formatter_sql]
671 [formatter_color_formatter_sql]
670 class = rhodecode.lib.logging_formatter.ColorFormatterSql
672 class = rhodecode.lib.logging_formatter.ColorFormatterSql
671 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
673 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
672 datefmt = %Y-%m-%d %H:%M:%S
674 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,641 +1,643 b''
1
1
2
2
3 ################################################################################
3 ################################################################################
4 ## RHODECODE ENTERPRISE CONFIGURATION ##
4 ## RHODECODE ENTERPRISE 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 <inifile.ini> --paste <inifile.ini>
67 ## run with gunicorn --log-config <inifile.ini> --paste <inifile.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
93
94 ## prefix middleware for RhodeCode, disables force_https flag.
94 ## prefix middleware for RhodeCode, disables force_https flag.
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/<prefix>. Enable `filter-with =` option below as well.
97 ## eg https://server.com/<prefix>. Enable `filter-with =` option below as well.
98 ## optionally set prefix like: `prefix = /<your-prefix>`
98 ## optionally set prefix like: `prefix = /<your-prefix>`
99 [filter:proxy-prefix]
99 [filter:proxy-prefix]
100 use = egg:PasteDeploy#prefix
100 use = egg:PasteDeploy#prefix
101 prefix = /
101 prefix = /
102
102
103 [app:main]
103 [app:main]
104 use = egg:rhodecode-enterprise-ce
104 use = egg:rhodecode-enterprise-ce
105
105
106 ## enable proxy prefix middleware, defined above
106 ## enable proxy prefix middleware, defined above
107 #filter-with = proxy-prefix
107 #filter-with = proxy-prefix
108
108
109 ## encryption key used to encrypt social plugin tokens,
109 ## encryption key used to encrypt social plugin tokens,
110 ## remote_urls with credentials etc, if not set it defaults to
110 ## remote_urls with credentials etc, if not set it defaults to
111 ## `beaker.session.secret`
111 ## `beaker.session.secret`
112 #rhodecode.encrypted_values.secret =
112 #rhodecode.encrypted_values.secret =
113
113
114 ## decryption strict mode (enabled by default). It controls if decryption raises
114 ## decryption strict mode (enabled by default). It controls if decryption raises
115 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
115 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
116 #rhodecode.encrypted_values.strict = false
116 #rhodecode.encrypted_values.strict = false
117
117
118 ## return gzipped responses from Rhodecode (static files/application)
118 ## return gzipped responses from Rhodecode (static files/application)
119 gzip_responses = false
119 gzip_responses = false
120
120
121 ## autogenerate javascript routes file on startup
121 ## autogenerate javascript routes file on startup
122 generate_js_files = false
122 generate_js_files = false
123
123
124 ## Optional Languages
124 ## Optional Languages
125 ## en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
125 ## en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
126 lang = en
126 lang = en
127
127
128 ## perform a full repository scan on each server start, this should be
128 ## perform a full repository scan on each server start, this should be
129 ## set to false after first startup, to allow faster server restarts.
129 ## set to false after first startup, to allow faster server restarts.
130 startup.import_repos = false
130 startup.import_repos = false
131
131
132 ## Uncomment and set this path to use archive download cache.
132 ## Uncomment and set this path to use archive download cache.
133 ## Once enabled, generated archives will be cached at this location
133 ## Once enabled, generated archives will be cached at this location
134 ## and served from the cache during subsequent requests for the same archive of
134 ## and served from the cache during subsequent requests for the same archive of
135 ## the repository.
135 ## the repository.
136 #archive_cache_dir = /tmp/tarballcache
136 #archive_cache_dir = /tmp/tarballcache
137
137
138 ## change this to unique ID for security
138 ## change this to unique ID for security
139 app_instance_uuid = rc-production
139 app_instance_uuid = rc-production
140
140
141 ## cut off limit for large diffs (size in bytes)
141 ## cut off limit for large diffs (size in bytes)
142 cut_off_limit_diff = 1024000
142 cut_off_limit_diff = 1024000
143 cut_off_limit_file = 256000
143 cut_off_limit_file = 256000
144
144
145 ## use cache version of scm repo everywhere
145 ## use cache version of scm repo everywhere
146 vcs_full_cache = true
146 vcs_full_cache = true
147
147
148 ## force https in RhodeCode, fixes https redirects, assumes it's always https
148 ## force https in RhodeCode, fixes https redirects, assumes it's always https
149 ## Normally this is controlled by proper http flags sent from http server
149 ## Normally this is controlled by proper http flags sent from http server
150 force_https = false
150 force_https = false
151
151
152 ## use Strict-Transport-Security headers
152 ## use Strict-Transport-Security headers
153 use_htsts = false
153 use_htsts = false
154
154
155 ## number of commits stats will parse on each iteration
155 ## number of commits stats will parse on each iteration
156 commit_parse_limit = 25
156 commit_parse_limit = 25
157
157
158 ## git rev filter option, --all is the default filter, if you need to
158 ## git rev filter option, --all is the default filter, if you need to
159 ## hide all refs in changelog switch this to --branches --tags
159 ## hide all refs in changelog switch this to --branches --tags
160 git_rev_filter = --branches --tags
160 git_rev_filter = --branches --tags
161
161
162 # Set to true if your repos are exposed using the dumb protocol
162 # Set to true if your repos are exposed using the dumb protocol
163 git_update_server_info = false
163 git_update_server_info = false
164
164
165 ## RSS/ATOM feed options
165 ## RSS/ATOM feed options
166 rss_cut_off_limit = 256000
166 rss_cut_off_limit = 256000
167 rss_items_per_page = 10
167 rss_items_per_page = 10
168 rss_include_diff = false
168 rss_include_diff = false
169
169
170 ## gist URL alias, used to create nicer urls for gist. This should be an
170 ## gist URL alias, used to create nicer urls for gist. This should be an
171 ## url that does rewrites to _admin/gists/<gistid>.
171 ## url that does rewrites to _admin/gists/<gistid>.
172 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
172 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
173 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/<gistid>
173 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/<gistid>
174 gist_alias_url =
174 gist_alias_url =
175
175
176 ## List of controllers (using glob pattern syntax) that AUTH TOKENS could be
176 ## List of controllers (using glob pattern syntax) that AUTH TOKENS could be
177 ## used for access.
177 ## used for access.
178 ## Adding ?auth_token = <token> to the url authenticates this request as if it
178 ## Adding ?auth_token = <token> to the url authenticates this request as if it
179 ## came from the the logged in user who own this authentication token.
179 ## came from the the logged in user who own this authentication token.
180 ##
180 ##
181 ## Syntax is <ControllerClass>:<function_pattern>.
181 ## Syntax is <ControllerClass>:<function_pattern>.
182 ## To enable access to raw_files put `FilesController:raw`.
182 ## To enable access to raw_files put `FilesController:raw`.
183 ## To enable access to patches add `ChangesetController:changeset_patch`.
183 ## To enable access to patches add `ChangesetController:changeset_patch`.
184 ## The list should be "," separated and on a single line.
184 ## The list should be "," separated and on a single line.
185 ##
185 ##
186 ## Recommended controllers to enable:
186 ## Recommended controllers to enable:
187 # ChangesetController:changeset_patch,
187 # ChangesetController:changeset_patch,
188 # ChangesetController:changeset_raw,
188 # ChangesetController:changeset_raw,
189 # FilesController:raw,
189 # FilesController:raw,
190 # FilesController:archivefile,
190 # FilesController:archivefile,
191 # GistsController:*,
191 # GistsController:*,
192 api_access_controllers_whitelist =
192 api_access_controllers_whitelist =
193
193
194 ## default encoding used to convert from and to unicode
194 ## default encoding used to convert from and to unicode
195 ## can be also a comma separated list of encoding in case of mixed encodings
195 ## can be also a comma separated list of encoding in case of mixed encodings
196 default_encoding = UTF-8
196 default_encoding = UTF-8
197
197
198 ## instance-id prefix
198 ## instance-id prefix
199 ## a prefix key for this instance used for cache invalidation when running
199 ## a prefix key for this instance used for cache invalidation when running
200 ## multiple instances of rhodecode, make sure it's globally unique for
200 ## multiple instances of rhodecode, make sure it's globally unique for
201 ## all running rhodecode instances. Leave empty if you don't use it
201 ## all running rhodecode instances. Leave empty if you don't use it
202 instance_id =
202 instance_id =
203
203
204 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
204 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
205 ## of an authentication plugin also if it is disabled by it's settings.
205 ## of an authentication plugin also if it is disabled by it's settings.
206 ## This could be useful if you are unable to log in to the system due to broken
206 ## This could be useful if you are unable to log in to the system due to broken
207 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
207 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
208 ## module to log in again and fix the settings.
208 ## module to log in again and fix the settings.
209 ##
209 ##
210 ## Available builtin plugin IDs (hash is part of the ID):
210 ## Available builtin plugin IDs (hash is part of the ID):
211 ## egg:rhodecode-enterprise-ce#rhodecode
211 ## egg:rhodecode-enterprise-ce#rhodecode
212 ## egg:rhodecode-enterprise-ce#pam
212 ## egg:rhodecode-enterprise-ce#pam
213 ## egg:rhodecode-enterprise-ce#ldap
213 ## egg:rhodecode-enterprise-ce#ldap
214 ## egg:rhodecode-enterprise-ce#jasig_cas
214 ## egg:rhodecode-enterprise-ce#jasig_cas
215 ## egg:rhodecode-enterprise-ce#headers
215 ## egg:rhodecode-enterprise-ce#headers
216 ## egg:rhodecode-enterprise-ce#crowd
216 ## egg:rhodecode-enterprise-ce#crowd
217 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
217 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
218
218
219 ## alternative return HTTP header for failed authentication. Default HTTP
219 ## alternative return HTTP header for failed authentication. Default HTTP
220 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
220 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
221 ## handling that causing a series of failed authentication calls.
221 ## handling that causing a series of failed authentication calls.
222 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
222 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
223 ## This will be served instead of default 401 on bad authnetication
223 ## This will be served instead of default 401 on bad authnetication
224 auth_ret_code =
224 auth_ret_code =
225
225
226 ## use special detection method when serving auth_ret_code, instead of serving
226 ## use special detection method when serving auth_ret_code, instead of serving
227 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
227 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
228 ## and then serve auth_ret_code to clients
228 ## and then serve auth_ret_code to clients
229 auth_ret_code_detection = false
229 auth_ret_code_detection = false
230
230
231 ## locking return code. When repository is locked return this HTTP code. 2XX
231 ## locking return code. When repository is locked return this HTTP code. 2XX
232 ## codes don't break the transactions while 4XX codes do
232 ## codes don't break the transactions while 4XX codes do
233 lock_ret_code = 423
233 lock_ret_code = 423
234
234
235 ## allows to change the repository location in settings page
235 ## allows to change the repository location in settings page
236 allow_repo_location_change = true
236 allow_repo_location_change = true
237
237
238 ## allows to setup custom hooks in settings page
238 ## allows to setup custom hooks in settings page
239 allow_custom_hooks_settings = true
239 allow_custom_hooks_settings = true
240
240
241 ## generated license token, goto license page in RhodeCode settings to obtain
241 ## generated license token, goto license page in RhodeCode settings to obtain
242 ## new token
242 ## new token
243 license_token =
243 license_token =
244
244
245 ## supervisor connection uri, for managing supervisor and logs.
245 ## supervisor connection uri, for managing supervisor and logs.
246 supervisor.uri =
246 supervisor.uri =
247 ## supervisord group name/id we only want this RC instance to handle
247 ## supervisord group name/id we only want this RC instance to handle
248 supervisor.group_id = prod
248 supervisor.group_id = prod
249
249
250 ## Display extended labs settings
250 ## Display extended labs settings
251 labs_settings_active = true
251 labs_settings_active = true
252
252
253 ####################################
253 ####################################
254 ### CELERY CONFIG ####
254 ### CELERY CONFIG ####
255 ####################################
255 ####################################
256 use_celery = false
256 use_celery = false
257 broker.host = localhost
257 broker.host = localhost
258 broker.vhost = rabbitmqhost
258 broker.vhost = rabbitmqhost
259 broker.port = 5672
259 broker.port = 5672
260 broker.user = rabbitmq
260 broker.user = rabbitmq
261 broker.password = qweqwe
261 broker.password = qweqwe
262
262
263 celery.imports = rhodecode.lib.celerylib.tasks
263 celery.imports = rhodecode.lib.celerylib.tasks
264
264
265 celery.result.backend = amqp
265 celery.result.backend = amqp
266 celery.result.dburi = amqp://
266 celery.result.dburi = amqp://
267 celery.result.serialier = json
267 celery.result.serialier = json
268
268
269 #celery.send.task.error.emails = true
269 #celery.send.task.error.emails = true
270 #celery.amqp.task.result.expires = 18000
270 #celery.amqp.task.result.expires = 18000
271
271
272 celeryd.concurrency = 2
272 celeryd.concurrency = 2
273 #celeryd.log.file = celeryd.log
273 #celeryd.log.file = celeryd.log
274 celeryd.log.level = debug
274 celeryd.log.level = debug
275 celeryd.max.tasks.per.child = 1
275 celeryd.max.tasks.per.child = 1
276
276
277 ## tasks will never be sent to the queue, but executed locally instead.
277 ## tasks will never be sent to the queue, but executed locally instead.
278 celery.always.eager = false
278 celery.always.eager = false
279
279
280 ####################################
280 ####################################
281 ### BEAKER CACHE ####
281 ### BEAKER CACHE ####
282 ####################################
282 ####################################
283 # default cache dir for templates. Putting this into a ramdisk
283 # default cache dir for templates. Putting this into a ramdisk
284 ## can boost performance, eg. %(here)s/data_ramdisk
284 ## can boost performance, eg. %(here)s/data_ramdisk
285 cache_dir = %(here)s/data
285 cache_dir = %(here)s/data
286
286
287 ## locking and default file storage for Beaker. Putting this into a ramdisk
287 ## locking and default file storage for Beaker. Putting this into a ramdisk
288 ## can boost performance, eg. %(here)s/data_ramdisk/cache/beaker_data
288 ## can boost performance, eg. %(here)s/data_ramdisk/cache/beaker_data
289 beaker.cache.data_dir = %(here)s/data/cache/beaker_data
289 beaker.cache.data_dir = %(here)s/data/cache/beaker_data
290 beaker.cache.lock_dir = %(here)s/data/cache/beaker_lock
290 beaker.cache.lock_dir = %(here)s/data/cache/beaker_lock
291
291
292 beaker.cache.regions = super_short_term, short_term, long_term, sql_cache_short, auth_plugins, repo_cache_long
292 beaker.cache.regions = super_short_term, short_term, long_term, sql_cache_short, auth_plugins, repo_cache_long
293
293
294 beaker.cache.super_short_term.type = memory
294 beaker.cache.super_short_term.type = memory
295 beaker.cache.super_short_term.expire = 10
295 beaker.cache.super_short_term.expire = 10
296 beaker.cache.super_short_term.key_length = 256
296 beaker.cache.super_short_term.key_length = 256
297
297
298 beaker.cache.short_term.type = memory
298 beaker.cache.short_term.type = memory
299 beaker.cache.short_term.expire = 60
299 beaker.cache.short_term.expire = 60
300 beaker.cache.short_term.key_length = 256
300 beaker.cache.short_term.key_length = 256
301
301
302 beaker.cache.long_term.type = memory
302 beaker.cache.long_term.type = memory
303 beaker.cache.long_term.expire = 36000
303 beaker.cache.long_term.expire = 36000
304 beaker.cache.long_term.key_length = 256
304 beaker.cache.long_term.key_length = 256
305
305
306 beaker.cache.sql_cache_short.type = memory
306 beaker.cache.sql_cache_short.type = memory
307 beaker.cache.sql_cache_short.expire = 10
307 beaker.cache.sql_cache_short.expire = 10
308 beaker.cache.sql_cache_short.key_length = 256
308 beaker.cache.sql_cache_short.key_length = 256
309
309
310 ## default is memory cache, configure only if required
310 ## default is memory cache, configure only if required
311 ## using multi-node or multi-worker setup
311 ## using multi-node or multi-worker setup
312 #beaker.cache.auth_plugins.type = ext:database
312 #beaker.cache.auth_plugins.type = ext:database
313 #beaker.cache.auth_plugins.lock_dir = %(here)s/data/cache/auth_plugin_lock
313 #beaker.cache.auth_plugins.lock_dir = %(here)s/data/cache/auth_plugin_lock
314 #beaker.cache.auth_plugins.url = postgresql://postgres:secret@localhost/rhodecode
314 #beaker.cache.auth_plugins.url = postgresql://postgres:secret@localhost/rhodecode
315 #beaker.cache.auth_plugins.url = mysql://root:secret@127.0.0.1/rhodecode
315 #beaker.cache.auth_plugins.url = mysql://root:secret@127.0.0.1/rhodecode
316 #beaker.cache.auth_plugins.sa.pool_recycle = 3600
316 #beaker.cache.auth_plugins.sa.pool_recycle = 3600
317 #beaker.cache.auth_plugins.sa.pool_size = 10
317 #beaker.cache.auth_plugins.sa.pool_size = 10
318 #beaker.cache.auth_plugins.sa.max_overflow = 0
318 #beaker.cache.auth_plugins.sa.max_overflow = 0
319
319
320 beaker.cache.repo_cache_long.type = memorylru_base
320 beaker.cache.repo_cache_long.type = memorylru_base
321 beaker.cache.repo_cache_long.max_items = 4096
321 beaker.cache.repo_cache_long.max_items = 4096
322 beaker.cache.repo_cache_long.expire = 2592000
322 beaker.cache.repo_cache_long.expire = 2592000
323
323
324 ## default is memorylru_base cache, configure only if required
324 ## default is memorylru_base cache, configure only if required
325 ## using multi-node or multi-worker setup
325 ## using multi-node or multi-worker setup
326 #beaker.cache.repo_cache_long.type = ext:memcached
326 #beaker.cache.repo_cache_long.type = ext:memcached
327 #beaker.cache.repo_cache_long.url = localhost:11211
327 #beaker.cache.repo_cache_long.url = localhost:11211
328 #beaker.cache.repo_cache_long.expire = 1209600
328 #beaker.cache.repo_cache_long.expire = 1209600
329 #beaker.cache.repo_cache_long.key_length = 256
329 #beaker.cache.repo_cache_long.key_length = 256
330
330
331 ####################################
331 ####################################
332 ### BEAKER SESSION ####
332 ### BEAKER SESSION ####
333 ####################################
333 ####################################
334
334
335 ## .session.type is type of storage options for the session, current allowed
335 ## .session.type is type of storage options for the session, current allowed
336 ## types are file, ext:memcached, ext:database, and memory (default).
336 ## types are file, ext:memcached, ext:database, and memory (default).
337 beaker.session.type = file
337 beaker.session.type = file
338 beaker.session.data_dir = %(here)s/data/sessions/data
338 beaker.session.data_dir = %(here)s/data/sessions/data
339
339
340 ## db based session, fast, and allows easy management over logged in users
340 ## db based session, fast, and allows easy management over logged in users
341 #beaker.session.type = ext:database
341 #beaker.session.type = ext:database
342 #beaker.session.table_name = db_session
342 #beaker.session.table_name = db_session
343 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
343 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
344 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
344 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
345 #beaker.session.sa.pool_recycle = 3600
345 #beaker.session.sa.pool_recycle = 3600
346 #beaker.session.sa.echo = false
346 #beaker.session.sa.echo = false
347
347
348 beaker.session.key = rhodecode
348 beaker.session.key = rhodecode
349 beaker.session.secret = production-rc-uytcxaz
349 beaker.session.secret = production-rc-uytcxaz
350 beaker.session.lock_dir = %(here)s/data/sessions/lock
350 beaker.session.lock_dir = %(here)s/data/sessions/lock
351
351
352 ## Secure encrypted cookie. Requires AES and AES python libraries
352 ## Secure encrypted cookie. Requires AES and AES python libraries
353 ## you must disable beaker.session.secret to use this
353 ## you must disable beaker.session.secret to use this
354 #beaker.session.encrypt_key = <key_for_encryption>
354 #beaker.session.encrypt_key = <key_for_encryption>
355 #beaker.session.validate_key = <validation_key>
355 #beaker.session.validate_key = <validation_key>
356
356
357 ## sets session as invalid(also logging out user) if it haven not been
357 ## sets session as invalid(also logging out user) if it haven not been
358 ## accessed for given amount of time in seconds
358 ## accessed for given amount of time in seconds
359 beaker.session.timeout = 2592000
359 beaker.session.timeout = 2592000
360 beaker.session.httponly = true
360 beaker.session.httponly = true
361 ## Path to use for the cookie.
361 ## Path to use for the cookie.
362 #beaker.session.cookie_path = /<your-prefix>
362 #beaker.session.cookie_path = /<your-prefix>
363
363
364 ## uncomment for https secure cookie
364 ## uncomment for https secure cookie
365 beaker.session.secure = false
365 beaker.session.secure = false
366
366
367 ## auto save the session to not to use .save()
367 ## auto save the session to not to use .save()
368 beaker.session.auto = false
368 beaker.session.auto = false
369
369
370 ## default cookie expiration time in seconds, set to `true` to set expire
370 ## default cookie expiration time in seconds, set to `true` to set expire
371 ## at browser close
371 ## at browser close
372 #beaker.session.cookie_expires = 3600
372 #beaker.session.cookie_expires = 3600
373
373
374 ###################################
374 ###################################
375 ## SEARCH INDEXING CONFIGURATION ##
375 ## SEARCH INDEXING CONFIGURATION ##
376 ###################################
376 ###################################
377 ## Full text search indexer is available in rhodecode-tools under
377 ## Full text search indexer is available in rhodecode-tools under
378 ## `rhodecode-tools index` command
378 ## `rhodecode-tools index` command
379
379
380 # WHOOSH Backend, doesn't require additional services to run
380 # WHOOSH Backend, doesn't require additional services to run
381 # it works good with few dozen repos
381 # it works good with few dozen repos
382 search.module = rhodecode.lib.index.whoosh
382 search.module = rhodecode.lib.index.whoosh
383 search.location = %(here)s/data/index
383 search.location = %(here)s/data/index
384
384
385 ########################################
385 ########################################
386 ### CHANNELSTREAM CONFIG ####
386 ### CHANNELSTREAM CONFIG ####
387 ########################################
387 ########################################
388 ## channelstream enables persistent connections and live notification
388 ## channelstream enables persistent connections and live notification
389 ## in the system. It's also used by the chat system
389 ## in the system. It's also used by the chat system
390
390
391 channelstream.enabled = false
391 channelstream.enabled = false
392 ## location of channelstream server on the backend
392 ## location of channelstream server on the backend
393 channelstream.server = 127.0.0.1:9800
393 channelstream.server = 127.0.0.1:9800
394 ## location of the channelstream server from outside world
394 ## location of the channelstream server from outside world
395 ## most likely this would be an http server special backend URL, that handles
395 ## most likely this would be an http server special backend URL, that handles
396 ## websocket connections see nginx example for config
396 ## websocket connections see nginx example for config
397 channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
397 # channelstream.ws_url = ws://rhodecode.yourserver.com/_channelstream
398 ## proxy path that can be used by http daemons for exposing channelstream
399 # channelstream.proxy_path = /_channelstream
398 channelstream.secret = secret
400 channelstream.secret = secret
399 channelstream.history.location = %(here)s/channelstream_history
401 channelstream.history.location = %(here)s/channelstream_history
400
402
401
403
402 ###################################
404 ###################################
403 ## APPENLIGHT CONFIG ##
405 ## APPENLIGHT CONFIG ##
404 ###################################
406 ###################################
405
407
406 ## Appenlight is tailored to work with RhodeCode, see
408 ## Appenlight is tailored to work with RhodeCode, see
407 ## http://appenlight.com for details how to obtain an account
409 ## http://appenlight.com for details how to obtain an account
408
410
409 ## appenlight integration enabled
411 ## appenlight integration enabled
410 appenlight = false
412 appenlight = false
411
413
412 appenlight.server_url = https://api.appenlight.com
414 appenlight.server_url = https://api.appenlight.com
413 appenlight.api_key = YOUR_API_KEY
415 appenlight.api_key = YOUR_API_KEY
414 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
416 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
415
417
416 # used for JS client
418 # used for JS client
417 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
419 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
418
420
419 ## TWEAK AMOUNT OF INFO SENT HERE
421 ## TWEAK AMOUNT OF INFO SENT HERE
420
422
421 ## enables 404 error logging (default False)
423 ## enables 404 error logging (default False)
422 appenlight.report_404 = false
424 appenlight.report_404 = false
423
425
424 ## time in seconds after request is considered being slow (default 1)
426 ## time in seconds after request is considered being slow (default 1)
425 appenlight.slow_request_time = 1
427 appenlight.slow_request_time = 1
426
428
427 ## record slow requests in application
429 ## record slow requests in application
428 ## (needs to be enabled for slow datastore recording and time tracking)
430 ## (needs to be enabled for slow datastore recording and time tracking)
429 appenlight.slow_requests = true
431 appenlight.slow_requests = true
430
432
431 ## enable hooking to application loggers
433 ## enable hooking to application loggers
432 appenlight.logging = true
434 appenlight.logging = true
433
435
434 ## minimum log level for log capture
436 ## minimum log level for log capture
435 appenlight.logging.level = WARNING
437 appenlight.logging.level = WARNING
436
438
437 ## send logs only from erroneous/slow requests
439 ## send logs only from erroneous/slow requests
438 ## (saves API quota for intensive logging)
440 ## (saves API quota for intensive logging)
439 appenlight.logging_on_error = false
441 appenlight.logging_on_error = false
440
442
441 ## list of additonal keywords that should be grabbed from environ object
443 ## list of additonal keywords that should be grabbed from environ object
442 ## can be string with comma separated list of words in lowercase
444 ## can be string with comma separated list of words in lowercase
443 ## (by default client will always send following info:
445 ## (by default client will always send following info:
444 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
446 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
445 ## start with HTTP* this list be extended with additional keywords here
447 ## start with HTTP* this list be extended with additional keywords here
446 appenlight.environ_keys_whitelist =
448 appenlight.environ_keys_whitelist =
447
449
448 ## list of keywords that should be blanked from request object
450 ## list of keywords that should be blanked from request object
449 ## can be string with comma separated list of words in lowercase
451 ## can be string with comma separated list of words in lowercase
450 ## (by default client will always blank keys that contain following words
452 ## (by default client will always blank keys that contain following words
451 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
453 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
452 ## this list be extended with additional keywords set here
454 ## this list be extended with additional keywords set here
453 appenlight.request_keys_blacklist =
455 appenlight.request_keys_blacklist =
454
456
455 ## list of namespaces that should be ignores when gathering log entries
457 ## list of namespaces that should be ignores when gathering log entries
456 ## can be string with comma separated list of namespaces
458 ## can be string with comma separated list of namespaces
457 ## (by default the client ignores own entries: appenlight_client.client)
459 ## (by default the client ignores own entries: appenlight_client.client)
458 appenlight.log_namespace_blacklist =
460 appenlight.log_namespace_blacklist =
459
461
460
462
461 ################################################################################
463 ################################################################################
462 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
464 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
463 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
465 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
464 ## execute malicious code after an exception is raised. ##
466 ## execute malicious code after an exception is raised. ##
465 ################################################################################
467 ################################################################################
466 set debug = false
468 set debug = false
467
469
468
470
469 #########################################################
471 #########################################################
470 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
472 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
471 #########################################################
473 #########################################################
472 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
474 #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
473 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
475 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
474 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode
476 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode
475 sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
477 sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
476
478
477 # see sqlalchemy docs for other advanced settings
479 # see sqlalchemy docs for other advanced settings
478
480
479 ## print the sql statements to output
481 ## print the sql statements to output
480 sqlalchemy.db1.echo = false
482 sqlalchemy.db1.echo = false
481 ## recycle the connections after this ammount of seconds
483 ## recycle the connections after this ammount of seconds
482 sqlalchemy.db1.pool_recycle = 3600
484 sqlalchemy.db1.pool_recycle = 3600
483 sqlalchemy.db1.convert_unicode = true
485 sqlalchemy.db1.convert_unicode = true
484
486
485 ## the number of connections to keep open inside the connection pool.
487 ## the number of connections to keep open inside the connection pool.
486 ## 0 indicates no limit
488 ## 0 indicates no limit
487 #sqlalchemy.db1.pool_size = 5
489 #sqlalchemy.db1.pool_size = 5
488
490
489 ## the number of connections to allow in connection pool "overflow", that is
491 ## the number of connections to allow in connection pool "overflow", that is
490 ## connections that can be opened above and beyond the pool_size setting,
492 ## connections that can be opened above and beyond the pool_size setting,
491 ## which defaults to five.
493 ## which defaults to five.
492 #sqlalchemy.db1.max_overflow = 10
494 #sqlalchemy.db1.max_overflow = 10
493
495
494
496
495 ##################
497 ##################
496 ### VCS CONFIG ###
498 ### VCS CONFIG ###
497 ##################
499 ##################
498 vcs.server.enable = true
500 vcs.server.enable = true
499 vcs.server = localhost:9900
501 vcs.server = localhost:9900
500
502
501 ## Web server connectivity protocol, responsible for web based VCS operatations
503 ## Web server connectivity protocol, responsible for web based VCS operatations
502 ## Available protocols are:
504 ## Available protocols are:
503 ## `pyro4` - using pyro4 server
505 ## `pyro4` - using pyro4 server
504 ## `http` - using http-rpc backend
506 ## `http` - using http-rpc backend
505 #vcs.server.protocol = http
507 #vcs.server.protocol = http
506
508
507 ## Push/Pull operations protocol, available options are:
509 ## Push/Pull operations protocol, available options are:
508 ## `pyro4` - using pyro4 server
510 ## `pyro4` - using pyro4 server
509 ## `rhodecode.lib.middleware.utils.scm_app_http` - Http based, recommended
511 ## `rhodecode.lib.middleware.utils.scm_app_http` - Http based, recommended
510 ## `vcsserver.scm_app` - internal app (EE only)
512 ## `vcsserver.scm_app` - internal app (EE only)
511 #vcs.scm_app_implementation = rhodecode.lib.middleware.utils.scm_app_http
513 #vcs.scm_app_implementation = rhodecode.lib.middleware.utils.scm_app_http
512
514
513 ## Push/Pull operations hooks protocol, available options are:
515 ## Push/Pull operations hooks protocol, available options are:
514 ## `pyro4` - using pyro4 server
516 ## `pyro4` - using pyro4 server
515 ## `http` - using http-rpc backend
517 ## `http` - using http-rpc backend
516 #vcs.hooks.protocol = http
518 #vcs.hooks.protocol = http
517
519
518 vcs.server.log_level = info
520 vcs.server.log_level = info
519 ## Start VCSServer with this instance as a subprocess, usefull for development
521 ## Start VCSServer with this instance as a subprocess, usefull for development
520 vcs.start_server = false
522 vcs.start_server = false
521
523
522 ## List of enabled VCS backends, available options are:
524 ## List of enabled VCS backends, available options are:
523 ## `hg` - mercurial
525 ## `hg` - mercurial
524 ## `git` - git
526 ## `git` - git
525 ## `svn` - subversion
527 ## `svn` - subversion
526 vcs.backends = hg, git, svn
528 vcs.backends = hg, git, svn
527
529
528 vcs.connection_timeout = 3600
530 vcs.connection_timeout = 3600
529 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
531 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
530 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible
532 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible
531 #vcs.svn.compatible_version = pre-1.8-compatible
533 #vcs.svn.compatible_version = pre-1.8-compatible
532
534
533
535
534 ############################################################
536 ############################################################
535 ### Subversion proxy support (mod_dav_svn) ###
537 ### Subversion proxy support (mod_dav_svn) ###
536 ### Maps RhodeCode repo groups into SVN paths for Apache ###
538 ### Maps RhodeCode repo groups into SVN paths for Apache ###
537 ############################################################
539 ############################################################
538 ## Enable or disable the config file generation.
540 ## Enable or disable the config file generation.
539 svn.proxy.generate_config = false
541 svn.proxy.generate_config = false
540 ## Generate config file with `SVNListParentPath` set to `On`.
542 ## Generate config file with `SVNListParentPath` set to `On`.
541 svn.proxy.list_parent_path = true
543 svn.proxy.list_parent_path = true
542 ## Set location and file name of generated config file.
544 ## Set location and file name of generated config file.
543 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
545 svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
544 ## File system path to the directory containing the repositories served by
546 ## File system path to the directory containing the repositories served by
545 ## RhodeCode.
547 ## RhodeCode.
546 svn.proxy.parent_path_root = /path/to/repo_store
548 svn.proxy.parent_path_root = /path/to/repo_store
547 ## Used as a prefix to the <Location> block in the generated config file. In
549 ## Used as a prefix to the <Location> block in the generated config file. In
548 ## most cases it should be set to `/`.
550 ## most cases it should be set to `/`.
549 svn.proxy.location_root = /
551 svn.proxy.location_root = /
550
552
551
553
552 ################################
554 ################################
553 ### LOGGING CONFIGURATION ####
555 ### LOGGING CONFIGURATION ####
554 ################################
556 ################################
555 [loggers]
557 [loggers]
556 keys = root, routes, rhodecode, sqlalchemy, beaker, pyro4, templates
558 keys = root, routes, rhodecode, sqlalchemy, beaker, pyro4, templates
557
559
558 [handlers]
560 [handlers]
559 keys = console, console_sql
561 keys = console, console_sql
560
562
561 [formatters]
563 [formatters]
562 keys = generic, color_formatter, color_formatter_sql
564 keys = generic, color_formatter, color_formatter_sql
563
565
564 #############
566 #############
565 ## LOGGERS ##
567 ## LOGGERS ##
566 #############
568 #############
567 [logger_root]
569 [logger_root]
568 level = NOTSET
570 level = NOTSET
569 handlers = console
571 handlers = console
570
572
571 [logger_routes]
573 [logger_routes]
572 level = DEBUG
574 level = DEBUG
573 handlers =
575 handlers =
574 qualname = routes.middleware
576 qualname = routes.middleware
575 ## "level = DEBUG" logs the route matched and routing variables.
577 ## "level = DEBUG" logs the route matched and routing variables.
576 propagate = 1
578 propagate = 1
577
579
578 [logger_beaker]
580 [logger_beaker]
579 level = DEBUG
581 level = DEBUG
580 handlers =
582 handlers =
581 qualname = beaker.container
583 qualname = beaker.container
582 propagate = 1
584 propagate = 1
583
585
584 [logger_pyro4]
586 [logger_pyro4]
585 level = DEBUG
587 level = DEBUG
586 handlers =
588 handlers =
587 qualname = Pyro4
589 qualname = Pyro4
588 propagate = 1
590 propagate = 1
589
591
590 [logger_templates]
592 [logger_templates]
591 level = INFO
593 level = INFO
592 handlers =
594 handlers =
593 qualname = pylons.templating
595 qualname = pylons.templating
594 propagate = 1
596 propagate = 1
595
597
596 [logger_rhodecode]
598 [logger_rhodecode]
597 level = DEBUG
599 level = DEBUG
598 handlers =
600 handlers =
599 qualname = rhodecode
601 qualname = rhodecode
600 propagate = 1
602 propagate = 1
601
603
602 [logger_sqlalchemy]
604 [logger_sqlalchemy]
603 level = INFO
605 level = INFO
604 handlers = console_sql
606 handlers = console_sql
605 qualname = sqlalchemy.engine
607 qualname = sqlalchemy.engine
606 propagate = 0
608 propagate = 0
607
609
608 ##############
610 ##############
609 ## HANDLERS ##
611 ## HANDLERS ##
610 ##############
612 ##############
611
613
612 [handler_console]
614 [handler_console]
613 class = StreamHandler
615 class = StreamHandler
614 args = (sys.stderr,)
616 args = (sys.stderr,)
615 level = INFO
617 level = INFO
616 formatter = generic
618 formatter = generic
617
619
618 [handler_console_sql]
620 [handler_console_sql]
619 class = StreamHandler
621 class = StreamHandler
620 args = (sys.stderr,)
622 args = (sys.stderr,)
621 level = WARN
623 level = WARN
622 formatter = generic
624 formatter = generic
623
625
624 ################
626 ################
625 ## FORMATTERS ##
627 ## FORMATTERS ##
626 ################
628 ################
627
629
628 [formatter_generic]
630 [formatter_generic]
629 class = rhodecode.lib.logging_formatter.Pyro4AwareFormatter
631 class = rhodecode.lib.logging_formatter.Pyro4AwareFormatter
630 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
632 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
631 datefmt = %Y-%m-%d %H:%M:%S
633 datefmt = %Y-%m-%d %H:%M:%S
632
634
633 [formatter_color_formatter]
635 [formatter_color_formatter]
634 class = rhodecode.lib.logging_formatter.ColorFormatter
636 class = rhodecode.lib.logging_formatter.ColorFormatter
635 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
637 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
636 datefmt = %Y-%m-%d %H:%M:%S
638 datefmt = %Y-%m-%d %H:%M:%S
637
639
638 [formatter_color_formatter_sql]
640 [formatter_color_formatter_sql]
639 class = rhodecode.lib.logging_formatter.ColorFormatterSql
641 class = rhodecode.lib.logging_formatter.ColorFormatterSql
640 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
642 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
641 datefmt = %Y-%m-%d %H:%M:%S
643 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,81 +1,88 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2
2
3 # Copyright (C) 2010-2016 RhodeCode GmbH
3 # Copyright (C) 2010-2016 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
22
23 from pyramid.settings import asbool
23 from pyramid.settings import asbool
24
24
25 from rhodecode.config.routing import ADMIN_PREFIX
25 from rhodecode.config.routing import ADMIN_PREFIX
26 from rhodecode.lib.ext_json import json
26 from rhodecode.lib.ext_json import json
27
27
28
28
29 def url_gen(request):
29 def url_gen(request):
30 registry = request.registry
31 longpoll_url = registry.settings.get('channelstream.longpoll_url', '')
32 ws_url = registry.settings.get('channelstream.ws_url', '')
33 proxy_url = request.route_url('channelstream_proxy')
30 urls = {
34 urls = {
31 'connect': request.route_url('channelstream_connect'),
35 'connect': request.route_path('channelstream_connect'),
32 'subscribe': request.route_url('channelstream_subscribe'),
36 'subscribe': request.route_path('channelstream_subscribe'),
33 'longpoll': request.registry.settings.get('channelstream.longpoll_url', ''),
37 'longpoll': longpoll_url or proxy_url,
34 'ws': request.registry.settings.get('channelstream.ws_url', '')
38 'ws': ws_url or proxy_url.replace('http', 'ws')
35 }
39 }
36 return json.dumps(urls)
40 return json.dumps(urls)
37
41
38
42
39 PLUGIN_DEFINITION = {
43 PLUGIN_DEFINITION = {
40 'name': 'channelstream',
44 'name': 'channelstream',
41 'config': {
45 'config': {
42 'javascript': [],
46 'javascript': [],
43 'css': [],
47 'css': [],
44 'template_hooks': {
48 'template_hooks': {
45 'plugin_init_template': 'rhodecode:templates/channelstream/plugin_init.html'
49 'plugin_init_template': 'rhodecode:templates/channelstream/plugin_init.html'
46 },
50 },
47 'url_gen': url_gen,
51 'url_gen': url_gen,
48 'static': None,
52 'static': None,
49 'enabled': False,
53 'enabled': False,
50 'server': '',
54 'server': '',
51 'secret': ''
55 'secret': ''
52 }
56 }
53 }
57 }
54
58
55
59
56 def includeme(config):
60 def includeme(config):
57 settings = config.registry.settings
61 settings = config.registry.settings
58 PLUGIN_DEFINITION['config']['enabled'] = asbool(
62 PLUGIN_DEFINITION['config']['enabled'] = asbool(
59 settings.get('channelstream.enabled'))
63 settings.get('channelstream.enabled'))
60 PLUGIN_DEFINITION['config']['server'] = settings.get(
64 PLUGIN_DEFINITION['config']['server'] = settings.get(
61 'channelstream.server', '')
65 'channelstream.server', '')
62 PLUGIN_DEFINITION['config']['secret'] = settings.get(
66 PLUGIN_DEFINITION['config']['secret'] = settings.get(
63 'channelstream.secret', '')
67 'channelstream.secret', '')
64 PLUGIN_DEFINITION['config']['history.location'] = settings.get(
68 PLUGIN_DEFINITION['config']['history.location'] = settings.get(
65 'channelstream.history.location', '')
69 'channelstream.history.location', '')
66 config.register_rhodecode_plugin(
70 config.register_rhodecode_plugin(
67 PLUGIN_DEFINITION['name'],
71 PLUGIN_DEFINITION['name'],
68 PLUGIN_DEFINITION['config']
72 PLUGIN_DEFINITION['config']
69 )
73 )
70 # create plugin history location
74 # create plugin history location
71 history_dir = PLUGIN_DEFINITION['config']['history.location']
75 history_dir = PLUGIN_DEFINITION['config']['history.location']
72 if history_dir and not os.path.exists(history_dir):
76 if history_dir and not os.path.exists(history_dir):
73 os.makedirs(history_dir, 0750)
77 os.makedirs(history_dir, 0750)
74
78
75 config.add_route(
79 config.add_route(
76 name='channelstream_connect',
80 name='channelstream_connect',
77 pattern=ADMIN_PREFIX + '/channelstream/connect')
81 pattern=ADMIN_PREFIX + '/channelstream/connect')
78 config.add_route(
82 config.add_route(
79 name='channelstream_subscribe',
83 name='channelstream_subscribe',
80 pattern=ADMIN_PREFIX + '/channelstream/subscribe')
84 pattern=ADMIN_PREFIX + '/channelstream/subscribe')
85 config.add_route(
86 name='channelstream_proxy',
87 pattern=settings.get('channelstream.proxy_path') or '/_channelstream')
81 config.scan('rhodecode.channelstream')
88 config.scan('rhodecode.channelstream')
General Comments 0
You need to be logged in to leave comments. Login now