##// END OF EJS Templates
docs: updating vcsserver commands and development.ini defaults
lisaq -
r491:007d07e1 default
parent child Browse files
Show More
@@ -1,612 +1,612 b''
1 1 ################################################################################
2 2 ################################################################################
3 3 # RhodeCode Enterprise - configuration file #
4 4 # Built-in functions and variables #
5 5 # The %(here)s variable will be replaced with the parent directory of this file#
6 6 # #
7 7 ################################################################################
8 8
9 9 [DEFAULT]
10 10 debug = true
11 11 ################################################################################
12 12 ## Uncomment and replace with the email address which should receive ##
13 13 ## any error reports after an application crash ##
14 14 ## Additionally these settings will be used by the RhodeCode mailing system ##
15 15 ################################################################################
16 16 #email_to = admin@localhost
17 17 #error_email_from = paste_error@localhost
18 18 #app_email_from = rhodecode-noreply@localhost
19 19 #error_message =
20 20 #email_prefix = [RhodeCode]
21 21
22 22 #smtp_server = mail.server.com
23 23 #smtp_username =
24 24 #smtp_password =
25 25 #smtp_port =
26 26 #smtp_use_tls = false
27 27 #smtp_use_ssl = true
28 28 ## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
29 29 #smtp_auth =
30 30
31 31 [server:main]
32 32 ## COMMON ##
33 33 host = 127.0.0.1
34 34 port = 5000
35 35
36 36 ##################################
37 37 ## WAITRESS WSGI SERVER ##
38 38 ## Recommended for Development ##
39 39 ##################################
40 40 use = egg:waitress#main
41 41 ## number of worker threads
42 42 threads = 5
43 43 ## MAX BODY SIZE 100GB
44 44 max_request_body_size = 107374182400
45 45 ## Use poll instead of select, fixes file descriptors limits problems.
46 46 ## May not work on old windows systems.
47 47 asyncore_use_poll = true
48 48
49 49
50 50 ##########################
51 51 ## GUNICORN WSGI SERVER ##
52 52 ##########################
53 53 ## run with gunicorn --log-config <inifile.ini> --paste <inifile.ini>
54 54 #use = egg:gunicorn#main
55 55 ## Sets the number of process workers. You must set `instance_id = *`
56 56 ## when this option is set to more than one worker, recommended
57 57 ## value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers
58 58 ## The `instance_id = *` must be set in the [app:main] section below
59 59 #workers = 2
60 60 ## number of threads for each of the worker, must be set to 1 for gevent
61 61 ## generally recommened to be at 1
62 62 #threads = 1
63 63 ## process name
64 64 #proc_name = rhodecode
65 65 ## type of worker class, one of sync, gevent
66 66 ## recommended for bigger setup is using of of other than sync one
67 67 #worker_class = sync
68 68 ## The maximum number of simultaneous clients. Valid only for Gevent
69 69 #worker_connections = 10
70 70 ## max number of requests that worker will handle before being gracefully
71 71 ## restarted, could prevent memory leaks
72 72 #max_requests = 1000
73 73 #max_requests_jitter = 30
74 74 ## amount of time a worker can spend with handling a request before it
75 75 ## gets killed and restarted. Set to 6hrs
76 76 #timeout = 21600
77 77
78 78
79 79 ## prefix middleware for RhodeCode, disables force_https flag.
80 80 ## allows to set RhodeCode under a prefix in server.
81 81 ## eg https://server.com/<prefix>. Enable `filter-with =` option below as well.
82 82 #[filter:proxy-prefix]
83 83 #use = egg:PasteDeploy#prefix
84 84 #prefix = /<your-prefix>
85 85
86 86 [app:main]
87 87 use = egg:rhodecode-enterprise-ce
88 88 ## enable proxy prefix middleware, defined below
89 89 #filter-with = proxy-prefix
90 90
91 91 # During development the we want to have the debug toolbar enabled
92 92 pyramid.includes =
93 93 pyramid_debugtoolbar
94 94 rhodecode.utils.debugtoolbar
95 95 rhodecode.lib.middleware.request_wrapper
96 96
97 97 pyramid.reload_templates = true
98 98
99 99 debugtoolbar.hosts = 0.0.0.0/0
100 100 debugtoolbar.exclude_prefixes =
101 101 /css
102 102 /fonts
103 103 /images
104 104 /js
105 105
106 106 ## RHODECODE PLUGINS ##
107 107 rhodecode.includes =
108 108 rhodecode.api
109 109
110 110
111 111 # api prefix url
112 112 rhodecode.api.url = /_admin/api
113 113
114 114
115 115 ## END RHODECODE PLUGINS ##
116 116
117 117 ## encryption key used to encrypt social plugin tokens,
118 118 ## remote_urls with credentials etc, if not set it defaults to
119 119 ## `beaker.session.secret`
120 120 #rhodecode.encrypted_values.secret =
121 121
122 122 ## decryption strict mode (enabled by default). It controls if decryption raises
123 123 ## `SignatureVerificationError` in case of wrong key, or damaged encryption data.
124 124 #rhodecode.encrypted_values.strict = false
125 125
126 126 full_stack = true
127 127
128 128 ## return gzipped responses from Rhodecode (static files/application)
129 129 gzip_responses = true
130 130
131 131 # autogenerate javascript routes file on startup
132 132 generate_js_files = false
133 133
134 134 ## Optional Languages
135 135 ## en(default), be, de, es, fr, it, ja, pl, pt, ru, zh
136 136 lang = en
137 137
138 138 ## perform a full repository scan on each server start, this should be
139 139 ## set to false after first startup, to allow faster server restarts.
140 140 startup.import_repos = false
141 141
142 142 ## Uncomment and set this path to use archive download cache.
143 143 ## Once enabled, generated archives will be cached at this location
144 144 ## and served from the cache during subsequent requests for the same archive of
145 145 ## the repository.
146 146 #archive_cache_dir = /tmp/tarballcache
147 147
148 148 ## change this to unique ID for security
149 149 app_instance_uuid = rc-production
150 150
151 151 ## cut off limit for large diffs (size in bytes)
152 152 cut_off_limit_diff = 1024000
153 153 cut_off_limit_file = 256000
154 154
155 155 ## use cache version of scm repo everywhere
156 156 vcs_full_cache = true
157 157
158 158 ## force https in RhodeCode, fixes https redirects, assumes it's always https
159 159 ## Normally this is controlled by proper http flags sent from http server
160 160 force_https = false
161 161
162 162 ## use Strict-Transport-Security headers
163 163 use_htsts = false
164 164
165 165 ## number of commits stats will parse on each iteration
166 166 commit_parse_limit = 25
167 167
168 168 ## git rev filter option, --all is the default filter, if you need to
169 169 ## hide all refs in changelog switch this to --branches --tags
170 170 git_rev_filter = --branches --tags
171 171
172 172 # Set to true if your repos are exposed using the dumb protocol
173 173 git_update_server_info = false
174 174
175 175 ## RSS/ATOM feed options
176 176 rss_cut_off_limit = 256000
177 177 rss_items_per_page = 10
178 178 rss_include_diff = false
179 179
180 180 ## gist URL alias, used to create nicer urls for gist. This should be an
181 181 ## url that does rewrites to _admin/gists/<gistid>.
182 182 ## example: http://gist.rhodecode.org/{gistid}. Empty means use the internal
183 183 ## RhodeCode url, ie. http[s]://rhodecode.server/_admin/gists/<gistid>
184 184 gist_alias_url =
185 185
186 186 ## List of controllers (using glob pattern syntax) that AUTH TOKENS could be
187 187 ## used for access.
188 188 ## Adding ?auth_token = <token> to the url authenticates this request as if it
189 189 ## came from the the logged in user who own this authentication token.
190 190 ##
191 191 ## Syntax is <ControllerClass>:<function_pattern>.
192 192 ## To enable access to raw_files put `FilesController:raw`.
193 193 ## To enable access to patches add `ChangesetController:changeset_patch`.
194 194 ## The list should be "," separated and on a single line.
195 195 ##
196 196 ## Recommended controllers to enable:
197 197 # ChangesetController:changeset_patch,
198 198 # ChangesetController:changeset_raw,
199 199 # FilesController:raw,
200 200 # FilesController:archivefile,
201 201 # GistsController:*,
202 202 api_access_controllers_whitelist =
203 203
204 204 ## default encoding used to convert from and to unicode
205 205 ## can be also a comma separated list of encoding in case of mixed encodings
206 206 default_encoding = UTF-8
207 207
208 208 ## instance-id prefix
209 209 ## a prefix key for this instance used for cache invalidation when running
210 210 ## multiple instances of rhodecode, make sure it's globally unique for
211 211 ## all running rhodecode instances. Leave empty if you don't use it
212 212 instance_id =
213 213
214 214 ## Fallback authentication plugin. Set this to a plugin ID to force the usage
215 215 ## of an authentication plugin also if it is disabled by it's settings.
216 216 ## This could be useful if you are unable to log in to the system due to broken
217 217 ## authentication settings. Then you can enable e.g. the internal rhodecode auth
218 218 ## module to log in again and fix the settings.
219 219 ##
220 220 ## Available builtin plugin IDs (hash is part of the ID):
221 221 ## egg:rhodecode-enterprise-ce#rhodecode
222 222 ## egg:rhodecode-enterprise-ce#pam
223 223 ## egg:rhodecode-enterprise-ce#ldap
224 224 ## egg:rhodecode-enterprise-ce#jasig_cas
225 225 ## egg:rhodecode-enterprise-ce#headers
226 226 ## egg:rhodecode-enterprise-ce#crowd
227 227 #rhodecode.auth_plugin_fallback = egg:rhodecode-enterprise-ce#rhodecode
228 228
229 229 ## alternative return HTTP header for failed authentication. Default HTTP
230 230 ## response is 401 HTTPUnauthorized. Currently HG clients have troubles with
231 231 ## handling that causing a series of failed authentication calls.
232 232 ## Set this variable to 403 to return HTTPForbidden, or any other HTTP code
233 233 ## This will be served instead of default 401 on bad authnetication
234 234 auth_ret_code =
235 235
236 236 ## use special detection method when serving auth_ret_code, instead of serving
237 237 ## ret_code directly, use 401 initially (Which triggers credentials prompt)
238 238 ## and then serve auth_ret_code to clients
239 239 auth_ret_code_detection = false
240 240
241 241 ## locking return code. When repository is locked return this HTTP code. 2XX
242 242 ## codes don't break the transactions while 4XX codes do
243 243 lock_ret_code = 423
244 244
245 245 ## allows to change the repository location in settings page
246 246 allow_repo_location_change = true
247 247
248 248 ## allows to setup custom hooks in settings page
249 249 allow_custom_hooks_settings = true
250 250
251 251 ## generated license token, goto license page in RhodeCode settings to obtain
252 252 ## new token
253 253 license_token =
254 254
255 255 ## supervisor connection uri, for managing supervisor and logs.
256 256 supervisor.uri =
257 257 ## supervisord group name/id we only want this RC instance to handle
258 258 supervisor.group_id = dev
259 259
260 260 ## Display extended labs settings
261 261 labs_settings_active = true
262 262
263 263 ####################################
264 264 ### CELERY CONFIG ####
265 265 ####################################
266 266 use_celery = false
267 267 broker.host = localhost
268 268 broker.vhost = rabbitmqhost
269 269 broker.port = 5672
270 270 broker.user = rabbitmq
271 271 broker.password = qweqwe
272 272
273 273 celery.imports = rhodecode.lib.celerylib.tasks
274 274
275 275 celery.result.backend = amqp
276 276 celery.result.dburi = amqp://
277 277 celery.result.serialier = json
278 278
279 279 #celery.send.task.error.emails = true
280 280 #celery.amqp.task.result.expires = 18000
281 281
282 282 celeryd.concurrency = 2
283 283 #celeryd.log.file = celeryd.log
284 284 celeryd.log.level = debug
285 285 celeryd.max.tasks.per.child = 1
286 286
287 287 ## tasks will never be sent to the queue, but executed locally instead.
288 288 celery.always.eager = false
289 289
290 290 ####################################
291 291 ### BEAKER CACHE ####
292 292 ####################################
293 293 # default cache dir for templates. Putting this into a ramdisk
294 294 ## can boost performance, eg. %(here)s/data_ramdisk
295 295 cache_dir = %(here)s/data
296 296
297 297 ## locking and default file storage for Beaker. Putting this into a ramdisk
298 298 ## can boost performance, eg. %(here)s/data_ramdisk/cache/beaker_data
299 299 beaker.cache.data_dir = %(here)s/data/cache/beaker_data
300 300 beaker.cache.lock_dir = %(here)s/data/cache/beaker_lock
301 301
302 302 beaker.cache.regions = super_short_term, short_term, long_term, sql_cache_short, auth_plugins, repo_cache_long
303 303
304 304 beaker.cache.super_short_term.type = memory
305 305 beaker.cache.super_short_term.expire = 10
306 306 beaker.cache.super_short_term.key_length = 256
307 307
308 308 beaker.cache.short_term.type = memory
309 309 beaker.cache.short_term.expire = 60
310 310 beaker.cache.short_term.key_length = 256
311 311
312 312 beaker.cache.long_term.type = memory
313 313 beaker.cache.long_term.expire = 36000
314 314 beaker.cache.long_term.key_length = 256
315 315
316 316 beaker.cache.sql_cache_short.type = memory
317 317 beaker.cache.sql_cache_short.expire = 10
318 318 beaker.cache.sql_cache_short.key_length = 256
319 319
320 320 # default is memory cache, configure only if required
321 321 # using multi-node or multi-worker setup
322 322 #beaker.cache.auth_plugins.type = ext:database
323 323 #beaker.cache.auth_plugins.lock_dir = %(here)s/data/cache/auth_plugin_lock
324 324 #beaker.cache.auth_plugins.url = postgresql://postgres:secret@localhost/rhodecode
325 325 #beaker.cache.auth_plugins.url = mysql://root:secret@127.0.0.1/rhodecode
326 326 #beaker.cache.auth_plugins.sa.pool_recycle = 3600
327 327 #beaker.cache.auth_plugins.sa.pool_size = 10
328 328 #beaker.cache.auth_plugins.sa.max_overflow = 0
329 329
330 330 beaker.cache.repo_cache_long.type = memorylru_base
331 331 beaker.cache.repo_cache_long.max_items = 4096
332 332 beaker.cache.repo_cache_long.expire = 2592000
333 333
334 334 # default is memorylru_base cache, configure only if required
335 335 # using multi-node or multi-worker setup
336 336 #beaker.cache.repo_cache_long.type = ext:memcached
337 337 #beaker.cache.repo_cache_long.url = localhost:11211
338 338 #beaker.cache.repo_cache_long.expire = 1209600
339 339 #beaker.cache.repo_cache_long.key_length = 256
340 340
341 341 ####################################
342 342 ### BEAKER SESSION ####
343 343 ####################################
344 344
345 345 ## .session.type is type of storage options for the session, current allowed
346 346 ## types are file, ext:memcached, ext:database, and memory (default).
347 347 beaker.session.type = file
348 348 beaker.session.data_dir = %(here)s/data/sessions/data
349 349
350 350 ## db based session, fast, and allows easy management over logged in users ##
351 351 #beaker.session.type = ext:database
352 352 #beaker.session.table_name = db_session
353 353 #beaker.session.sa.url = postgresql://postgres:secret@localhost/rhodecode
354 354 #beaker.session.sa.url = mysql://root:secret@127.0.0.1/rhodecode
355 355 #beaker.session.sa.pool_recycle = 3600
356 356 #beaker.session.sa.echo = false
357 357
358 358 beaker.session.key = rhodecode
359 359 beaker.session.secret = develop-rc-uytcxaz
360 360 beaker.session.lock_dir = %(here)s/data/sessions/lock
361 361
362 362 ## Secure encrypted cookie. Requires AES and AES python libraries
363 363 ## you must disable beaker.session.secret to use this
364 364 #beaker.session.encrypt_key = <key_for_encryption>
365 365 #beaker.session.validate_key = <validation_key>
366 366
367 367 ## sets session as invalid(also logging out user) if it haven not been
368 368 ## accessed for given amount of time in seconds
369 369 beaker.session.timeout = 2592000
370 370 beaker.session.httponly = true
371 371 #beaker.session.cookie_path = /<your-prefix>
372 372
373 373 ## uncomment for https secure cookie
374 374 beaker.session.secure = false
375 375
376 376 ## auto save the session to not to use .save()
377 377 beaker.session.auto = false
378 378
379 379 ## default cookie expiration time in seconds, set to `true` to set expire
380 380 ## at browser close
381 381 #beaker.session.cookie_expires = 3600
382 382
383 383 ###################################
384 384 ## SEARCH INDEXING CONFIGURATION ##
385 385 ###################################
386 386 ## Full text search indexer is available in rhodecode-tools under
387 387 ## `rhodecode-tools index` command
388 388
389 389 # WHOOSH Backend, doesn't require additional services to run
390 390 # it works good with few dozen repos
391 391 search.module = rhodecode.lib.index.whoosh
392 392 search.location = %(here)s/data/index
393 393
394 394 ###################################
395 395 ## APPENLIGHT CONFIG ##
396 396 ###################################
397 397
398 398 ## Appenlight is tailored to work with RhodeCode, see
399 399 ## http://appenlight.com for details how to obtain an account
400 400
401 401 ## appenlight integration enabled
402 402 appenlight = false
403 403
404 404 appenlight.server_url = https://api.appenlight.com
405 405 appenlight.api_key = YOUR_API_KEY
406 406 #appenlight.transport_config = https://api.appenlight.com?threaded=1&timeout=5
407 407
408 408 # used for JS client
409 409 appenlight.api_public_key = YOUR_API_PUBLIC_KEY
410 410
411 411 ## TWEAK AMOUNT OF INFO SENT HERE
412 412
413 413 ## enables 404 error logging (default False)
414 414 appenlight.report_404 = false
415 415
416 416 ## time in seconds after request is considered being slow (default 1)
417 417 appenlight.slow_request_time = 1
418 418
419 419 ## record slow requests in application
420 420 ## (needs to be enabled for slow datastore recording and time tracking)
421 421 appenlight.slow_requests = true
422 422
423 423 ## enable hooking to application loggers
424 424 appenlight.logging = true
425 425
426 426 ## minimum log level for log capture
427 427 appenlight.logging.level = WARNING
428 428
429 429 ## send logs only from erroneous/slow requests
430 430 ## (saves API quota for intensive logging)
431 431 appenlight.logging_on_error = false
432 432
433 433 ## list of additonal keywords that should be grabbed from environ object
434 434 ## can be string with comma separated list of words in lowercase
435 435 ## (by default client will always send following info:
436 436 ## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that
437 437 ## start with HTTP* this list be extended with additional keywords here
438 438 appenlight.environ_keys_whitelist =
439 439
440 440 ## list of keywords that should be blanked from request object
441 441 ## can be string with comma separated list of words in lowercase
442 442 ## (by default client will always blank keys that contain following words
443 443 ## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'
444 444 ## this list be extended with additional keywords set here
445 445 appenlight.request_keys_blacklist =
446 446
447 447 ## list of namespaces that should be ignores when gathering log entries
448 448 ## can be string with comma separated list of namespaces
449 449 ## (by default the client ignores own entries: appenlight_client.client)
450 450 appenlight.log_namespace_blacklist =
451 451
452 452
453 453 ################################################################################
454 454 ## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ##
455 455 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
456 456 ## execute malicious code after an exception is raised. ##
457 457 ################################################################################
458 458 #set debug = false
459 459
460 460
461 461 ##############
462 462 ## STYLING ##
463 463 ##############
464 464 debug_style = true
465 465
466 466 #########################################################
467 467 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
468 468 #########################################################
469 469 sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db?timeout=30
470 470 #sqlalchemy.db1.url = postgresql://postgres:qweqwe@localhost/rhodecode
471 471 #sqlalchemy.db1.url = mysql://root:qweqwe@localhost/rhodecode
472 472
473 473 # see sqlalchemy docs for other advanced settings
474 474
475 475 ## print the sql statements to output
476 476 sqlalchemy.db1.echo = false
477 477 ## recycle the connections after this ammount of seconds
478 478 sqlalchemy.db1.pool_recycle = 3600
479 479 sqlalchemy.db1.convert_unicode = true
480 480
481 481 ## the number of connections to keep open inside the connection pool.
482 482 ## 0 indicates no limit
483 483 #sqlalchemy.db1.pool_size = 5
484 484
485 485 ## the number of connections to allow in connection pool "overflow", that is
486 486 ## connections that can be opened above and beyond the pool_size setting,
487 487 ## which defaults to five.
488 488 #sqlalchemy.db1.max_overflow = 10
489 489
490 490
491 491 ##################
492 492 ### VCS CONFIG ###
493 493 ##################
494 494 vcs.server.enable = true
495 495 vcs.server = localhost:9900
496 496
497 497 ## Web server connectivity protocol, responsible for web based VCS operatations
498 498 ## Available protocols are:
499 499 ## `pyro4` - using pyro4 server
500 500 ## `http` - using http-rpc backend
501 #vcs.server.protocol = http
501 vcs.server.protocol = http
502 502
503 503 ## Push/Pull operations protocol, available options are:
504 504 ## `pyro4` - using pyro4 server
505 505 ## `rhodecode.lib.middleware.utils.scm_app_http` - Http based, recommended
506 506 ## `vcsserver.scm_app` - internal app (EE only)
507 #vcs.scm_app_implementation = rhodecode.lib.middleware.utils.scm_app_http
507 vcs.scm_app_implementation = rhodecode.lib.middleware.utils.scm_app_http
508 508
509 509 ## Push/Pull operations hooks protocol, available options are:
510 510 ## `pyro4` - using pyro4 server
511 511 ## `http` - using http-rpc backend
512 #vcs.hooks.protocol = http
512 vcs.hooks.protocol = http
513 513
514 514 vcs.server.log_level = debug
515 515 ## Start VCSServer with this instance as a subprocess, usefull for development
516 516 vcs.start_server = true
517 517 vcs.backends = hg, git, svn
518 518 vcs.connection_timeout = 3600
519 519 ## Compatibility version when creating SVN repositories. Defaults to newest version when commented out.
520 520 ## Available options are: pre-1.4-compatible, pre-1.5-compatible, pre-1.6-compatible, pre-1.8-compatible
521 521 #vcs.svn.compatible_version = pre-1.8-compatible
522 522
523 523 ################################
524 524 ### LOGGING CONFIGURATION ####
525 525 ################################
526 526 [loggers]
527 527 keys = root, routes, rhodecode, sqlalchemy, beaker, pyro4, templates
528 528
529 529 [handlers]
530 530 keys = console, console_sql
531 531
532 532 [formatters]
533 533 keys = generic, color_formatter, color_formatter_sql
534 534
535 535 #############
536 536 ## LOGGERS ##
537 537 #############
538 538 [logger_root]
539 539 level = NOTSET
540 540 handlers = console
541 541
542 542 [logger_routes]
543 543 level = DEBUG
544 544 handlers =
545 545 qualname = routes.middleware
546 546 ## "level = DEBUG" logs the route matched and routing variables.
547 547 propagate = 1
548 548
549 549 [logger_beaker]
550 550 level = DEBUG
551 551 handlers =
552 552 qualname = beaker.container
553 553 propagate = 1
554 554
555 555 [logger_pyro4]
556 556 level = DEBUG
557 557 handlers =
558 558 qualname = Pyro4
559 559 propagate = 1
560 560
561 561 [logger_templates]
562 562 level = INFO
563 563 handlers =
564 564 qualname = pylons.templating
565 565 propagate = 1
566 566
567 567 [logger_rhodecode]
568 568 level = DEBUG
569 569 handlers =
570 570 qualname = rhodecode
571 571 propagate = 1
572 572
573 573 [logger_sqlalchemy]
574 574 level = INFO
575 575 handlers = console_sql
576 576 qualname = sqlalchemy.engine
577 577 propagate = 0
578 578
579 579 ##############
580 580 ## HANDLERS ##
581 581 ##############
582 582
583 583 [handler_console]
584 584 class = StreamHandler
585 585 args = (sys.stderr,)
586 586 level = DEBUG
587 587 formatter = color_formatter
588 588
589 589 [handler_console_sql]
590 590 class = StreamHandler
591 591 args = (sys.stderr,)
592 592 level = DEBUG
593 593 formatter = color_formatter_sql
594 594
595 595 ################
596 596 ## FORMATTERS ##
597 597 ################
598 598
599 599 [formatter_generic]
600 600 class = rhodecode.lib.logging_formatter.Pyro4AwareFormatter
601 601 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
602 602 datefmt = %Y-%m-%d %H:%M:%S
603 603
604 604 [formatter_color_formatter]
605 605 class = rhodecode.lib.logging_formatter.ColorFormatter
606 606 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
607 607 datefmt = %Y-%m-%d %H:%M:%S
608 608
609 609 [formatter_color_formatter_sql]
610 610 class = rhodecode.lib.logging_formatter.ColorFormatterSql
611 611 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
612 612 datefmt = %Y-%m-%d %H:%M:%S
@@ -1,165 +1,157 b''
1 1 .. _dev-setup:
2 2
3 3 ===================
4 4 Development setup
5 5 ===================
6 6
7 7
8 8 RhodeCode Enterprise runs inside a Nix managed environment. This ensures build
9 9 environment dependencies are correctly declared and installed during setup.
10 10 It also enables atomic upgrades, rollbacks, and multiple instances of RhodeCode
11 11 Enterprise running with isolation.
12 12
13 13 To set up RhodeCode Enterprise inside the Nix environment, use the following steps:
14 14
15 15
16 16
17 17 Setup Nix Package Manager
18 18 -------------------------
19 19
20 20 To install the Nix Package Manager, please run::
21 21
22 22 $ curl https://nixos.org/nix/install | sh
23 23
24 24 or go to https://nixos.org/nix/ and follow the installation instructions.
25 25 Once this is correctly set up on your system, you should be able to use the
26 26 following commands:
27 27
28 28 * `nix-env`
29 29
30 30 * `nix-shell`
31 31
32 32
33 33 .. tip::
34 34
35 35 Update your channels frequently by running ``nix-channel --upgrade``.
36 36
37 37
38 38 Switch nix to the latest STABLE channel
39 39 ---------------------------------------
40 40
41 41 run::
42 42
43 43 nix-channel --add https://nixos.org/channels/nixos-16.03 nixpkgs
44 44
45 45 Followed by::
46 46
47 47 nix-channel --update
48 48
49 49
50 50 Clone the required repositories
51 51 -------------------------------
52 52
53 53 After Nix is set up, clone the RhodeCode Enterprise Community Edition and
54 54 RhodeCode VCSServer repositories into the same directory.
55 55 To do this, use the following example::
56 56
57 57 mkdir rhodecode-develop && cd rhodecode-develop
58 58 hg clone https://code.rhodecode.com/rhodecode-enterprise-ce
59 59 hg clone https://code.rhodecode.com/rhodecode-vcsserver
60 60
61 61 .. note::
62 62
63 63 If you cannot clone the repository, please request read permissions
64 64 via support@rhodecode.com
65 65
66 66
67 67
68 68 Enter the Development Shell
69 69 ---------------------------
70 70
71 71 The final step is to start the development shell. To do this, run the
72 72 following command from inside the cloned repository::
73 73
74 74 cd ~/rhodecode-enterprise-ce
75 75 nix-shell
76 76
77 77 .. note::
78 78
79 79 On the first run, this will take a while to download and optionally compile
80 80 a few things. The following runs will be faster. The development shell works
81 81 fine on both MacOS and Linux platforms.
82 82
83 83
84 84
85 85 Creating a Development Configuration
86 86 ------------------------------------
87 87
88 88 To create a development environment for RhodeCode Enterprise,
89 89 use the following steps:
90 90
91 91 1. Create a copy of `~/rhodecode-enterprise-ce/configs/development.ini`
92 92 2. Adjust the configuration settings to your needs
93 93
94 .. note::
94 .. note::
95 95
96 It is recommended to use the name `dev.ini`.
96 It is recommended to use the name `dev.ini`.
97 97
98 98
99 99 Setup the Development Database
100 100 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
101 101
102 102 To create a development database, use the following example. This is a one
103 103 time operation::
104 104
105 105 paster setup-rhodecode dev.ini \
106 106 --user=admin --password=secret \
107 107 --email=admin@example.com \
108 108 --repos=~/my_dev_repos
109 109
110 110
111 111 Compile CSS and JavaScript
112 112 ^^^^^^^^^^^^^^^^^^^^^^^^^^
113 113
114 114 To use the application's frontend, you will need to compile the CSS and
115 115 JavaScript with Grunt. This is easily done from within the nix-shell using the
116 116 following command::
117 117
118 118 make web-build
119 119
120 120 You will need to recompile following any changes made to the CSS or JavaScript
121 121 files.
122 122
123 123
124 124 Start the Development Server
125 125 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
126 126
127 First, set the `start.vcs_server` flag in the ``dev.ini`` file to true.
128 For example:
129
130 .. code-block:: python
131
132 ### VCS CONFIG ###
133 ##################
134 vcs.start_server = true
135 vcs.server = localhost:9900
136 vcs.server.log_level = debug
137
138 127 From the rhodecode-vcsserver directory, start the development server in another
139 128 nix-shell, using the following command::
140 129
141 130 pserve configs/development_pyramid.ini http_port=9900
142 131
143 132 In the adjacent nix-shell which you created for your development server, you may
144 133 now start CE with the following command::
145 134
135
146 136 rcserver dev.ini
147 137
148 You may also wish to use the option `--reload` with this command so that any
149 changes which you make in the code trigger an automatic refresh.
138 .. note::
139
140 To automatically refresh - and recompile the frontend assets - when changes
141 are made in the source code, you can use the option `--reload`.
150 142
151 143
152 144 Run the Environment Tests
153 145 ^^^^^^^^^^^^^^^^^^^^^^^^^
154 146
155 147 Please make sure that the tests are passing to verify that your environment is
156 148 set up correctly. RhodeCode uses py.test to run tests.
157 149 While your instance is running, start a new nix-shell and simply run
158 150 ``make test`` to run the basic test suite.
159 151
160 152
161 153 Need Help?
162 154 ^^^^^^^^^^
163 155
164 156 Join us on Slack via https://rhodecode.com/join or post questions in our
165 157 Community Portal at https://community.rhodecode.com
General Comments 0
You need to be logged in to leave comments. Login now