diff --git a/development.ini b/development.ini --- a/development.ini +++ b/development.ini @@ -1,19 +1,12 @@ ################################################################################ ################################################################################ -# Kallithea - Development config: # -# listening on *:5000 # -# sqlite and kallithea.db # -# initial_repo_scan = true # -# set debug = true # -# verbose and colorful logging # +# Kallithea - config file generated with kallithea-config # # # # The %(here)s variable will be replaced with the parent directory of this file# ################################################################################ ################################################################################ [DEFAULT] -debug = true -pdebug = false ################################################################################ ## Email settings ## @@ -39,43 +32,39 @@ pdebug = false #email_prefix = [Kallithea] ## Recipients for error emails and fallback recipients of application mails. -## Multiple addresses can be specified, space-separated. +## Multiple addresses can be specified, comma-separated. ## Only addresses are allowed, do not add any name part. ## Default: #email_to = ## Examples: #email_to = admin@example.com -#email_to = admin@example.com another_admin@example.com +#email_to = admin@example.com,another_admin@example.com +email_to = ## 'From' header for error emails. You can optionally add a name. -## Default: -#error_email_from = pylons@yourapp.com +## Default: (none) ## Examples: #error_email_from = Kallithea Errors -#error_email_from = paste_error@example.com +#error_email_from = kallithea_errors@example.com +error_email_from = ## SMTP server settings -## Only smtp_server is mandatory. All other settings take the specified default -## values. -#smtp_server = smtp.example.com +## If specifying credentials, make sure to use secure connections. +## Default: Send unencrypted unauthenticated mails to the specified smtp_server. +## For "SSL", use smtp_use_ssl = true and smtp_port = 465. +## For "STARTTLS", use smtp_use_tls = true and smtp_port = 587. +smtp_server = #smtp_username = #smtp_password = -#smtp_port = 25 -#smtp_use_tls = false +smtp_port = #smtp_use_ssl = false -## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.). -## If empty, use any of the authentication parameters supported by the server. -#smtp_auth = +#smtp_use_tls = false +## Entry point for 'gearbox serve' [server:main] -## PASTE ## -#use = egg:Paste#http -## nr of worker threads to spawn -#threadpool_workers = 1 -## max request before thread respawn -#threadpool_max_requests = 100 -## option to use threads of process -#use_threadpool = true +#host = 127.0.0.1 +host = 0.0.0.0 +port = 5000 ## WAITRESS ## use = egg:waitress#main @@ -87,85 +76,6 @@ max_request_body_size = 107374182400 ## windows systems. #asyncore_use_poll = True -## GUNICORN ## -#use = egg:gunicorn#main -## number of process workers. You must set `instance_id = *` when this option -## is set to more than one worker -#workers = 1 -## process name -#proc_name = kallithea -## type of worker class, one of sync, eventlet, gevent, tornado -## recommended for bigger setup is using of of other than sync one -#worker_class = sync -#max_requests = 1000 -## ammount of time a worker can handle request before it gets killed and -## restarted -#timeout = 3600 - -## UWSGI ## -## run with uwsgi --ini-paste-logged -#[uwsgi] -#socket = /tmp/uwsgi.sock -#master = true -#http = 127.0.0.1:5000 - -## set as deamon and redirect all output to file -#daemonize = ./uwsgi_kallithea.log - -## master process PID -#pidfile = ./uwsgi_kallithea.pid - -## stats server with workers statistics, use uwsgitop -## for monitoring, `uwsgitop 127.0.0.1:1717` -#stats = 127.0.0.1:1717 -#memory-report = true - -## log 5XX errors -#log-5xx = true - -## Set the socket listen queue size. -#listen = 256 - -## Gracefully Reload workers after the specified amount of managed requests -## (avoid memory leaks). -#max-requests = 1000 - -## enable large buffers -#buffer-size = 65535 - -## socket and http timeouts ## -#http-timeout = 3600 -#socket-timeout = 3600 - -## Log requests slower than the specified number of milliseconds. -#log-slow = 10 - -## Exit if no app can be loaded. -#need-app = true - -## Set lazy mode (load apps in workers instead of master). -#lazy = true - -## scaling ## -## set cheaper algorithm to use, if not set default will be used -#cheaper-algo = spare - -## minimum number of workers to keep at all times -#cheaper = 1 - -## number of workers to spawn at startup -#cheaper-initial = 1 - -## maximum number of workers that can be spawned -#workers = 4 - -## how many workers should be spawned at a time -#cheaper-step = 1 - -## COMMON ## -host = 0.0.0.0 -port = 5000 - ## middleware for hosting the WSGI application under a URL prefix #[filter:proxy-prefix] #use = egg:PasteDeploy#prefix @@ -178,29 +88,26 @@ use = egg:kallithea full_stack = true static_files = true -## Available Languages: -## cs de fr hu ja nl_BE pl pt_BR ru sk zh_CN zh_TW -lang = + +## Internationalization (see setup documentation for details) +## By default, the language requested by the browser is used if available. +#i18n.enable = false +## Fallback language, empty for English (valid values are the names of subdirectories in kallithea/i18n): +i18n.lang = + cache_dir = %(here)s/data index_dir = %(here)s/data/index -## perform a full repository scan on each server start, this should be -## set to false after first startup, to allow faster server restarts. -#initial_repo_scan = false -initial_repo_scan = true - ## uncomment and set this path to use archive download cache archive_cache_dir = %(here)s/tarballcache ## change this to unique ID for security +#app_instance_uuid = VERY-SECRET app_instance_uuid = development-not-secret ## cut off limit for large diffs (size in bytes) cut_off_limit = 256000 -## use cache version of scm repo everywhere -vcs_full_cache = true - ## force https in Kallithea, fixes https redirects, assumes it's always https force_https = false @@ -226,6 +133,11 @@ rss_include_diff = false show_sha_length = 12 show_revision_number = false +## Canonical URL to use when creating full URLs in UI and texts. +## Useful when the site is available under different names or protocols. +## Defaults to what is provided in the WSGI environment. +#canonical_url = https://kallithea.example.com/repos + ## gist URL alias, used to create nicer urls for gist. This should be an ## url that does rewrites to _admin/gists/. ## example: http://gist.example.com/{gistid}. Empty means use the internal @@ -245,46 +157,53 @@ api_access_controllers_whitelist = # FilesController:archivefile ## default encoding used to convert from and to unicode -## can be also a comma seperated list of encoding in case of mixed encodings -default_encoding = utf8 +## can be also a comma separated list of encoding in case of mixed encodings +default_encoding = utf-8 + +## Set Mercurial encoding, similar to setting HGENCODING before launching Kallithea +hgencoding = utf-8 ## issue tracker for Kallithea (leave blank to disable, absent for default) #bugtracker = https://bitbucket.org/conservancy/kallithea/issues -## issue tracking mapping for commits messages -## comment out issue_pat, issue_server, issue_prefix to enable +## issue tracking mapping for commit messages, comments, PR descriptions, ... +## Refer to the documentation ("Integration with issue trackers") for more details. -## pattern to get the issues from commit messages -## default one used here is # with a regex passive group for `#` -## {id} will be all groups matched from this pattern +## regular expression to match issue references +## This pattern may/should contain parenthesized groups, that can +## be referred to in issue_server_link or issue_sub using Python backreferences +## (e.g. \1, \2, ...). You can also create named groups with '(?P)'. +## To require mandatory whitespace before the issue pattern, use: +## (?:^|(?<=\s)) before the actual pattern, and for mandatory whitespace +## behind the issue pattern, use (?:$|(?=\s)) after the actual pattern. -issue_pat = (?:\s*#)(\d+) +issue_pat = #(\d+) -## server url to the issue, each {id} will be replaced with match -## fetched from the regex and {repo} is replaced with full repository name -## including groups {repo_name} is replaced with just name of repo - -issue_server_link = https://issues.example.com/{repo}/issue/{id} +## server url to the issue +## This pattern may/should contain backreferences to parenthesized groups in issue_pat. +## A backreference can be \1, \2, ... or \g if you specified a named group +## called 'groupname' in issue_pat. +## The special token {repo} is replaced with the full repository name +## including repository groups, while {repo_name} is replaced with just +## the name of the repository. -## prefix to add to link to indicate it's an url -## #314 will be replaced by +issue_server_link = https://issues.example.com/{repo}/issue/\1 -issue_prefix = # +## substitution pattern to use as the link text +## If issue_sub is empty, the text matched by issue_pat is retained verbatim +## for the link text. Otherwise, the link text is that of issue_sub, with any +## backreferences to groups in issue_pat replaced. -## issue_pat, issue_server_link, issue_prefix can have suffixes to specify +issue_sub = + +## issue_pat, issue_server_link and issue_sub can have suffixes to specify ## multiple patterns, to other issues server, wiki or others ## below an example how to create a wiki pattern # wiki-some-id -> https://wiki.example.com/some-id -#issue_pat_wiki = (?:wiki-)(.+) -#issue_server_link_wiki = https://wiki.example.com/{id} -#issue_prefix_wiki = WIKI- - -## instance-id prefix -## a prefix key for this instance used for cache invalidation when running -## multiple instances of kallithea, make sure it's globally unique for -## all running kallithea instances. Leave empty if you don't use it -instance_id = +#issue_pat_wiki = wiki-(\S+) +#issue_server_link_wiki = https://wiki.example.com/\1 +#issue_sub_wiki = WIKI-\1 ## alternative return HTTP header for failed authentication. Default HTTP ## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with @@ -301,19 +220,29 @@ allow_repo_location_change = True ## allows to setup custom hooks in settings page allow_custom_hooks_settings = True +## extra extensions for indexing, space separated and without the leading '.'. +# index.extensions = +# gemfile +# lock + +## extra filenames for indexing, space separated +# index.filenames = +# .dockerignore +# .editorconfig +# INSTALL +# CHANGELOG + #################################### ### CELERY CONFIG #### #################################### use_celery = false -broker.host = localhost -broker.vhost = rabbitmqhost -broker.port = 5672 -broker.user = rabbitmq -broker.password = qweqwe + +## Example: connect to the virtual host 'rabbitmqhost' on localhost as rabbitmq: +broker.url = amqp://rabbitmq:qewqew@localhost:5672/rabbitmqhost celery.imports = kallithea.lib.celerylib.tasks - +celery.accept.content = pickle celery.result.backend = amqp celery.result.dburi = amqp:// celery.result.serialier = json @@ -322,11 +251,9 @@ celery.result.serialier = json #celery.amqp.task.result.expires = 18000 celeryd.concurrency = 2 -#celeryd.log.file = celeryd.log -celeryd.log.level = DEBUG celeryd.max.tasks.per.child = 1 -## tasks will never be sent to the queue, but executed locally instead. +## If true, tasks will never be sent to the queue, but executed locally instead. celery.always.eager = false #################################### @@ -363,6 +290,7 @@ beaker.session.httponly = true beaker.session.timeout = 2592000 ## Server secret used with HMAC to ensure integrity of cookies. +#beaker.session.secret = VERY-SECRET beaker.session.secret = development-not-secret ## Further, encrypt the data with AES. #beaker.session.encrypt_key = @@ -382,90 +310,13 @@ beaker.session.secret = development-not- #beaker.session.sa.url = postgresql://postgres:qwe@localhost/kallithea #beaker.session.table_name = db_session -############################ -## ERROR HANDLING SYSTEMS ## -############################ - -#################### -### [appenlight] ### -#################### - -## AppEnlight is tailored to work with Kallithea, see -## http://appenlight.com for details how to obtain an account -## you must install python package `appenlight_client` to make it work - -## appenlight enabled -appenlight = false - -appenlight.server_url = https://api.appenlight.com -appenlight.api_key = YOUR_API_KEY - -## TWEAK AMOUNT OF INFO SENT HERE - -## enables 404 error logging (default False) -appenlight.report_404 = false - -## time in seconds after request is considered being slow (default 1) -appenlight.slow_request_time = 1 - -## record slow requests in application -## (needs to be enabled for slow datastore recording and time tracking) -appenlight.slow_requests = true - -## enable hooking to application loggers -#appenlight.logging = true - -## minimum log level for log capture -#appenlight.logging.level = WARNING - -## send logs only from erroneous/slow requests -## (saves API quota for intensive logging) -appenlight.logging_on_error = false - -## list of additonal keywords that should be grabbed from environ object -## can be string with comma separated list of words in lowercase -## (by default client will always send following info: -## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that -## start with HTTP* this list be extended with additional keywords here -appenlight.environ_keys_whitelist = - -## list of keywords that should be blanked from request object -## can be string with comma separated list of words in lowercase -## (by default client will always blank keys that contain following words -## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf' -## this list be extended with additional keywords set here -appenlight.request_keys_blacklist = - -## list of namespaces that should be ignores when gathering log entries -## can be string with comma separated list of namespaces -## (by default the client ignores own entries: appenlight_client.client) -appenlight.log_namespace_blacklist = - -################ -### [sentry] ### -################ - -## sentry is a alternative open source error aggregator -## you must install python packages `sentry` and `raven` to enable - -sentry.dsn = YOUR_DNS -sentry.servers = -sentry.name = -sentry.key = -sentry.public_key = -sentry.secret_key = -sentry.project = -sentry.site = -sentry.include_paths = -sentry.exclude_paths = - ################################################################################ -## WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* ## +## WARNING: *DEBUG MODE MUST BE OFF IN A PRODUCTION ENVIRONMENT* ## ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ## ## execute malicious code after an exception is raised. ## ################################################################################ -#set debug = false -set debug = true +#debug = false +debug = true ################################## ### LOGVIEW CONFIG ### @@ -480,26 +331,25 @@ logview.pylons.util = #eee ######################################################### # SQLITE [default] -sqlalchemy.db1.url = sqlite:///%(here)s/kallithea.db?timeout=60 - -# POSTGRESQL -#sqlalchemy.db1.url = postgresql://user:pass@localhost/kallithea - -# MySQL -#sqlalchemy.db1.url = mysql://user:pass@localhost/kallithea +sqlalchemy.url = sqlite:///%(here)s/kallithea.db?timeout=60 # see sqlalchemy docs for others -sqlalchemy.db1.echo = false -sqlalchemy.db1.pool_recycle = 3600 -sqlalchemy.db1.convert_unicode = true +sqlalchemy.pool_recycle = 3600 + +################################ +### ALEMBIC CONFIGURATION #### +################################ + +[alembic] +script_location = kallithea:alembic ################################ ### LOGGING CONFIGURATION #### ################################ [loggers] -keys = root, routes, kallithea, sqlalchemy, beaker, templates, whoosh_indexer +keys = root, routes, kallithea, sqlalchemy, tg, gearbox, beaker, templates, whoosh_indexer, werkzeug, backlash [handlers] keys = console, console_sql @@ -516,6 +366,7 @@ level = NOTSET handlers = console [logger_routes] +#level = WARN level = DEBUG handlers = qualname = routes.middleware @@ -523,35 +374,65 @@ qualname = routes.middleware propagate = 1 [logger_beaker] +#level = WARN level = DEBUG handlers = qualname = beaker.container propagate = 1 [logger_templates] +#level = WARN level = INFO handlers = qualname = pylons.templating propagate = 1 [logger_kallithea] +#level = WARN level = DEBUG handlers = qualname = kallithea propagate = 1 +[logger_tg] +#level = WARN +level = DEBUG +handlers = +qualname = tg +propagate = 1 + +[logger_gearbox] +#level = WARN +level = DEBUG +handlers = +qualname = gearbox +propagate = 1 + [logger_sqlalchemy] -level = INFO +level = WARN handlers = console_sql qualname = sqlalchemy.engine propagate = 0 [logger_whoosh_indexer] +#level = WARN level = DEBUG handlers = qualname = whoosh_indexer propagate = 1 +[logger_werkzeug] +level = WARN +handlers = +qualname = werkzeug +propagate = 1 + +[logger_backlash] +level = WARN +handlers = +qualname = backlash +propagate = 1 + ############## ## HANDLERS ## ############## @@ -559,17 +440,13 @@ propagate = 1 [handler_console] class = StreamHandler args = (sys.stderr,) -#level = INFO #formatter = generic -level = DEBUG formatter = color_formatter [handler_console_sql] class = StreamHandler args = (sys.stderr,) -#level = WARN #formatter = generic -level = DEBUG formatter = color_formatter_sql ################