production.ini
175 lines
| 5.2 KiB
| text/x-ini
|
IniLexer
/ configs / production.ini
r483 | ################################################################################ | |||
# RhodeCode VCSServer with HTTP Backend - configuration # | ||||
################################################################################ | ||||
[server:main] | ||||
## COMMON ## | ||||
host = 127.0.0.1 | ||||
port = 9900 | ||||
r801 | ########################################################### | |||
## WAITRESS WSGI SERVER - Recommended for Development #### | ||||
########################################################### | ||||
#use = egg:waitress#main | ||||
## number of worker threads | ||||
#threads = 5 | ||||
## MAX BODY SIZE 100GB | ||||
#max_request_body_size = 107374182400 | ||||
## Use poll instead of select, fixes file descriptors limits problems. | ||||
## May not work on old windows systems. | ||||
#asyncore_use_poll = true | ||||
r483 | ||||
########################## | ||||
## GUNICORN WSGI SERVER ## | ||||
########################## | ||||
## run with gunicorn --log-config vcsserver.ini --paste vcsserver.ini | ||||
r801 | ||||
r483 | use = egg:gunicorn#main | |||
r801 | ## 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. | ||||
r483 | workers = 2 | |||
r801 | ||||
## Gunicorn access log level | ||||
loglevel = info | ||||
## process name visible in process list | ||||
r483 | proc_name = rhodecode_vcsserver | |||
r801 | ||||
r483 | ## type of worker class, currently `sync` is the only option allowed. | |||
worker_class = sync | ||||
r801 | ||||
r483 | ## The maximum number of simultaneous clients. Valid only for Gevent | |||
r801 | worker_connections = 10 | |||
r483 | ## max number of requests that worker will handle before being gracefully | |||
## restarted, could prevent memory leaks | ||||
max_requests = 1000 | ||||
max_requests_jitter = 30 | ||||
r801 | ||||
r483 | ## amount of time a worker can spend with handling a request before it | |||
## gets killed and restarted. Set to 6hrs | ||||
timeout = 21600 | ||||
r801 | ## The maximum size of HTTP request line in bytes. | |||
## 0 for unlimited | ||||
limit_request_line = 0 | ||||
## Limit the number of HTTP headers fields in a request. | ||||
## By default this value is 100 and can't be larger than 32768. | ||||
limit_request_fields = 32768 | ||||
## 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. | ||||
limit_request_field_size = 0 | ||||
## 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. | ||||
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 | ||||
## Maximum memory usage that each worker can use before it will receive a | ||||
## graceful restart signal, e.g 10MB = 10485760 (10 * 1024 * 1024) | ||||
# 0 = memory monitoring is disabled | ||||
memory_max_usage = 0 | ||||
## How often in seconds to check for memory usage for each gunicorn worker | ||||
memory_usage_check_interval = 60 | ||||
## 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. | ||||
memory_usage_recovery_threshold = 0.8 | ||||
r483 | ||||
[app:main] | ||||
use = egg:rhodecode-vcsserver | ||||
pyramid.default_locale_name = en | ||||
pyramid.includes = | ||||
## default locale used by VCS systems | ||||
locale = en_US.UTF-8 | ||||
## path to binaries for vcsserver, it should be set by the installer | ||||
## at installation time, e.g /home/user/vcsserver-1/profile/bin | ||||
core.binary_dir = "" | ||||
r546 | ## Custom exception store path, defaults to TMPDIR | |||
## This is used to store exception from RhodeCode in shared directory | ||||
#exception_tracker.store_path = | ||||
r519 | ||||
## Default cache dir for caches. Putting this into a ramdisk | ||||
## can boost performance, eg. /tmpfs/data_ramdisk, however this directory might require | ||||
r546 | ## large amount of space | |||
r519 | cache_dir = %(here)s/rcdev/data | |||
r483 | ## cache region for storing repo_objects cache | |||
r776 | rc_cache.repo_object.backend = dogpile.cache.rc.file_namespace | |||
## cache auto-expires after N seconds (2592000 == 30 days) | ||||
rc_cache.repo_object.expiration_time = 2592000 | ||||
## cache file store path, if empty set automatically to tmp dir location | ||||
#rc_cache.repo_object.arguments.filename = /tmp/vcsserver_cache.db | ||||
r483 | ## max size of LRU, old values will be discarded if the size of cache reaches max_size | |||
rc_cache.repo_object.max_size = 100 | ||||
################################ | ||||
### LOGGING CONFIGURATION #### | ||||
################################ | ||||
[loggers] | ||||
keys = root, vcsserver | ||||
[handlers] | ||||
keys = console | ||||
[formatters] | ||||
keys = generic | ||||
############# | ||||
## LOGGERS ## | ||||
############# | ||||
[logger_root] | ||||
level = NOTSET | ||||
handlers = console | ||||
[logger_vcsserver] | ||||
level = DEBUG | ||||
handlers = | ||||
qualname = vcsserver | ||||
propagate = 1 | ||||
############## | ||||
## HANDLERS ## | ||||
############## | ||||
[handler_console] | ||||
class = StreamHandler | ||||
args = (sys.stderr,) | ||||
level = DEBUG | ||||
formatter = generic | ||||
################ | ||||
## FORMATTERS ## | ||||
################ | ||||
[formatter_generic] | ||||
format = %(asctime)s.%(msecs)03d [%(process)d] %(levelname)-5.5s [%(name)s] %(message)s | ||||
datefmt = %Y-%m-%d %H:%M:%S | ||||