## -*- coding: utf-8 -*-

; #################################
; RHODECODE VCSSERVER CONFIGURATION
; #################################

[server:main]
; COMMON HOST/IP CONFIG
host = 127.0.0.1
port = 9900


; ###########################
; GUNICORN APPLICATION SERVER
; ###########################

; run with gunicorn --log-config rhodecode.ini --paste rhodecode.ini

; Module to use, this setting shouldn't be changed
use = egg:gunicorn#main

[app:main]
; The %(here)s variable will be replaced with the absolute path of parent directory
; of this file
use = egg:rhodecode-vcsserver

; Pyramid default locales, we need this to be set
pyramid.default_locale_name = en

; 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
; it can also be a path to nix-build output in case of development
core.binary_dir = ""

; Custom exception store path, defaults to TMPDIR
; This is used to store exception from RhodeCode in shared directory
#exception_tracker.store_path =

; #############
; 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

; ***************************************
; `repo_object` cache, default file based
; ***************************************

; `repo_object` cache settings for vcs methods for repositories
rc_cache.repo_object.backend = dogpile.cache.rc.memory_lru

; cache auto-expires after N seconds
; Examples: 86400 (1Day), 604800 (7Days), 1209600 (14Days), 2592000 (30days), 7776000 (90Days)
rc_cache.repo_object.expiration_time = 2592000

; file cache store path. Defaults to `cache_dir =` value or tempdir if both values are not set
#rc_cache.repo_object.arguments.filename = /tmp/vcsserver_cache.db

; ***********************************************************
; `repo_object` cache with redis backend
; recommended for larger instance, and for better performance
; ***********************************************************

; `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

# legacy cache regions, please don't change
beaker.cache.regions = repo_object
beaker.cache.repo_object.type = memorylru
beaker.cache.repo_object.max_items = 100
# cache auto-expires after N seconds
beaker.cache.repo_object.expire = 300
beaker.cache.repo_object.enabled = true



; #####################
; 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