development.ini
237 lines
| 7.0 KiB
| text/x-ini
|
IniLexer
/ configs / development.ini
r806 | ## -*- coding: utf-8 -*- | |||
r483 | ||||
r806 | ; ################################# | |||
; RHODECODE VCSSERVER CONFIGURATION | ||||
; ################################# | ||||
r483 | ||||
[server:main] | ||||
r806 | ; COMMON HOST/IP CONFIG | |||
r483 | host = 0.0.0.0 | |||
port = 9900 | ||||
r806 | ; ################################################## | |||
; WAITRESS WSGI SERVER - Recommended for Development | ||||
; ################################################## | ||||
r801 | ||||
r806 | ; use server type | |||
r483 | use = egg:waitress#main | |||
r806 | ||||
; number of worker threads | ||||
r801 | threads = 5 | |||
r806 | ||||
; MAX BODY SIZE 100GB | ||||
r801 | max_request_body_size = 107374182400 | |||
r806 | ||||
; Use poll instead of select, fixes file descriptors limits problems. | ||||
; May not work on old windows systems. | ||||
r801 | asyncore_use_poll = true | |||
r806 | ; ########################### | |||
; GUNICORN APPLICATION SERVER | ||||
; ########################### | ||||
r801 | ||||
r806 | ; run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini | |||
; Module to use, this setting shouldn't be changed | ||||
r801 | #use = egg:gunicorn#main | |||
r806 | ||||
; Sets the number of process workers. More workers means more concurrent connections | ||||
; RhodeCode can handle at the same time. Each additional worker also it increases | ||||
; memory usage as each has it's own set of caches. | ||||
; Recommended value is (2 * NUMBER_OF_CPUS + 1), eg 2CPU = 5 workers, but no more | ||||
; than 8-10 unless for really big deployments .e.g 700-1000 users. | ||||
; `instance_id = *` must be set in the [app:main] section below (which is the default) | ||||
; when using more than 1 worker. | ||||
r801 | #workers = 2 | |||
r806 | ; Gunicorn access log level | |||
r801 | #loglevel = info | |||
r806 | ; Process name visible in process list | |||
r801 | #proc_name = rhodecode_vcsserver | |||
r809 | ; Type of worker class, one of `sync`, `gevent` | |||
r806 | ; currently `sync` is the only option allowed. | |||
r801 | #worker_class = sync | |||
r806 | ; The maximum number of simultaneous clients. Valid only for gevent | |||
r801 | #worker_connections = 10 | |||
r806 | ; Max number of requests that worker will handle before being gracefully restarted. | |||
; Prevents memory leaks, jitter adds variability so not all workers are restarted at once. | ||||
r801 | #max_requests = 1000 | |||
#max_requests_jitter = 30 | ||||
r806 | ; Amount of time a worker can spend with handling a request before it | |||
; gets killed and restarted. By default set to 21600 (6hrs) | ||||
; Examples: 1800 (30min), 3600 (1hr), 7200 (2hr), 43200 (12h) | ||||
r801 | #timeout = 21600 | |||
r806 | ; The maximum size of HTTP request line in bytes. | |||
; 0 for unlimited | ||||
r801 | #limit_request_line = 0 | |||
r806 | ; Limit the number of HTTP headers fields in a request. | |||
; By default this value is 100 and can't be larger than 32768. | ||||
r801 | #limit_request_fields = 32768 | |||
r806 | ; Limit the allowed size of an HTTP request header field. | |||
; Value is a positive number or 0. | ||||
; Setting it to 0 will allow unlimited header field sizes. | ||||
r801 | #limit_request_field_size = 0 | |||
r806 | ; Timeout for graceful workers restart. | |||
; After receiving a restart signal, workers have this much time to finish | ||||
; serving requests. Workers still alive after the timeout (starting from the | ||||
; receipt of the restart signal) are force killed. | ||||
; Examples: 1800 (30min), 3600 (1hr), 7200 (2hr), 43200 (12h) | ||||
r801 | #graceful_timeout = 3600 | |||
# The number of seconds to wait for requests on a Keep-Alive connection. | ||||
# Generally set in the 1-5 seconds range. | ||||
#keepalive = 2 | ||||
r806 | ; Maximum memory usage that each worker can use before it will receive a | |||
; graceful restart signal 0 = memory monitoring is disabled | ||||
; Examples: 268435456 (256MB), 536870912 (512MB) | ||||
; 1073741824 (1GB), 2147483648 (2GB), 4294967296 (4GB) | ||||
r801 | #memory_max_usage = 0 | |||
r806 | ; How often in seconds to check for memory usage for each gunicorn worker | |||
r801 | #memory_usage_check_interval = 60 | |||
r806 | ; Threshold value for which we don't recycle worker if GarbageCollection | |||
; frees up enough resources. Before each restart we try to run GC on worker | ||||
; in case we get enough free memory after that, restart will not happen. | ||||
r801 | #memory_usage_recovery_threshold = 0.8 | |||
r483 | ||||
[app:main] | ||||
r806 | ; The %(here)s variable will be replaced with the absolute path of parent directory | |||
; of this file | ||||
r483 | use = egg:rhodecode-vcsserver | |||
r806 | ||||
; ############# | ||||
; DEBUG OPTIONS | ||||
; ############# | ||||
# During development the we want to have the debug toolbar enabled | ||||
r483 | pyramid.includes = | |||
r806 | pyramid_debugtoolbar | |||
r483 | ||||
r806 | debugtoolbar.hosts = 0.0.0.0/0 | |||
debugtoolbar.exclude_prefixes = | ||||
/css | ||||
/fonts | ||||
/images | ||||
/js | ||||
; ################# | ||||
; END DEBUG OPTIONS | ||||
; ################# | ||||
; Pyramid default locales, we need this to be set | ||||
pyramid.default_locale_name = en | ||||
; default locale used by VCS systems | ||||
r483 | locale = en_US.UTF-8 | |||
r806 | ; path to binaries for vcsserver, it should be set by the installer | |||
; at installation time, e.g /home/user/vcsserver-1/profile/bin | ||||
; it can also be a path to nix-build output in case of development | ||||
r483 | core.binary_dir = "" | |||
r806 | ; Custom exception store path, defaults to TMPDIR | |||
; This is used to store exception from RhodeCode in shared directory | ||||
r546 | #exception_tracker.store_path = | |||
r519 | ||||
r806 | ; ############# | |||
; DOGPILE CACHE | ||||
; ############# | ||||
; Default cache dir for caches. Putting this into a ramdisk can boost performance. | ||||
; eg. /tmpfs/data_ramdisk, however this directory might require large amount of space | ||||
cache_dir = %(here)s/data | ||||
r519 | ||||
r806 | ; *************************************** | |||
; `repo_object` cache, default file based | ||||
; *************************************** | ||||
; `repo_object` cache settings for vcs methods for repositories | ||||
r776 | rc_cache.repo_object.backend = dogpile.cache.rc.file_namespace | |||
r806 | ||||
; cache auto-expires after N seconds | ||||
; Examples: 86400 (1Day), 604800 (7Days), 1209600 (14Days), 2592000 (30days), 7776000 (90Days) | ||||
r776 | rc_cache.repo_object.expiration_time = 2592000 | |||
r809 | ; file cache store path. Defaults to `cache_dir =` value or tempdir if both values are not set | |||
r776 | #rc_cache.repo_object.arguments.filename = /tmp/vcsserver_cache.db | |||
r809 | ; *********************************************************** | |||
r806 | ; `repo_object` cache with redis backend | |||
r809 | ; recommended for larger instance, and for better performance | |||
; *********************************************************** | ||||
r806 | ||||
; `repo_object` cache settings for vcs methods for repositories | ||||
#rc_cache.repo_object.backend = dogpile.cache.rc.redis_msgpack | ||||
; cache auto-expires after N seconds | ||||
; Examples: 86400 (1Day), 604800 (7Days), 1209600 (14Days), 2592000 (30days), 7776000 (90Days) | ||||
#rc_cache.repo_object.expiration_time = 2592000 | ||||
; redis_expiration_time needs to be greater then expiration_time | ||||
#rc_cache.repo_object.arguments.redis_expiration_time = 3592000 | ||||
#rc_cache.repo_object.arguments.host = localhost | ||||
#rc_cache.repo_object.arguments.port = 6379 | ||||
#rc_cache.repo_object.arguments.db = 5 | ||||
#rc_cache.repo_object.arguments.socket_timeout = 30 | ||||
; more Redis options: https://dogpilecache.sqlalchemy.org/en/latest/api.html#redis-backends | ||||
#rc_cache.repo_object.arguments.distributed_lock = true | ||||
r483 | ||||
r806 | ; ##################### | |||
; LOGGING CONFIGURATION | ||||
; ##################### | ||||
r483 | [loggers] | |||
keys = root, vcsserver | ||||
[handlers] | ||||
keys = console | ||||
[formatters] | ||||
keys = generic | ||||
r806 | ; ####### | |||
; LOGGERS | ||||
; ####### | ||||
r483 | [logger_root] | |||
level = NOTSET | ||||
handlers = console | ||||
[logger_vcsserver] | ||||
level = DEBUG | ||||
handlers = | ||||
qualname = vcsserver | ||||
propagate = 1 | ||||
r806 | ; ######## | |||
; HANDLERS | ||||
; ######## | ||||
r483 | ||||
[handler_console] | ||||
class = StreamHandler | ||||
r806 | args = (sys.stderr, ) | |||
r483 | level = DEBUG | |||
formatter = generic | ||||
r806 | ; ########## | |||
; FORMATTERS | ||||
; ########## | ||||
r483 | ||||
[formatter_generic] | ||||
format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s | ||||
datefmt = %Y-%m-%d %H:%M:%S | ||||