##// END OF EJS Templates
celery: change ini template to use sqlite for results...
Mads Kiilerich -
r8132:f450318e default
parent child Browse files
Show More
@@ -1,516 +1,516 b''
1 ################################################################################
1 ################################################################################
2 ################################################################################
2 ################################################################################
3 # Kallithea - config file generated with kallithea-config #
3 # Kallithea - config file generated with kallithea-config #
4 # #
4 # #
5 # The %(here)s variable will be replaced with the parent directory of this file#
5 # The %(here)s variable will be replaced with the parent directory of this file#
6 ################################################################################
6 ################################################################################
7 ################################################################################
7 ################################################################################
8
8
9 [DEFAULT]
9 [DEFAULT]
10
10
11 ################################################################################
11 ################################################################################
12 ## Email settings ##
12 ## Email settings ##
13 ## ##
13 ## ##
14 ## Refer to the documentation ("Email settings") for more details. ##
14 ## Refer to the documentation ("Email settings") for more details. ##
15 ## ##
15 ## ##
16 ## It is recommended to use a valid sender address that passes access ##
16 ## It is recommended to use a valid sender address that passes access ##
17 ## validation and spam filtering in mail servers. ##
17 ## validation and spam filtering in mail servers. ##
18 ################################################################################
18 ################################################################################
19
19
20 ## 'From' header for application emails. You can optionally add a name.
20 ## 'From' header for application emails. You can optionally add a name.
21 ## Default:
21 ## Default:
22 #app_email_from = Kallithea
22 #app_email_from = Kallithea
23 ## Examples:
23 ## Examples:
24 #app_email_from = Kallithea <kallithea-noreply@example.com>
24 #app_email_from = Kallithea <kallithea-noreply@example.com>
25 #app_email_from = kallithea-noreply@example.com
25 #app_email_from = kallithea-noreply@example.com
26
26
27 ## Subject prefix for application emails.
27 ## Subject prefix for application emails.
28 ## A space between this prefix and the real subject is automatically added.
28 ## A space between this prefix and the real subject is automatically added.
29 ## Default:
29 ## Default:
30 #email_prefix =
30 #email_prefix =
31 ## Example:
31 ## Example:
32 #email_prefix = [Kallithea]
32 #email_prefix = [Kallithea]
33
33
34 ## Recipients for error emails and fallback recipients of application mails.
34 ## Recipients for error emails and fallback recipients of application mails.
35 ## Multiple addresses can be specified, comma-separated.
35 ## Multiple addresses can be specified, comma-separated.
36 ## Only addresses are allowed, do not add any name part.
36 ## Only addresses are allowed, do not add any name part.
37 ## Default:
37 ## Default:
38 #email_to =
38 #email_to =
39 ## Examples:
39 ## Examples:
40 #email_to = admin@example.com
40 #email_to = admin@example.com
41 #email_to = admin@example.com,another_admin@example.com
41 #email_to = admin@example.com,another_admin@example.com
42 email_to =
42 email_to =
43
43
44 ## 'From' header for error emails. You can optionally add a name.
44 ## 'From' header for error emails. You can optionally add a name.
45 ## Default: (none)
45 ## Default: (none)
46 ## Examples:
46 ## Examples:
47 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
47 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
48 #error_email_from = kallithea_errors@example.com
48 #error_email_from = kallithea_errors@example.com
49 error_email_from =
49 error_email_from =
50
50
51 ## SMTP server settings
51 ## SMTP server settings
52 ## If specifying credentials, make sure to use secure connections.
52 ## If specifying credentials, make sure to use secure connections.
53 ## Default: Send unencrypted unauthenticated mails to the specified smtp_server.
53 ## Default: Send unencrypted unauthenticated mails to the specified smtp_server.
54 ## For "SSL", use smtp_use_ssl = true and smtp_port = 465.
54 ## For "SSL", use smtp_use_ssl = true and smtp_port = 465.
55 ## For "STARTTLS", use smtp_use_tls = true and smtp_port = 587.
55 ## For "STARTTLS", use smtp_use_tls = true and smtp_port = 587.
56 smtp_server =
56 smtp_server =
57 smtp_username =
57 smtp_username =
58 smtp_password =
58 smtp_password =
59 smtp_port =
59 smtp_port =
60 smtp_use_ssl = false
60 smtp_use_ssl = false
61 smtp_use_tls = false
61 smtp_use_tls = false
62
62
63 ## Entry point for 'gearbox serve'
63 ## Entry point for 'gearbox serve'
64 [server:main]
64 [server:main]
65 #host = 127.0.0.1
65 #host = 127.0.0.1
66 host = 0.0.0.0
66 host = 0.0.0.0
67 port = 5000
67 port = 5000
68
68
69 ## WAITRESS ##
69 ## WAITRESS ##
70 use = egg:waitress#main
70 use = egg:waitress#main
71 ## number of worker threads
71 ## number of worker threads
72 threads = 1
72 threads = 1
73 ## MAX BODY SIZE 100GB
73 ## MAX BODY SIZE 100GB
74 max_request_body_size = 107374182400
74 max_request_body_size = 107374182400
75 ## use poll instead of select, fixes fd limits, may not work on old
75 ## use poll instead of select, fixes fd limits, may not work on old
76 ## windows systems.
76 ## windows systems.
77 #asyncore_use_poll = True
77 #asyncore_use_poll = True
78
78
79 ## middleware for hosting the WSGI application under a URL prefix
79 ## middleware for hosting the WSGI application under a URL prefix
80 #[filter:proxy-prefix]
80 #[filter:proxy-prefix]
81 #use = egg:PasteDeploy#prefix
81 #use = egg:PasteDeploy#prefix
82 #prefix = /<your-prefix>
82 #prefix = /<your-prefix>
83
83
84 [app:main]
84 [app:main]
85 use = egg:kallithea
85 use = egg:kallithea
86 ## enable proxy prefix middleware
86 ## enable proxy prefix middleware
87 #filter-with = proxy-prefix
87 #filter-with = proxy-prefix
88
88
89 full_stack = true
89 full_stack = true
90 static_files = true
90 static_files = true
91
91
92 ## Internationalization (see setup documentation for details)
92 ## Internationalization (see setup documentation for details)
93 ## By default, the languages requested by the browser are used if available, with English as default.
93 ## By default, the languages requested by the browser are used if available, with English as default.
94 ## Set i18n.enabled=false to disable automatic language choice.
94 ## Set i18n.enabled=false to disable automatic language choice.
95 #i18n.enabled = true
95 #i18n.enabled = true
96 ## To Force a language, set i18n.enabled=false and specify the language in i18n.lang.
96 ## To Force a language, set i18n.enabled=false and specify the language in i18n.lang.
97 ## Valid values are the names of subdirectories in kallithea/i18n with a LC_MESSAGES/kallithea.mo
97 ## Valid values are the names of subdirectories in kallithea/i18n with a LC_MESSAGES/kallithea.mo
98 #i18n.lang = en
98 #i18n.lang = en
99
99
100 cache_dir = %(here)s/data
100 cache_dir = %(here)s/data
101 index_dir = %(here)s/data/index
101 index_dir = %(here)s/data/index
102
102
103 ## uncomment and set this path to use archive download cache
103 ## uncomment and set this path to use archive download cache
104 archive_cache_dir = %(here)s/tarballcache
104 archive_cache_dir = %(here)s/tarballcache
105
105
106 ## change this to unique ID for security
106 ## change this to unique ID for security
107 #app_instance_uuid = VERY-SECRET
107 #app_instance_uuid = VERY-SECRET
108 app_instance_uuid = development-not-secret
108 app_instance_uuid = development-not-secret
109
109
110 ## cut off limit for large diffs (size in bytes)
110 ## cut off limit for large diffs (size in bytes)
111 cut_off_limit = 256000
111 cut_off_limit = 256000
112
112
113 ## force https in Kallithea, fixes https redirects, assumes it's always https
113 ## force https in Kallithea, fixes https redirects, assumes it's always https
114 force_https = false
114 force_https = false
115
115
116 ## use Strict-Transport-Security headers
116 ## use Strict-Transport-Security headers
117 use_htsts = false
117 use_htsts = false
118
118
119 ## number of commits stats will parse on each iteration
119 ## number of commits stats will parse on each iteration
120 commit_parse_limit = 25
120 commit_parse_limit = 25
121
121
122 ## Path to Python executable to be used for git hooks.
122 ## Path to Python executable to be used for git hooks.
123 ## This value will be written inside the git hook scripts as the text
123 ## This value will be written inside the git hook scripts as the text
124 ## after '#!' (shebang). When empty or not defined, the value of
124 ## after '#!' (shebang). When empty or not defined, the value of
125 ## 'sys.executable' at the time of installation of the git hooks is
125 ## 'sys.executable' at the time of installation of the git hooks is
126 ## used, which is correct in many cases but for example not when using uwsgi.
126 ## used, which is correct in many cases but for example not when using uwsgi.
127 ## If you change this setting, you should reinstall the Git hooks via
127 ## If you change this setting, you should reinstall the Git hooks via
128 ## Admin > Settings > Remap and Rescan.
128 ## Admin > Settings > Remap and Rescan.
129 # git_hook_interpreter = /srv/kallithea/venv/bin/python3
129 # git_hook_interpreter = /srv/kallithea/venv/bin/python3
130
130
131 ## path to git executable
131 ## path to git executable
132 git_path = git
132 git_path = git
133
133
134 ## git rev filter option, --all is the default filter, if you need to
134 ## git rev filter option, --all is the default filter, if you need to
135 ## hide all refs in changelog switch this to --branches --tags
135 ## hide all refs in changelog switch this to --branches --tags
136 #git_rev_filter = --branches --tags
136 #git_rev_filter = --branches --tags
137
137
138 ## RSS feed options
138 ## RSS feed options
139 rss_cut_off_limit = 256000
139 rss_cut_off_limit = 256000
140 rss_items_per_page = 10
140 rss_items_per_page = 10
141 rss_include_diff = false
141 rss_include_diff = false
142
142
143 ## options for showing and identifying changesets
143 ## options for showing and identifying changesets
144 show_sha_length = 12
144 show_sha_length = 12
145 show_revision_number = false
145 show_revision_number = false
146
146
147 ## Canonical URL to use when creating full URLs in UI and texts.
147 ## Canonical URL to use when creating full URLs in UI and texts.
148 ## Useful when the site is available under different names or protocols.
148 ## Useful when the site is available under different names or protocols.
149 ## Defaults to what is provided in the WSGI environment.
149 ## Defaults to what is provided in the WSGI environment.
150 #canonical_url = https://kallithea.example.com/repos
150 #canonical_url = https://kallithea.example.com/repos
151
151
152 ## gist URL alias, used to create nicer urls for gist. This should be an
152 ## gist URL alias, used to create nicer urls for gist. This should be an
153 ## url that does rewrites to _admin/gists/<gistid>.
153 ## url that does rewrites to _admin/gists/<gistid>.
154 ## example: http://gist.example.com/{gistid}. Empty means use the internal
154 ## example: http://gist.example.com/{gistid}. Empty means use the internal
155 ## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid>
155 ## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid>
156 gist_alias_url =
156 gist_alias_url =
157
157
158 ## default encoding used to convert from and to unicode
158 ## default encoding used to convert from and to unicode
159 ## can be also a comma separated list of encoding in case of mixed encodings
159 ## can be also a comma separated list of encoding in case of mixed encodings
160 default_encoding = utf-8
160 default_encoding = utf-8
161
161
162 ## Set Mercurial encoding, similar to setting HGENCODING before launching Kallithea
162 ## Set Mercurial encoding, similar to setting HGENCODING before launching Kallithea
163 hgencoding = utf-8
163 hgencoding = utf-8
164
164
165 ## issue tracker for Kallithea (leave blank to disable, absent for default)
165 ## issue tracker for Kallithea (leave blank to disable, absent for default)
166 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
166 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
167
167
168 ## issue tracking mapping for commit messages, comments, PR descriptions, ...
168 ## issue tracking mapping for commit messages, comments, PR descriptions, ...
169 ## Refer to the documentation ("Integration with issue trackers") for more details.
169 ## Refer to the documentation ("Integration with issue trackers") for more details.
170
170
171 ## regular expression to match issue references
171 ## regular expression to match issue references
172 ## This pattern may/should contain parenthesized groups, that can
172 ## This pattern may/should contain parenthesized groups, that can
173 ## be referred to in issue_server_link or issue_sub using Python backreferences
173 ## be referred to in issue_server_link or issue_sub using Python backreferences
174 ## (e.g. \1, \2, ...). You can also create named groups with '(?P<groupname>)'.
174 ## (e.g. \1, \2, ...). You can also create named groups with '(?P<groupname>)'.
175 ## To require mandatory whitespace before the issue pattern, use:
175 ## To require mandatory whitespace before the issue pattern, use:
176 ## (?:^|(?<=\s)) before the actual pattern, and for mandatory whitespace
176 ## (?:^|(?<=\s)) before the actual pattern, and for mandatory whitespace
177 ## behind the issue pattern, use (?:$|(?=\s)) after the actual pattern.
177 ## behind the issue pattern, use (?:$|(?=\s)) after the actual pattern.
178
178
179 issue_pat = #(\d+)
179 issue_pat = #(\d+)
180
180
181 ## server url to the issue
181 ## server url to the issue
182 ## This pattern may/should contain backreferences to parenthesized groups in issue_pat.
182 ## This pattern may/should contain backreferences to parenthesized groups in issue_pat.
183 ## A backreference can be \1, \2, ... or \g<groupname> if you specified a named group
183 ## A backreference can be \1, \2, ... or \g<groupname> if you specified a named group
184 ## called 'groupname' in issue_pat.
184 ## called 'groupname' in issue_pat.
185 ## The special token {repo} is replaced with the full repository name
185 ## The special token {repo} is replaced with the full repository name
186 ## including repository groups, while {repo_name} is replaced with just
186 ## including repository groups, while {repo_name} is replaced with just
187 ## the name of the repository.
187 ## the name of the repository.
188
188
189 issue_server_link = https://issues.example.com/{repo}/issue/\1
189 issue_server_link = https://issues.example.com/{repo}/issue/\1
190
190
191 ## substitution pattern to use as the link text
191 ## substitution pattern to use as the link text
192 ## If issue_sub is empty, the text matched by issue_pat is retained verbatim
192 ## If issue_sub is empty, the text matched by issue_pat is retained verbatim
193 ## for the link text. Otherwise, the link text is that of issue_sub, with any
193 ## for the link text. Otherwise, the link text is that of issue_sub, with any
194 ## backreferences to groups in issue_pat replaced.
194 ## backreferences to groups in issue_pat replaced.
195
195
196 issue_sub =
196 issue_sub =
197
197
198 ## issue_pat, issue_server_link and issue_sub can have suffixes to specify
198 ## issue_pat, issue_server_link and issue_sub can have suffixes to specify
199 ## multiple patterns, to other issues server, wiki or others
199 ## multiple patterns, to other issues server, wiki or others
200 ## below an example how to create a wiki pattern
200 ## below an example how to create a wiki pattern
201 # wiki-some-id -> https://wiki.example.com/some-id
201 # wiki-some-id -> https://wiki.example.com/some-id
202
202
203 #issue_pat_wiki = wiki-(\S+)
203 #issue_pat_wiki = wiki-(\S+)
204 #issue_server_link_wiki = https://wiki.example.com/\1
204 #issue_server_link_wiki = https://wiki.example.com/\1
205 #issue_sub_wiki = WIKI-\1
205 #issue_sub_wiki = WIKI-\1
206
206
207 ## alternative return HTTP header for failed authentication. Default HTTP
207 ## alternative return HTTP header for failed authentication. Default HTTP
208 ## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with
208 ## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with
209 ## handling that. Set this variable to 403 to return HTTPForbidden
209 ## handling that. Set this variable to 403 to return HTTPForbidden
210 auth_ret_code =
210 auth_ret_code =
211
211
212 ## allows to change the repository location in settings page
212 ## allows to change the repository location in settings page
213 allow_repo_location_change = True
213 allow_repo_location_change = True
214
214
215 ## allows to setup custom hooks in settings page
215 ## allows to setup custom hooks in settings page
216 allow_custom_hooks_settings = True
216 allow_custom_hooks_settings = True
217
217
218 ## extra extensions for indexing, space separated and without the leading '.'.
218 ## extra extensions for indexing, space separated and without the leading '.'.
219 # index.extensions =
219 # index.extensions =
220 # gemfile
220 # gemfile
221 # lock
221 # lock
222
222
223 ## extra filenames for indexing, space separated
223 ## extra filenames for indexing, space separated
224 # index.filenames =
224 # index.filenames =
225 # .dockerignore
225 # .dockerignore
226 # .editorconfig
226 # .editorconfig
227 # INSTALL
227 # INSTALL
228 # CHANGELOG
228 # CHANGELOG
229
229
230 ####################################
230 ####################################
231 ### SSH CONFIG ####
231 ### SSH CONFIG ####
232 ####################################
232 ####################################
233
233
234 ## SSH is disabled by default, until an Administrator decides to enable it.
234 ## SSH is disabled by default, until an Administrator decides to enable it.
235 ssh_enabled = false
235 ssh_enabled = false
236
236
237 ## File where users' SSH keys will be stored *if* ssh_enabled is true.
237 ## File where users' SSH keys will be stored *if* ssh_enabled is true.
238 #ssh_authorized_keys = /home/kallithea/.ssh/authorized_keys
238 #ssh_authorized_keys = /home/kallithea/.ssh/authorized_keys
239
239
240 ## Path to be used in ssh_authorized_keys file to invoke kallithea-cli with ssh-serve.
240 ## Path to be used in ssh_authorized_keys file to invoke kallithea-cli with ssh-serve.
241 #kallithea_cli_path = /srv/kallithea/venv/bin/kallithea-cli
241 #kallithea_cli_path = /srv/kallithea/venv/bin/kallithea-cli
242
242
243 ## Locale to be used in the ssh-serve command.
243 ## Locale to be used in the ssh-serve command.
244 ## This is needed because an SSH client may try to use its own locale
244 ## This is needed because an SSH client may try to use its own locale
245 ## settings, which may not be available on the server.
245 ## settings, which may not be available on the server.
246 ## See `locale -a` for valid values on this system.
246 ## See `locale -a` for valid values on this system.
247 #ssh_locale = C.UTF-8
247 #ssh_locale = C.UTF-8
248
248
249 ####################################
249 ####################################
250 ### CELERY CONFIG ####
250 ### CELERY CONFIG ####
251 ####################################
251 ####################################
252
252
253 use_celery = false
253 use_celery = false
254
254
255 ## Example: connect to the virtual host 'rabbitmqhost' on localhost as rabbitmq:
255 ## Example: connect to the virtual host 'rabbitmqhost' on localhost as rabbitmq:
256 broker.url = amqp://rabbitmq:qewqew@localhost:5672/rabbitmqhost
256 broker.url = amqp://rabbitmq:qewqew@localhost:5672/rabbitmqhost
257
257
258 celery.result.backend = amqp://
258 celery.result.backend = db+sqlite:///celery-results.db
259
259
260 #celery.send.task.error.emails = true
260 #celery.send.task.error.emails = true
261 #celery.amqp.task.result.expires = 18000
261 #celery.amqp.task.result.expires = 18000
262
262
263 celeryd.concurrency = 2
263 celeryd.concurrency = 2
264 celeryd.max.tasks.per.child = 1
264 celeryd.max.tasks.per.child = 1
265
265
266 ## If true, tasks will never be sent to the queue, but executed locally instead.
266 ## If true, tasks will never be sent to the queue, but executed locally instead.
267 celery.always.eager = false
267 celery.always.eager = false
268
268
269 ####################################
269 ####################################
270 ### BEAKER CACHE ####
270 ### BEAKER CACHE ####
271 ####################################
271 ####################################
272
272
273 beaker.cache.data_dir = %(here)s/data/cache/data
273 beaker.cache.data_dir = %(here)s/data/cache/data
274 beaker.cache.lock_dir = %(here)s/data/cache/lock
274 beaker.cache.lock_dir = %(here)s/data/cache/lock
275
275
276 beaker.cache.regions = short_term,long_term,sql_cache_short
276 beaker.cache.regions = short_term,long_term,sql_cache_short
277
277
278 beaker.cache.short_term.type = memory
278 beaker.cache.short_term.type = memory
279 beaker.cache.short_term.expire = 60
279 beaker.cache.short_term.expire = 60
280 beaker.cache.short_term.key_length = 256
280 beaker.cache.short_term.key_length = 256
281
281
282 beaker.cache.long_term.type = memory
282 beaker.cache.long_term.type = memory
283 beaker.cache.long_term.expire = 36000
283 beaker.cache.long_term.expire = 36000
284 beaker.cache.long_term.key_length = 256
284 beaker.cache.long_term.key_length = 256
285
285
286 beaker.cache.sql_cache_short.type = memory
286 beaker.cache.sql_cache_short.type = memory
287 beaker.cache.sql_cache_short.expire = 10
287 beaker.cache.sql_cache_short.expire = 10
288 beaker.cache.sql_cache_short.key_length = 256
288 beaker.cache.sql_cache_short.key_length = 256
289
289
290 ####################################
290 ####################################
291 ### BEAKER SESSION ####
291 ### BEAKER SESSION ####
292 ####################################
292 ####################################
293
293
294 ## Name of session cookie. Should be unique for a given host and path, even when running
294 ## Name of session cookie. Should be unique for a given host and path, even when running
295 ## on different ports. Otherwise, cookie sessions will be shared and messed up.
295 ## on different ports. Otherwise, cookie sessions will be shared and messed up.
296 session.key = kallithea
296 session.key = kallithea
297 ## Sessions should always only be accessible by the browser, not directly by JavaScript.
297 ## Sessions should always only be accessible by the browser, not directly by JavaScript.
298 session.httponly = true
298 session.httponly = true
299 ## Session lifetime. 2592000 seconds is 30 days.
299 ## Session lifetime. 2592000 seconds is 30 days.
300 session.timeout = 2592000
300 session.timeout = 2592000
301
301
302 ## Server secret used with HMAC to ensure integrity of cookies.
302 ## Server secret used with HMAC to ensure integrity of cookies.
303 #session.secret = VERY-SECRET
303 #session.secret = VERY-SECRET
304 session.secret = development-not-secret
304 session.secret = development-not-secret
305 ## Further, encrypt the data with AES.
305 ## Further, encrypt the data with AES.
306 #session.encrypt_key = <key_for_encryption>
306 #session.encrypt_key = <key_for_encryption>
307 #session.validate_key = <validation_key>
307 #session.validate_key = <validation_key>
308
308
309 ## Type of storage used for the session, current types are
309 ## Type of storage used for the session, current types are
310 ## dbm, file, memcached, database, and memory.
310 ## dbm, file, memcached, database, and memory.
311
311
312 ## File system storage of session data. (default)
312 ## File system storage of session data. (default)
313 #session.type = file
313 #session.type = file
314
314
315 ## Cookie only, store all session data inside the cookie. Requires secure secrets.
315 ## Cookie only, store all session data inside the cookie. Requires secure secrets.
316 #session.type = cookie
316 #session.type = cookie
317
317
318 ## Database storage of session data.
318 ## Database storage of session data.
319 #session.type = ext:database
319 #session.type = ext:database
320 #session.sa.url = postgresql://postgres:qwe@localhost/kallithea
320 #session.sa.url = postgresql://postgres:qwe@localhost/kallithea
321 #session.table_name = db_session
321 #session.table_name = db_session
322
322
323 ############################
323 ############################
324 ## ERROR HANDLING SYSTEMS ##
324 ## ERROR HANDLING SYSTEMS ##
325 ############################
325 ############################
326
326
327 # Propagate email settings to ErrorReporter of TurboGears2
327 # Propagate email settings to ErrorReporter of TurboGears2
328 # You do not normally need to change these lines
328 # You do not normally need to change these lines
329 get trace_errors.smtp_server = smtp_server
329 get trace_errors.smtp_server = smtp_server
330 get trace_errors.smtp_port = smtp_port
330 get trace_errors.smtp_port = smtp_port
331 get trace_errors.from_address = error_email_from
331 get trace_errors.from_address = error_email_from
332 get trace_errors.error_email = email_to
332 get trace_errors.error_email = email_to
333 get trace_errors.smtp_username = smtp_username
333 get trace_errors.smtp_username = smtp_username
334 get trace_errors.smtp_password = smtp_password
334 get trace_errors.smtp_password = smtp_password
335 get trace_errors.smtp_use_tls = smtp_use_tls
335 get trace_errors.smtp_use_tls = smtp_use_tls
336
336
337 ################################################################################
337 ################################################################################
338 ## WARNING: *DEBUG MODE MUST BE OFF IN A PRODUCTION ENVIRONMENT* ##
338 ## WARNING: *DEBUG MODE MUST BE OFF IN A PRODUCTION ENVIRONMENT* ##
339 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
339 ## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##
340 ## execute malicious code after an exception is raised. ##
340 ## execute malicious code after an exception is raised. ##
341 ################################################################################
341 ################################################################################
342 #debug = false
342 #debug = false
343 debug = true
343 debug = true
344
344
345 ##################################
345 ##################################
346 ### LOGVIEW CONFIG ###
346 ### LOGVIEW CONFIG ###
347 ##################################
347 ##################################
348
348
349 logview.sqlalchemy = #faa
349 logview.sqlalchemy = #faa
350 logview.pylons.templating = #bfb
350 logview.pylons.templating = #bfb
351 logview.pylons.util = #eee
351 logview.pylons.util = #eee
352
352
353 #########################################################
353 #########################################################
354 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
354 ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###
355 #########################################################
355 #########################################################
356
356
357 # SQLITE [default]
357 # SQLITE [default]
358 sqlalchemy.url = sqlite:///%(here)s/kallithea.db?timeout=60
358 sqlalchemy.url = sqlite:///%(here)s/kallithea.db?timeout=60
359
359
360 # see sqlalchemy docs for others
360 # see sqlalchemy docs for others
361
361
362 sqlalchemy.pool_recycle = 3600
362 sqlalchemy.pool_recycle = 3600
363
363
364 ################################
364 ################################
365 ### ALEMBIC CONFIGURATION ####
365 ### ALEMBIC CONFIGURATION ####
366 ################################
366 ################################
367
367
368 [alembic]
368 [alembic]
369 script_location = kallithea:alembic
369 script_location = kallithea:alembic
370
370
371 ################################
371 ################################
372 ### LOGGING CONFIGURATION ####
372 ### LOGGING CONFIGURATION ####
373 ################################
373 ################################
374
374
375 [loggers]
375 [loggers]
376 keys = root, routes, kallithea, sqlalchemy, tg, gearbox, beaker, templates, whoosh_indexer, werkzeug, backlash
376 keys = root, routes, kallithea, sqlalchemy, tg, gearbox, beaker, templates, whoosh_indexer, werkzeug, backlash
377
377
378 [handlers]
378 [handlers]
379 keys = console, console_color, console_color_sql, null
379 keys = console, console_color, console_color_sql, null
380
380
381 [formatters]
381 [formatters]
382 keys = generic, color_formatter, color_formatter_sql
382 keys = generic, color_formatter, color_formatter_sql
383
383
384 #############
384 #############
385 ## LOGGERS ##
385 ## LOGGERS ##
386 #############
386 #############
387
387
388 [logger_root]
388 [logger_root]
389 level = NOTSET
389 level = NOTSET
390 #handlers = console
390 #handlers = console
391 handlers = console_color
391 handlers = console_color
392 # For coloring based on log level:
392 # For coloring based on log level:
393 # handlers = console_color
393 # handlers = console_color
394
394
395 [logger_routes]
395 [logger_routes]
396 #level = WARN
396 #level = WARN
397 level = DEBUG
397 level = DEBUG
398 handlers =
398 handlers =
399 qualname = routes.middleware
399 qualname = routes.middleware
400 ## "level = DEBUG" logs the route matched and routing variables.
400 ## "level = DEBUG" logs the route matched and routing variables.
401
401
402 [logger_beaker]
402 [logger_beaker]
403 #level = WARN
403 #level = WARN
404 level = DEBUG
404 level = DEBUG
405 handlers =
405 handlers =
406 qualname = beaker.container
406 qualname = beaker.container
407
407
408 [logger_templates]
408 [logger_templates]
409 #level = WARN
409 #level = WARN
410 level = INFO
410 level = INFO
411 handlers =
411 handlers =
412 qualname = pylons.templating
412 qualname = pylons.templating
413
413
414 [logger_kallithea]
414 [logger_kallithea]
415 #level = WARN
415 #level = WARN
416 level = DEBUG
416 level = DEBUG
417 handlers =
417 handlers =
418 qualname = kallithea
418 qualname = kallithea
419
419
420 [logger_tg]
420 [logger_tg]
421 #level = WARN
421 #level = WARN
422 level = DEBUG
422 level = DEBUG
423 handlers =
423 handlers =
424 qualname = tg
424 qualname = tg
425
425
426 [logger_gearbox]
426 [logger_gearbox]
427 #level = WARN
427 #level = WARN
428 level = DEBUG
428 level = DEBUG
429 handlers =
429 handlers =
430 qualname = gearbox
430 qualname = gearbox
431
431
432 [logger_sqlalchemy]
432 [logger_sqlalchemy]
433 level = WARN
433 level = WARN
434 handlers =
434 handlers =
435 qualname = sqlalchemy.engine
435 qualname = sqlalchemy.engine
436 # For coloring based on log level and pretty printing of SQL:
436 # For coloring based on log level and pretty printing of SQL:
437 # level = INFO
437 # level = INFO
438 # handlers = console_color_sql
438 # handlers = console_color_sql
439 # propagate = 0
439 # propagate = 0
440
440
441 [logger_whoosh_indexer]
441 [logger_whoosh_indexer]
442 #level = WARN
442 #level = WARN
443 level = DEBUG
443 level = DEBUG
444 handlers =
444 handlers =
445 qualname = whoosh_indexer
445 qualname = whoosh_indexer
446
446
447 [logger_werkzeug]
447 [logger_werkzeug]
448 level = WARN
448 level = WARN
449 handlers =
449 handlers =
450 qualname = werkzeug
450 qualname = werkzeug
451
451
452 [logger_backlash]
452 [logger_backlash]
453 level = WARN
453 level = WARN
454 handlers =
454 handlers =
455 qualname = backlash
455 qualname = backlash
456
456
457 ##############
457 ##############
458 ## HANDLERS ##
458 ## HANDLERS ##
459 ##############
459 ##############
460
460
461 [handler_console]
461 [handler_console]
462 class = StreamHandler
462 class = StreamHandler
463 args = (sys.stderr,)
463 args = (sys.stderr,)
464 formatter = generic
464 formatter = generic
465
465
466 [handler_console_color]
466 [handler_console_color]
467 # ANSI color coding based on log level
467 # ANSI color coding based on log level
468 class = StreamHandler
468 class = StreamHandler
469 args = (sys.stderr,)
469 args = (sys.stderr,)
470 formatter = color_formatter
470 formatter = color_formatter
471
471
472 [handler_console_color_sql]
472 [handler_console_color_sql]
473 # ANSI color coding and pretty printing of SQL statements
473 # ANSI color coding and pretty printing of SQL statements
474 class = StreamHandler
474 class = StreamHandler
475 args = (sys.stderr,)
475 args = (sys.stderr,)
476 formatter = color_formatter_sql
476 formatter = color_formatter_sql
477
477
478 [handler_null]
478 [handler_null]
479 class = NullHandler
479 class = NullHandler
480 args = ()
480 args = ()
481
481
482 ################
482 ################
483 ## FORMATTERS ##
483 ## FORMATTERS ##
484 ################
484 ################
485
485
486 [formatter_generic]
486 [formatter_generic]
487 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
487 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
488 datefmt = %Y-%m-%d %H:%M:%S
488 datefmt = %Y-%m-%d %H:%M:%S
489
489
490 [formatter_color_formatter]
490 [formatter_color_formatter]
491 class = kallithea.lib.colored_formatter.ColorFormatter
491 class = kallithea.lib.colored_formatter.ColorFormatter
492 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
492 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
493 datefmt = %Y-%m-%d %H:%M:%S
493 datefmt = %Y-%m-%d %H:%M:%S
494
494
495 [formatter_color_formatter_sql]
495 [formatter_color_formatter_sql]
496 class = kallithea.lib.colored_formatter.ColorFormatterSql
496 class = kallithea.lib.colored_formatter.ColorFormatterSql
497 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
497 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
498 datefmt = %Y-%m-%d %H:%M:%S
498 datefmt = %Y-%m-%d %H:%M:%S
499
499
500 #################
500 #################
501 ## SSH LOGGING ##
501 ## SSH LOGGING ##
502 #################
502 #################
503
503
504 # The default loggers use 'handler_console' that uses StreamHandler with
504 # The default loggers use 'handler_console' that uses StreamHandler with
505 # destination 'sys.stderr'. In the context of the SSH server process, these log
505 # destination 'sys.stderr'. In the context of the SSH server process, these log
506 # messages would be sent to the client, which is normally not what you want.
506 # messages would be sent to the client, which is normally not what you want.
507 # By default, when running ssh-serve, just use NullHandler and disable logging
507 # By default, when running ssh-serve, just use NullHandler and disable logging
508 # completely. For other logging options, see:
508 # completely. For other logging options, see:
509 # https://docs.python.org/2/library/logging.handlers.html
509 # https://docs.python.org/2/library/logging.handlers.html
510
510
511 [ssh_serve:logger_root]
511 [ssh_serve:logger_root]
512 level = CRITICAL
512 level = CRITICAL
513 handlers = null
513 handlers = null
514
514
515 # Note: If logging is configured with other handlers, they might need similar
515 # Note: If logging is configured with other handlers, they might need similar
516 # muting for ssh-serve too.
516 # muting for ssh-serve too.
@@ -1,698 +1,698 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%text>################################################################################</%text>
2 <%text>################################################################################</%text>
3 <%text>################################################################################</%text>
3 <%text>################################################################################</%text>
4 # Kallithea - config file generated with kallithea-config #
4 # Kallithea - config file generated with kallithea-config #
5 # #
5 # #
6 # The %(here)s variable will be replaced with the parent directory of this file#
6 # The %(here)s variable will be replaced with the parent directory of this file#
7 <%text>################################################################################</%text>
7 <%text>################################################################################</%text>
8 <%text>################################################################################</%text>
8 <%text>################################################################################</%text>
9
9
10 [DEFAULT]
10 [DEFAULT]
11
11
12 <%text>################################################################################</%text>
12 <%text>################################################################################</%text>
13 <%text>## Email settings ##</%text>
13 <%text>## Email settings ##</%text>
14 <%text>## ##</%text>
14 <%text>## ##</%text>
15 <%text>## Refer to the documentation ("Email settings") for more details. ##</%text>
15 <%text>## Refer to the documentation ("Email settings") for more details. ##</%text>
16 <%text>## ##</%text>
16 <%text>## ##</%text>
17 <%text>## It is recommended to use a valid sender address that passes access ##</%text>
17 <%text>## It is recommended to use a valid sender address that passes access ##</%text>
18 <%text>## validation and spam filtering in mail servers. ##</%text>
18 <%text>## validation and spam filtering in mail servers. ##</%text>
19 <%text>################################################################################</%text>
19 <%text>################################################################################</%text>
20
20
21 <%text>## 'From' header for application emails. You can optionally add a name.</%text>
21 <%text>## 'From' header for application emails. You can optionally add a name.</%text>
22 <%text>## Default:</%text>
22 <%text>## Default:</%text>
23 #app_email_from = Kallithea
23 #app_email_from = Kallithea
24 <%text>## Examples:</%text>
24 <%text>## Examples:</%text>
25 #app_email_from = Kallithea <kallithea-noreply@example.com>
25 #app_email_from = Kallithea <kallithea-noreply@example.com>
26 #app_email_from = kallithea-noreply@example.com
26 #app_email_from = kallithea-noreply@example.com
27
27
28 <%text>## Subject prefix for application emails.</%text>
28 <%text>## Subject prefix for application emails.</%text>
29 <%text>## A space between this prefix and the real subject is automatically added.</%text>
29 <%text>## A space between this prefix and the real subject is automatically added.</%text>
30 <%text>## Default:</%text>
30 <%text>## Default:</%text>
31 #email_prefix =
31 #email_prefix =
32 <%text>## Example:</%text>
32 <%text>## Example:</%text>
33 #email_prefix = [Kallithea]
33 #email_prefix = [Kallithea]
34
34
35 <%text>## Recipients for error emails and fallback recipients of application mails.</%text>
35 <%text>## Recipients for error emails and fallback recipients of application mails.</%text>
36 <%text>## Multiple addresses can be specified, comma-separated.</%text>
36 <%text>## Multiple addresses can be specified, comma-separated.</%text>
37 <%text>## Only addresses are allowed, do not add any name part.</%text>
37 <%text>## Only addresses are allowed, do not add any name part.</%text>
38 <%text>## Default:</%text>
38 <%text>## Default:</%text>
39 #email_to =
39 #email_to =
40 <%text>## Examples:</%text>
40 <%text>## Examples:</%text>
41 #email_to = admin@example.com
41 #email_to = admin@example.com
42 #email_to = admin@example.com,another_admin@example.com
42 #email_to = admin@example.com,another_admin@example.com
43 email_to =
43 email_to =
44
44
45 <%text>## 'From' header for error emails. You can optionally add a name.</%text>
45 <%text>## 'From' header for error emails. You can optionally add a name.</%text>
46 <%text>## Default: (none)</%text>
46 <%text>## Default: (none)</%text>
47 <%text>## Examples:</%text>
47 <%text>## Examples:</%text>
48 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
48 #error_email_from = Kallithea Errors <kallithea-noreply@example.com>
49 #error_email_from = kallithea_errors@example.com
49 #error_email_from = kallithea_errors@example.com
50 error_email_from =
50 error_email_from =
51
51
52 <%text>## SMTP server settings</%text>
52 <%text>## SMTP server settings</%text>
53 <%text>## If specifying credentials, make sure to use secure connections.</%text>
53 <%text>## If specifying credentials, make sure to use secure connections.</%text>
54 <%text>## Default: Send unencrypted unauthenticated mails to the specified smtp_server.</%text>
54 <%text>## Default: Send unencrypted unauthenticated mails to the specified smtp_server.</%text>
55 <%text>## For "SSL", use smtp_use_ssl = true and smtp_port = 465.</%text>
55 <%text>## For "SSL", use smtp_use_ssl = true and smtp_port = 465.</%text>
56 <%text>## For "STARTTLS", use smtp_use_tls = true and smtp_port = 587.</%text>
56 <%text>## For "STARTTLS", use smtp_use_tls = true and smtp_port = 587.</%text>
57 smtp_server =
57 smtp_server =
58 smtp_username =
58 smtp_username =
59 smtp_password =
59 smtp_password =
60 smtp_port =
60 smtp_port =
61 smtp_use_ssl = false
61 smtp_use_ssl = false
62 smtp_use_tls = false
62 smtp_use_tls = false
63
63
64 %if http_server != 'uwsgi':
64 %if http_server != 'uwsgi':
65 <%text>## Entry point for 'gearbox serve'</%text>
65 <%text>## Entry point for 'gearbox serve'</%text>
66 [server:main]
66 [server:main]
67 host = ${host}
67 host = ${host}
68 port = ${port}
68 port = ${port}
69
69
70 %if http_server == 'gearbox':
70 %if http_server == 'gearbox':
71 <%text>## Gearbox default web server ##</%text>
71 <%text>## Gearbox default web server ##</%text>
72 use = egg:gearbox#wsgiref
72 use = egg:gearbox#wsgiref
73 <%text>## nr of worker threads to spawn</%text>
73 <%text>## nr of worker threads to spawn</%text>
74 threadpool_workers = 1
74 threadpool_workers = 1
75 <%text>## max request before thread respawn</%text>
75 <%text>## max request before thread respawn</%text>
76 threadpool_max_requests = 100
76 threadpool_max_requests = 100
77 <%text>## option to use threads of process</%text>
77 <%text>## option to use threads of process</%text>
78 use_threadpool = true
78 use_threadpool = true
79
79
80 %elif http_server == 'gevent':
80 %elif http_server == 'gevent':
81 <%text>## Gearbox gevent web server ##</%text>
81 <%text>## Gearbox gevent web server ##</%text>
82 use = egg:gearbox#gevent
82 use = egg:gearbox#gevent
83
83
84 %elif http_server == 'waitress':
84 %elif http_server == 'waitress':
85 <%text>## WAITRESS ##</%text>
85 <%text>## WAITRESS ##</%text>
86 use = egg:waitress#main
86 use = egg:waitress#main
87 <%text>## number of worker threads</%text>
87 <%text>## number of worker threads</%text>
88 threads = 1
88 threads = 1
89 <%text>## MAX BODY SIZE 100GB</%text>
89 <%text>## MAX BODY SIZE 100GB</%text>
90 max_request_body_size = 107374182400
90 max_request_body_size = 107374182400
91 <%text>## use poll instead of select, fixes fd limits, may not work on old</%text>
91 <%text>## use poll instead of select, fixes fd limits, may not work on old</%text>
92 <%text>## windows systems.</%text>
92 <%text>## windows systems.</%text>
93 #asyncore_use_poll = True
93 #asyncore_use_poll = True
94
94
95 %elif http_server == 'gunicorn':
95 %elif http_server == 'gunicorn':
96 <%text>## GUNICORN ##</%text>
96 <%text>## GUNICORN ##</%text>
97 use = egg:gunicorn#main
97 use = egg:gunicorn#main
98 <%text>## number of process workers. You must set `instance_id = *` when this option</%text>
98 <%text>## number of process workers. You must set `instance_id = *` when this option</%text>
99 <%text>## is set to more than one worker</%text>
99 <%text>## is set to more than one worker</%text>
100 workers = 4
100 workers = 4
101 <%text>## process name</%text>
101 <%text>## process name</%text>
102 proc_name = kallithea
102 proc_name = kallithea
103 <%text>## type of worker class, one of sync, eventlet, gevent, tornado</%text>
103 <%text>## type of worker class, one of sync, eventlet, gevent, tornado</%text>
104 <%text>## recommended for bigger setup is using of of other than sync one</%text>
104 <%text>## recommended for bigger setup is using of of other than sync one</%text>
105 worker_class = sync
105 worker_class = sync
106 max_requests = 1000
106 max_requests = 1000
107 <%text>## amount of time a worker can handle request before it gets killed and</%text>
107 <%text>## amount of time a worker can handle request before it gets killed and</%text>
108 <%text>## restarted</%text>
108 <%text>## restarted</%text>
109 timeout = 3600
109 timeout = 3600
110
110
111 %endif
111 %endif
112 %else:
112 %else:
113 <%text>## UWSGI ##</%text>
113 <%text>## UWSGI ##</%text>
114 <%text>## run with uwsgi --ini-paste-logged <inifile.ini></%text>
114 <%text>## run with uwsgi --ini-paste-logged <inifile.ini></%text>
115 [uwsgi]
115 [uwsgi]
116 socket = /tmp/uwsgi.sock
116 socket = /tmp/uwsgi.sock
117 master = true
117 master = true
118 http = ${host}:${port}
118 http = ${host}:${port}
119
119
120 <%text>## set as daemon and redirect all output to file</%text>
120 <%text>## set as daemon and redirect all output to file</%text>
121 #daemonize = ./uwsgi_kallithea.log
121 #daemonize = ./uwsgi_kallithea.log
122
122
123 <%text>## master process PID</%text>
123 <%text>## master process PID</%text>
124 pidfile = ./uwsgi_kallithea.pid
124 pidfile = ./uwsgi_kallithea.pid
125
125
126 <%text>## stats server with workers statistics, use uwsgitop</%text>
126 <%text>## stats server with workers statistics, use uwsgitop</%text>
127 <%text>## for monitoring, `uwsgitop 127.0.0.1:1717`</%text>
127 <%text>## for monitoring, `uwsgitop 127.0.0.1:1717`</%text>
128 stats = 127.0.0.1:1717
128 stats = 127.0.0.1:1717
129 memory-report = true
129 memory-report = true
130
130
131 <%text>## log 5XX errors</%text>
131 <%text>## log 5XX errors</%text>
132 log-5xx = true
132 log-5xx = true
133
133
134 <%text>## Set the socket listen queue size.</%text>
134 <%text>## Set the socket listen queue size.</%text>
135 listen = 128
135 listen = 128
136
136
137 <%text>## Gracefully Reload workers after the specified amount of managed requests</%text>
137 <%text>## Gracefully Reload workers after the specified amount of managed requests</%text>
138 <%text>## (avoid memory leaks).</%text>
138 <%text>## (avoid memory leaks).</%text>
139 max-requests = 1000
139 max-requests = 1000
140
140
141 <%text>## enable large buffers</%text>
141 <%text>## enable large buffers</%text>
142 buffer-size = 65535
142 buffer-size = 65535
143
143
144 <%text>## socket and http timeouts ##</%text>
144 <%text>## socket and http timeouts ##</%text>
145 http-timeout = 3600
145 http-timeout = 3600
146 socket-timeout = 3600
146 socket-timeout = 3600
147
147
148 <%text>## Log requests slower than the specified number of milliseconds.</%text>
148 <%text>## Log requests slower than the specified number of milliseconds.</%text>
149 log-slow = 10
149 log-slow = 10
150
150
151 <%text>## Exit if no app can be loaded.</%text>
151 <%text>## Exit if no app can be loaded.</%text>
152 need-app = true
152 need-app = true
153
153
154 <%text>## Set lazy mode (load apps in workers instead of master).</%text>
154 <%text>## Set lazy mode (load apps in workers instead of master).</%text>
155 lazy = true
155 lazy = true
156
156
157 <%text>## scaling ##</%text>
157 <%text>## scaling ##</%text>
158 <%text>## set cheaper algorithm to use, if not set default will be used</%text>
158 <%text>## set cheaper algorithm to use, if not set default will be used</%text>
159 cheaper-algo = spare
159 cheaper-algo = spare
160
160
161 <%text>## minimum number of workers to keep at all times</%text>
161 <%text>## minimum number of workers to keep at all times</%text>
162 cheaper = 1
162 cheaper = 1
163
163
164 <%text>## number of workers to spawn at startup</%text>
164 <%text>## number of workers to spawn at startup</%text>
165 cheaper-initial = 1
165 cheaper-initial = 1
166
166
167 <%text>## maximum number of workers that can be spawned</%text>
167 <%text>## maximum number of workers that can be spawned</%text>
168 workers = 4
168 workers = 4
169
169
170 <%text>## how many workers should be spawned at a time</%text>
170 <%text>## how many workers should be spawned at a time</%text>
171 cheaper-step = 1
171 cheaper-step = 1
172
172
173 %endif
173 %endif
174 <%text>## middleware for hosting the WSGI application under a URL prefix</%text>
174 <%text>## middleware for hosting the WSGI application under a URL prefix</%text>
175 #[filter:proxy-prefix]
175 #[filter:proxy-prefix]
176 #use = egg:PasteDeploy#prefix
176 #use = egg:PasteDeploy#prefix
177 #prefix = /<your-prefix>
177 #prefix = /<your-prefix>
178
178
179 [app:main]
179 [app:main]
180 use = egg:kallithea
180 use = egg:kallithea
181 <%text>## enable proxy prefix middleware</%text>
181 <%text>## enable proxy prefix middleware</%text>
182 #filter-with = proxy-prefix
182 #filter-with = proxy-prefix
183
183
184 full_stack = true
184 full_stack = true
185 static_files = true
185 static_files = true
186
186
187 <%text>## Internationalization (see setup documentation for details)</%text>
187 <%text>## Internationalization (see setup documentation for details)</%text>
188 <%text>## By default, the languages requested by the browser are used if available, with English as default.</%text>
188 <%text>## By default, the languages requested by the browser are used if available, with English as default.</%text>
189 <%text>## Set i18n.enabled=false to disable automatic language choice.</%text>
189 <%text>## Set i18n.enabled=false to disable automatic language choice.</%text>
190 #i18n.enabled = true
190 #i18n.enabled = true
191 <%text>## To Force a language, set i18n.enabled=false and specify the language in i18n.lang.</%text>
191 <%text>## To Force a language, set i18n.enabled=false and specify the language in i18n.lang.</%text>
192 <%text>## Valid values are the names of subdirectories in kallithea/i18n with a LC_MESSAGES/kallithea.mo</%text>
192 <%text>## Valid values are the names of subdirectories in kallithea/i18n with a LC_MESSAGES/kallithea.mo</%text>
193 #i18n.lang = en
193 #i18n.lang = en
194
194
195 cache_dir = %(here)s/data
195 cache_dir = %(here)s/data
196 index_dir = %(here)s/data/index
196 index_dir = %(here)s/data/index
197
197
198 <%text>## uncomment and set this path to use archive download cache</%text>
198 <%text>## uncomment and set this path to use archive download cache</%text>
199 archive_cache_dir = %(here)s/tarballcache
199 archive_cache_dir = %(here)s/tarballcache
200
200
201 <%text>## change this to unique ID for security</%text>
201 <%text>## change this to unique ID for security</%text>
202 app_instance_uuid = ${uuid()}
202 app_instance_uuid = ${uuid()}
203
203
204 <%text>## cut off limit for large diffs (size in bytes)</%text>
204 <%text>## cut off limit for large diffs (size in bytes)</%text>
205 cut_off_limit = 256000
205 cut_off_limit = 256000
206
206
207 <%text>## force https in Kallithea, fixes https redirects, assumes it's always https</%text>
207 <%text>## force https in Kallithea, fixes https redirects, assumes it's always https</%text>
208 force_https = false
208 force_https = false
209
209
210 <%text>## use Strict-Transport-Security headers</%text>
210 <%text>## use Strict-Transport-Security headers</%text>
211 use_htsts = false
211 use_htsts = false
212
212
213 <%text>## number of commits stats will parse on each iteration</%text>
213 <%text>## number of commits stats will parse on each iteration</%text>
214 commit_parse_limit = 25
214 commit_parse_limit = 25
215
215
216 <%text>## Path to Python executable to be used for git hooks.</%text>
216 <%text>## Path to Python executable to be used for git hooks.</%text>
217 <%text>## This value will be written inside the git hook scripts as the text</%text>
217 <%text>## This value will be written inside the git hook scripts as the text</%text>
218 <%text>## after '#!' (shebang). When empty or not defined, the value of</%text>
218 <%text>## after '#!' (shebang). When empty or not defined, the value of</%text>
219 <%text>## 'sys.executable' at the time of installation of the git hooks is</%text>
219 <%text>## 'sys.executable' at the time of installation of the git hooks is</%text>
220 <%text>## used, which is correct in many cases but for example not when using uwsgi.</%text>
220 <%text>## used, which is correct in many cases but for example not when using uwsgi.</%text>
221 <%text>## If you change this setting, you should reinstall the Git hooks via</%text>
221 <%text>## If you change this setting, you should reinstall the Git hooks via</%text>
222 <%text>## Admin > Settings > Remap and Rescan.</%text>
222 <%text>## Admin > Settings > Remap and Rescan.</%text>
223 # git_hook_interpreter = /srv/kallithea/venv/bin/python3
223 # git_hook_interpreter = /srv/kallithea/venv/bin/python3
224 %if git_hook_interpreter:
224 %if git_hook_interpreter:
225 git_hook_interpreter = ${git_hook_interpreter}
225 git_hook_interpreter = ${git_hook_interpreter}
226 %endif
226 %endif
227
227
228 <%text>## path to git executable</%text>
228 <%text>## path to git executable</%text>
229 git_path = git
229 git_path = git
230
230
231 <%text>## git rev filter option, --all is the default filter, if you need to</%text>
231 <%text>## git rev filter option, --all is the default filter, if you need to</%text>
232 <%text>## hide all refs in changelog switch this to --branches --tags</%text>
232 <%text>## hide all refs in changelog switch this to --branches --tags</%text>
233 #git_rev_filter = --branches --tags
233 #git_rev_filter = --branches --tags
234
234
235 <%text>## RSS feed options</%text>
235 <%text>## RSS feed options</%text>
236 rss_cut_off_limit = 256000
236 rss_cut_off_limit = 256000
237 rss_items_per_page = 10
237 rss_items_per_page = 10
238 rss_include_diff = false
238 rss_include_diff = false
239
239
240 <%text>## options for showing and identifying changesets</%text>
240 <%text>## options for showing and identifying changesets</%text>
241 show_sha_length = 12
241 show_sha_length = 12
242 show_revision_number = false
242 show_revision_number = false
243
243
244 <%text>## Canonical URL to use when creating full URLs in UI and texts.</%text>
244 <%text>## Canonical URL to use when creating full URLs in UI and texts.</%text>
245 <%text>## Useful when the site is available under different names or protocols.</%text>
245 <%text>## Useful when the site is available under different names or protocols.</%text>
246 <%text>## Defaults to what is provided in the WSGI environment.</%text>
246 <%text>## Defaults to what is provided in the WSGI environment.</%text>
247 #canonical_url = https://kallithea.example.com/repos
247 #canonical_url = https://kallithea.example.com/repos
248
248
249 <%text>## gist URL alias, used to create nicer urls for gist. This should be an</%text>
249 <%text>## gist URL alias, used to create nicer urls for gist. This should be an</%text>
250 <%text>## url that does rewrites to _admin/gists/<gistid>.</%text>
250 <%text>## url that does rewrites to _admin/gists/<gistid>.</%text>
251 <%text>## example: http://gist.example.com/{gistid}. Empty means use the internal</%text>
251 <%text>## example: http://gist.example.com/{gistid}. Empty means use the internal</%text>
252 <%text>## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid></%text>
252 <%text>## Kallithea url, ie. http[s]://kallithea.example.com/_admin/gists/<gistid></%text>
253 gist_alias_url =
253 gist_alias_url =
254
254
255 <%text>## default encoding used to convert from and to unicode</%text>
255 <%text>## default encoding used to convert from and to unicode</%text>
256 <%text>## can be also a comma separated list of encoding in case of mixed encodings</%text>
256 <%text>## can be also a comma separated list of encoding in case of mixed encodings</%text>
257 default_encoding = utf-8
257 default_encoding = utf-8
258
258
259 <%text>## Set Mercurial encoding, similar to setting HGENCODING before launching Kallithea</%text>
259 <%text>## Set Mercurial encoding, similar to setting HGENCODING before launching Kallithea</%text>
260 hgencoding = utf-8
260 hgencoding = utf-8
261
261
262 <%text>## issue tracker for Kallithea (leave blank to disable, absent for default)</%text>
262 <%text>## issue tracker for Kallithea (leave blank to disable, absent for default)</%text>
263 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
263 #bugtracker = https://bitbucket.org/conservancy/kallithea/issues
264
264
265 <%text>## issue tracking mapping for commit messages, comments, PR descriptions, ...</%text>
265 <%text>## issue tracking mapping for commit messages, comments, PR descriptions, ...</%text>
266 <%text>## Refer to the documentation ("Integration with issue trackers") for more details.</%text>
266 <%text>## Refer to the documentation ("Integration with issue trackers") for more details.</%text>
267
267
268 <%text>## regular expression to match issue references</%text>
268 <%text>## regular expression to match issue references</%text>
269 <%text>## This pattern may/should contain parenthesized groups, that can</%text>
269 <%text>## This pattern may/should contain parenthesized groups, that can</%text>
270 <%text>## be referred to in issue_server_link or issue_sub using Python backreferences</%text>
270 <%text>## be referred to in issue_server_link or issue_sub using Python backreferences</%text>
271 <%text>## (e.g. \1, \2, ...). You can also create named groups with '(?P<groupname>)'.</%text>
271 <%text>## (e.g. \1, \2, ...). You can also create named groups with '(?P<groupname>)'.</%text>
272 <%text>## To require mandatory whitespace before the issue pattern, use:</%text>
272 <%text>## To require mandatory whitespace before the issue pattern, use:</%text>
273 <%text>## (?:^|(?<=\s)) before the actual pattern, and for mandatory whitespace</%text>
273 <%text>## (?:^|(?<=\s)) before the actual pattern, and for mandatory whitespace</%text>
274 <%text>## behind the issue pattern, use (?:$|(?=\s)) after the actual pattern.</%text>
274 <%text>## behind the issue pattern, use (?:$|(?=\s)) after the actual pattern.</%text>
275
275
276 issue_pat = #(\d+)
276 issue_pat = #(\d+)
277
277
278 <%text>## server url to the issue</%text>
278 <%text>## server url to the issue</%text>
279 <%text>## This pattern may/should contain backreferences to parenthesized groups in issue_pat.</%text>
279 <%text>## This pattern may/should contain backreferences to parenthesized groups in issue_pat.</%text>
280 <%text>## A backreference can be \1, \2, ... or \g<groupname> if you specified a named group</%text>
280 <%text>## A backreference can be \1, \2, ... or \g<groupname> if you specified a named group</%text>
281 <%text>## called 'groupname' in issue_pat.</%text>
281 <%text>## called 'groupname' in issue_pat.</%text>
282 <%text>## The special token {repo} is replaced with the full repository name</%text>
282 <%text>## The special token {repo} is replaced with the full repository name</%text>
283 <%text>## including repository groups, while {repo_name} is replaced with just</%text>
283 <%text>## including repository groups, while {repo_name} is replaced with just</%text>
284 <%text>## the name of the repository.</%text>
284 <%text>## the name of the repository.</%text>
285
285
286 issue_server_link = https://issues.example.com/{repo}/issue/\1
286 issue_server_link = https://issues.example.com/{repo}/issue/\1
287
287
288 <%text>## substitution pattern to use as the link text</%text>
288 <%text>## substitution pattern to use as the link text</%text>
289 <%text>## If issue_sub is empty, the text matched by issue_pat is retained verbatim</%text>
289 <%text>## If issue_sub is empty, the text matched by issue_pat is retained verbatim</%text>
290 <%text>## for the link text. Otherwise, the link text is that of issue_sub, with any</%text>
290 <%text>## for the link text. Otherwise, the link text is that of issue_sub, with any</%text>
291 <%text>## backreferences to groups in issue_pat replaced.</%text>
291 <%text>## backreferences to groups in issue_pat replaced.</%text>
292
292
293 issue_sub =
293 issue_sub =
294
294
295 <%text>## issue_pat, issue_server_link and issue_sub can have suffixes to specify</%text>
295 <%text>## issue_pat, issue_server_link and issue_sub can have suffixes to specify</%text>
296 <%text>## multiple patterns, to other issues server, wiki or others</%text>
296 <%text>## multiple patterns, to other issues server, wiki or others</%text>
297 <%text>## below an example how to create a wiki pattern</%text>
297 <%text>## below an example how to create a wiki pattern</%text>
298 # wiki-some-id -> https://wiki.example.com/some-id
298 # wiki-some-id -> https://wiki.example.com/some-id
299
299
300 #issue_pat_wiki = wiki-(\S+)
300 #issue_pat_wiki = wiki-(\S+)
301 #issue_server_link_wiki = https://wiki.example.com/\1
301 #issue_server_link_wiki = https://wiki.example.com/\1
302 #issue_sub_wiki = WIKI-\1
302 #issue_sub_wiki = WIKI-\1
303
303
304 <%text>## alternative return HTTP header for failed authentication. Default HTTP</%text>
304 <%text>## alternative return HTTP header for failed authentication. Default HTTP</%text>
305 <%text>## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with</%text>
305 <%text>## response is 401 HTTPUnauthorized. Currently Mercurial clients have trouble with</%text>
306 <%text>## handling that. Set this variable to 403 to return HTTPForbidden</%text>
306 <%text>## handling that. Set this variable to 403 to return HTTPForbidden</%text>
307 auth_ret_code =
307 auth_ret_code =
308
308
309 <%text>## allows to change the repository location in settings page</%text>
309 <%text>## allows to change the repository location in settings page</%text>
310 allow_repo_location_change = True
310 allow_repo_location_change = True
311
311
312 <%text>## allows to setup custom hooks in settings page</%text>
312 <%text>## allows to setup custom hooks in settings page</%text>
313 allow_custom_hooks_settings = True
313 allow_custom_hooks_settings = True
314
314
315 <%text>## extra extensions for indexing, space separated and without the leading '.'.</%text>
315 <%text>## extra extensions for indexing, space separated and without the leading '.'.</%text>
316 # index.extensions =
316 # index.extensions =
317 # gemfile
317 # gemfile
318 # lock
318 # lock
319
319
320 <%text>## extra filenames for indexing, space separated</%text>
320 <%text>## extra filenames for indexing, space separated</%text>
321 # index.filenames =
321 # index.filenames =
322 # .dockerignore
322 # .dockerignore
323 # .editorconfig
323 # .editorconfig
324 # INSTALL
324 # INSTALL
325 # CHANGELOG
325 # CHANGELOG
326
326
327 <%text>####################################</%text>
327 <%text>####################################</%text>
328 <%text>### SSH CONFIG ####</%text>
328 <%text>### SSH CONFIG ####</%text>
329 <%text>####################################</%text>
329 <%text>####################################</%text>
330
330
331 <%text>## SSH is disabled by default, until an Administrator decides to enable it.</%text>
331 <%text>## SSH is disabled by default, until an Administrator decides to enable it.</%text>
332 ssh_enabled = false
332 ssh_enabled = false
333
333
334 <%text>## File where users' SSH keys will be stored *if* ssh_enabled is true.</%text>
334 <%text>## File where users' SSH keys will be stored *if* ssh_enabled is true.</%text>
335 #ssh_authorized_keys = /home/kallithea/.ssh/authorized_keys
335 #ssh_authorized_keys = /home/kallithea/.ssh/authorized_keys
336 %if user_home_path:
336 %if user_home_path:
337 ssh_authorized_keys = ${user_home_path}/.ssh/authorized_keys
337 ssh_authorized_keys = ${user_home_path}/.ssh/authorized_keys
338 %endif
338 %endif
339
339
340 <%text>## Path to be used in ssh_authorized_keys file to invoke kallithea-cli with ssh-serve.</%text>
340 <%text>## Path to be used in ssh_authorized_keys file to invoke kallithea-cli with ssh-serve.</%text>
341 #kallithea_cli_path = /srv/kallithea/venv/bin/kallithea-cli
341 #kallithea_cli_path = /srv/kallithea/venv/bin/kallithea-cli
342 %if kallithea_cli_path:
342 %if kallithea_cli_path:
343 kallithea_cli_path = ${kallithea_cli_path}
343 kallithea_cli_path = ${kallithea_cli_path}
344 %endif
344 %endif
345
345
346 <%text>## Locale to be used in the ssh-serve command.</%text>
346 <%text>## Locale to be used in the ssh-serve command.</%text>
347 <%text>## This is needed because an SSH client may try to use its own locale</%text>
347 <%text>## This is needed because an SSH client may try to use its own locale</%text>
348 <%text>## settings, which may not be available on the server.</%text>
348 <%text>## settings, which may not be available on the server.</%text>
349 <%text>## See `locale -a` for valid values on this system.</%text>
349 <%text>## See `locale -a` for valid values on this system.</%text>
350 #ssh_locale = C.UTF-8
350 #ssh_locale = C.UTF-8
351 %if ssh_locale:
351 %if ssh_locale:
352 ssh_locale = ${ssh_locale}
352 ssh_locale = ${ssh_locale}
353 %endif
353 %endif
354
354
355 <%text>####################################</%text>
355 <%text>####################################</%text>
356 <%text>### CELERY CONFIG ####</%text>
356 <%text>### CELERY CONFIG ####</%text>
357 <%text>####################################</%text>
357 <%text>####################################</%text>
358
358
359 use_celery = false
359 use_celery = false
360
360
361 <%text>## Example: connect to the virtual host 'rabbitmqhost' on localhost as rabbitmq:</%text>
361 <%text>## Example: connect to the virtual host 'rabbitmqhost' on localhost as rabbitmq:</%text>
362 broker.url = amqp://rabbitmq:qewqew@localhost:5672/rabbitmqhost
362 broker.url = amqp://rabbitmq:qewqew@localhost:5672/rabbitmqhost
363
363
364 celery.result.backend = amqp://
364 celery.result.backend = db+sqlite:///celery-results.db
365
365
366 #celery.send.task.error.emails = true
366 #celery.send.task.error.emails = true
367 #celery.amqp.task.result.expires = 18000
367 #celery.amqp.task.result.expires = 18000
368
368
369 celeryd.concurrency = 2
369 celeryd.concurrency = 2
370 celeryd.max.tasks.per.child = 1
370 celeryd.max.tasks.per.child = 1
371
371
372 <%text>## If true, tasks will never be sent to the queue, but executed locally instead.</%text>
372 <%text>## If true, tasks will never be sent to the queue, but executed locally instead.</%text>
373 celery.always.eager = false
373 celery.always.eager = false
374
374
375 <%text>####################################</%text>
375 <%text>####################################</%text>
376 <%text>### BEAKER CACHE ####</%text>
376 <%text>### BEAKER CACHE ####</%text>
377 <%text>####################################</%text>
377 <%text>####################################</%text>
378
378
379 beaker.cache.data_dir = %(here)s/data/cache/data
379 beaker.cache.data_dir = %(here)s/data/cache/data
380 beaker.cache.lock_dir = %(here)s/data/cache/lock
380 beaker.cache.lock_dir = %(here)s/data/cache/lock
381
381
382 beaker.cache.regions = short_term,long_term,sql_cache_short
382 beaker.cache.regions = short_term,long_term,sql_cache_short
383
383
384 beaker.cache.short_term.type = memory
384 beaker.cache.short_term.type = memory
385 beaker.cache.short_term.expire = 60
385 beaker.cache.short_term.expire = 60
386 beaker.cache.short_term.key_length = 256
386 beaker.cache.short_term.key_length = 256
387
387
388 beaker.cache.long_term.type = memory
388 beaker.cache.long_term.type = memory
389 beaker.cache.long_term.expire = 36000
389 beaker.cache.long_term.expire = 36000
390 beaker.cache.long_term.key_length = 256
390 beaker.cache.long_term.key_length = 256
391
391
392 beaker.cache.sql_cache_short.type = memory
392 beaker.cache.sql_cache_short.type = memory
393 beaker.cache.sql_cache_short.expire = 10
393 beaker.cache.sql_cache_short.expire = 10
394 beaker.cache.sql_cache_short.key_length = 256
394 beaker.cache.sql_cache_short.key_length = 256
395
395
396 <%text>####################################</%text>
396 <%text>####################################</%text>
397 <%text>### BEAKER SESSION ####</%text>
397 <%text>### BEAKER SESSION ####</%text>
398 <%text>####################################</%text>
398 <%text>####################################</%text>
399
399
400 <%text>## Name of session cookie. Should be unique for a given host and path, even when running</%text>
400 <%text>## Name of session cookie. Should be unique for a given host and path, even when running</%text>
401 <%text>## on different ports. Otherwise, cookie sessions will be shared and messed up.</%text>
401 <%text>## on different ports. Otherwise, cookie sessions will be shared and messed up.</%text>
402 session.key = kallithea
402 session.key = kallithea
403 <%text>## Sessions should always only be accessible by the browser, not directly by JavaScript.</%text>
403 <%text>## Sessions should always only be accessible by the browser, not directly by JavaScript.</%text>
404 session.httponly = true
404 session.httponly = true
405 <%text>## Session lifetime. 2592000 seconds is 30 days.</%text>
405 <%text>## Session lifetime. 2592000 seconds is 30 days.</%text>
406 session.timeout = 2592000
406 session.timeout = 2592000
407
407
408 <%text>## Server secret used with HMAC to ensure integrity of cookies.</%text>
408 <%text>## Server secret used with HMAC to ensure integrity of cookies.</%text>
409 session.secret = ${uuid()}
409 session.secret = ${uuid()}
410 <%text>## Further, encrypt the data with AES.</%text>
410 <%text>## Further, encrypt the data with AES.</%text>
411 #session.encrypt_key = <key_for_encryption>
411 #session.encrypt_key = <key_for_encryption>
412 #session.validate_key = <validation_key>
412 #session.validate_key = <validation_key>
413
413
414 <%text>## Type of storage used for the session, current types are</%text>
414 <%text>## Type of storage used for the session, current types are</%text>
415 <%text>## dbm, file, memcached, database, and memory.</%text>
415 <%text>## dbm, file, memcached, database, and memory.</%text>
416
416
417 <%text>## File system storage of session data. (default)</%text>
417 <%text>## File system storage of session data. (default)</%text>
418 #session.type = file
418 #session.type = file
419
419
420 <%text>## Cookie only, store all session data inside the cookie. Requires secure secrets.</%text>
420 <%text>## Cookie only, store all session data inside the cookie. Requires secure secrets.</%text>
421 #session.type = cookie
421 #session.type = cookie
422
422
423 <%text>## Database storage of session data.</%text>
423 <%text>## Database storage of session data.</%text>
424 #session.type = ext:database
424 #session.type = ext:database
425 #session.sa.url = postgresql://postgres:qwe@localhost/kallithea
425 #session.sa.url = postgresql://postgres:qwe@localhost/kallithea
426 #session.table_name = db_session
426 #session.table_name = db_session
427
427
428 <%text>############################</%text>
428 <%text>############################</%text>
429 <%text>## ERROR HANDLING SYSTEMS ##</%text>
429 <%text>## ERROR HANDLING SYSTEMS ##</%text>
430 <%text>############################</%text>
430 <%text>############################</%text>
431
431
432 # Propagate email settings to ErrorReporter of TurboGears2
432 # Propagate email settings to ErrorReporter of TurboGears2
433 # You do not normally need to change these lines
433 # You do not normally need to change these lines
434 get trace_errors.smtp_server = smtp_server
434 get trace_errors.smtp_server = smtp_server
435 get trace_errors.smtp_port = smtp_port
435 get trace_errors.smtp_port = smtp_port
436 get trace_errors.from_address = error_email_from
436 get trace_errors.from_address = error_email_from
437 get trace_errors.error_email = email_to
437 get trace_errors.error_email = email_to
438 get trace_errors.smtp_username = smtp_username
438 get trace_errors.smtp_username = smtp_username
439 get trace_errors.smtp_password = smtp_password
439 get trace_errors.smtp_password = smtp_password
440 get trace_errors.smtp_use_tls = smtp_use_tls
440 get trace_errors.smtp_use_tls = smtp_use_tls
441
441
442 %if error_aggregation_service == 'appenlight':
442 %if error_aggregation_service == 'appenlight':
443 <%text>####################</%text>
443 <%text>####################</%text>
444 <%text>### [appenlight] ###</%text>
444 <%text>### [appenlight] ###</%text>
445 <%text>####################</%text>
445 <%text>####################</%text>
446
446
447 <%text>## AppEnlight is tailored to work with Kallithea, see</%text>
447 <%text>## AppEnlight is tailored to work with Kallithea, see</%text>
448 <%text>## http://appenlight.com for details how to obtain an account</%text>
448 <%text>## http://appenlight.com for details how to obtain an account</%text>
449 <%text>## you must install python package `appenlight_client` to make it work</%text>
449 <%text>## you must install python package `appenlight_client` to make it work</%text>
450
450
451 <%text>## appenlight enabled</%text>
451 <%text>## appenlight enabled</%text>
452 appenlight = false
452 appenlight = false
453
453
454 appenlight.server_url = https://api.appenlight.com
454 appenlight.server_url = https://api.appenlight.com
455 appenlight.api_key = YOUR_API_KEY
455 appenlight.api_key = YOUR_API_KEY
456
456
457 <%text>## TWEAK AMOUNT OF INFO SENT HERE</%text>
457 <%text>## TWEAK AMOUNT OF INFO SENT HERE</%text>
458
458
459 <%text>## enables 404 error logging (default False)</%text>
459 <%text>## enables 404 error logging (default False)</%text>
460 appenlight.report_404 = false
460 appenlight.report_404 = false
461
461
462 <%text>## time in seconds after request is considered being slow (default 1)</%text>
462 <%text>## time in seconds after request is considered being slow (default 1)</%text>
463 appenlight.slow_request_time = 1
463 appenlight.slow_request_time = 1
464
464
465 <%text>## record slow requests in application</%text>
465 <%text>## record slow requests in application</%text>
466 <%text>## (needs to be enabled for slow datastore recording and time tracking)</%text>
466 <%text>## (needs to be enabled for slow datastore recording and time tracking)</%text>
467 appenlight.slow_requests = true
467 appenlight.slow_requests = true
468
468
469 <%text>## enable hooking to application loggers</%text>
469 <%text>## enable hooking to application loggers</%text>
470 #appenlight.logging = true
470 #appenlight.logging = true
471
471
472 <%text>## minimum log level for log capture</%text>
472 <%text>## minimum log level for log capture</%text>
473 #appenlight.logging.level = WARNING
473 #appenlight.logging.level = WARNING
474
474
475 <%text>## send logs only from erroneous/slow requests</%text>
475 <%text>## send logs only from erroneous/slow requests</%text>
476 <%text>## (saves API quota for intensive logging)</%text>
476 <%text>## (saves API quota for intensive logging)</%text>
477 appenlight.logging_on_error = false
477 appenlight.logging_on_error = false
478
478
479 <%text>## list of additional keywords that should be grabbed from environ object</%text>
479 <%text>## list of additional keywords that should be grabbed from environ object</%text>
480 <%text>## can be string with comma separated list of words in lowercase</%text>
480 <%text>## can be string with comma separated list of words in lowercase</%text>
481 <%text>## (by default client will always send following info:</%text>
481 <%text>## (by default client will always send following info:</%text>
482 <%text>## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that</%text>
482 <%text>## 'REMOTE_USER', 'REMOTE_ADDR', 'SERVER_NAME', 'CONTENT_TYPE' + all keys that</%text>
483 <%text>## start with HTTP* this list be extended with additional keywords here</%text>
483 <%text>## start with HTTP* this list be extended with additional keywords here</%text>
484 appenlight.environ_keys_whitelist =
484 appenlight.environ_keys_whitelist =
485
485
486 <%text>## list of keywords that should be blanked from request object</%text>
486 <%text>## list of keywords that should be blanked from request object</%text>
487 <%text>## can be string with comma separated list of words in lowercase</%text>
487 <%text>## can be string with comma separated list of words in lowercase</%text>
488 <%text>## (by default client will always blank keys that contain following words</%text>
488 <%text>## (by default client will always blank keys that contain following words</%text>
489 <%text>## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'</%text>
489 <%text>## 'password', 'passwd', 'pwd', 'auth_tkt', 'secret', 'csrf'</%text>
490 <%text>## this list be extended with additional keywords set here</%text>
490 <%text>## this list be extended with additional keywords set here</%text>
491 appenlight.request_keys_blacklist =
491 appenlight.request_keys_blacklist =
492
492
493 <%text>## list of namespaces that should be ignores when gathering log entries</%text>
493 <%text>## list of namespaces that should be ignores when gathering log entries</%text>
494 <%text>## can be string with comma separated list of namespaces</%text>
494 <%text>## can be string with comma separated list of namespaces</%text>
495 <%text>## (by default the client ignores own entries: appenlight_client.client)</%text>
495 <%text>## (by default the client ignores own entries: appenlight_client.client)</%text>
496 appenlight.log_namespace_blacklist =
496 appenlight.log_namespace_blacklist =
497
497
498 %elif error_aggregation_service == 'sentry':
498 %elif error_aggregation_service == 'sentry':
499 <%text>################</%text>
499 <%text>################</%text>
500 <%text>### [sentry] ###</%text>
500 <%text>### [sentry] ###</%text>
501 <%text>################</%text>
501 <%text>################</%text>
502
502
503 <%text>## sentry is a alternative open source error aggregator</%text>
503 <%text>## sentry is a alternative open source error aggregator</%text>
504 <%text>## you must install python packages `sentry` and `raven` to enable</%text>
504 <%text>## you must install python packages `sentry` and `raven` to enable</%text>
505
505
506 sentry.dsn = YOUR_DNS
506 sentry.dsn = YOUR_DNS
507 sentry.servers =
507 sentry.servers =
508 sentry.name =
508 sentry.name =
509 sentry.key =
509 sentry.key =
510 sentry.public_key =
510 sentry.public_key =
511 sentry.secret_key =
511 sentry.secret_key =
512 sentry.project =
512 sentry.project =
513 sentry.site =
513 sentry.site =
514 sentry.include_paths =
514 sentry.include_paths =
515 sentry.exclude_paths =
515 sentry.exclude_paths =
516
516
517 %endif
517 %endif
518 <%text>################################################################################</%text>
518 <%text>################################################################################</%text>
519 <%text>## WARNING: *DEBUG MODE MUST BE OFF IN A PRODUCTION ENVIRONMENT* ##</%text>
519 <%text>## WARNING: *DEBUG MODE MUST BE OFF IN A PRODUCTION ENVIRONMENT* ##</%text>
520 <%text>## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##</%text>
520 <%text>## Debug mode will enable the interactive debugging tool, allowing ANYONE to ##</%text>
521 <%text>## execute malicious code after an exception is raised. ##</%text>
521 <%text>## execute malicious code after an exception is raised. ##</%text>
522 <%text>################################################################################</%text>
522 <%text>################################################################################</%text>
523 debug = false
523 debug = false
524
524
525 <%text>##################################</%text>
525 <%text>##################################</%text>
526 <%text>### LOGVIEW CONFIG ###</%text>
526 <%text>### LOGVIEW CONFIG ###</%text>
527 <%text>##################################</%text>
527 <%text>##################################</%text>
528
528
529 logview.sqlalchemy = #faa
529 logview.sqlalchemy = #faa
530 logview.pylons.templating = #bfb
530 logview.pylons.templating = #bfb
531 logview.pylons.util = #eee
531 logview.pylons.util = #eee
532
532
533 <%text>#########################################################</%text>
533 <%text>#########################################################</%text>
534 <%text>### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###</%text>
534 <%text>### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ###</%text>
535 <%text>#########################################################</%text>
535 <%text>#########################################################</%text>
536
536
537 %if database_engine == 'sqlite':
537 %if database_engine == 'sqlite':
538 # SQLITE [default]
538 # SQLITE [default]
539 sqlalchemy.url = sqlite:///%(here)s/kallithea.db?timeout=60
539 sqlalchemy.url = sqlite:///%(here)s/kallithea.db?timeout=60
540
540
541 %elif database_engine == 'postgres':
541 %elif database_engine == 'postgres':
542 # POSTGRESQL
542 # POSTGRESQL
543 sqlalchemy.url = postgresql://user:pass@localhost/kallithea
543 sqlalchemy.url = postgresql://user:pass@localhost/kallithea
544
544
545 %elif database_engine == 'mysql':
545 %elif database_engine == 'mysql':
546 # MySQL
546 # MySQL
547 sqlalchemy.url = mysql://user:pass@localhost/kallithea?charset=utf8
547 sqlalchemy.url = mysql://user:pass@localhost/kallithea?charset=utf8
548
548
549 %endif
549 %endif
550 # see sqlalchemy docs for others
550 # see sqlalchemy docs for others
551
551
552 sqlalchemy.pool_recycle = 3600
552 sqlalchemy.pool_recycle = 3600
553
553
554 <%text>################################</%text>
554 <%text>################################</%text>
555 <%text>### ALEMBIC CONFIGURATION ####</%text>
555 <%text>### ALEMBIC CONFIGURATION ####</%text>
556 <%text>################################</%text>
556 <%text>################################</%text>
557
557
558 [alembic]
558 [alembic]
559 script_location = kallithea:alembic
559 script_location = kallithea:alembic
560
560
561 <%text>################################</%text>
561 <%text>################################</%text>
562 <%text>### LOGGING CONFIGURATION ####</%text>
562 <%text>### LOGGING CONFIGURATION ####</%text>
563 <%text>################################</%text>
563 <%text>################################</%text>
564
564
565 [loggers]
565 [loggers]
566 keys = root, routes, kallithea, sqlalchemy, tg, gearbox, beaker, templates, whoosh_indexer, werkzeug, backlash
566 keys = root, routes, kallithea, sqlalchemy, tg, gearbox, beaker, templates, whoosh_indexer, werkzeug, backlash
567
567
568 [handlers]
568 [handlers]
569 keys = console, console_color, console_color_sql, null
569 keys = console, console_color, console_color_sql, null
570
570
571 [formatters]
571 [formatters]
572 keys = generic, color_formatter, color_formatter_sql
572 keys = generic, color_formatter, color_formatter_sql
573
573
574 <%text>#############</%text>
574 <%text>#############</%text>
575 <%text>## LOGGERS ##</%text>
575 <%text>## LOGGERS ##</%text>
576 <%text>#############</%text>
576 <%text>#############</%text>
577
577
578 [logger_root]
578 [logger_root]
579 level = NOTSET
579 level = NOTSET
580 handlers = console
580 handlers = console
581 # For coloring based on log level:
581 # For coloring based on log level:
582 # handlers = console_color
582 # handlers = console_color
583
583
584 [logger_routes]
584 [logger_routes]
585 level = WARN
585 level = WARN
586 handlers =
586 handlers =
587 qualname = routes.middleware
587 qualname = routes.middleware
588 <%text>## "level = DEBUG" logs the route matched and routing variables.</%text>
588 <%text>## "level = DEBUG" logs the route matched and routing variables.</%text>
589
589
590 [logger_beaker]
590 [logger_beaker]
591 level = WARN
591 level = WARN
592 handlers =
592 handlers =
593 qualname = beaker.container
593 qualname = beaker.container
594
594
595 [logger_templates]
595 [logger_templates]
596 level = WARN
596 level = WARN
597 handlers =
597 handlers =
598 qualname = pylons.templating
598 qualname = pylons.templating
599
599
600 [logger_kallithea]
600 [logger_kallithea]
601 level = WARN
601 level = WARN
602 handlers =
602 handlers =
603 qualname = kallithea
603 qualname = kallithea
604
604
605 [logger_tg]
605 [logger_tg]
606 level = WARN
606 level = WARN
607 handlers =
607 handlers =
608 qualname = tg
608 qualname = tg
609
609
610 [logger_gearbox]
610 [logger_gearbox]
611 level = WARN
611 level = WARN
612 handlers =
612 handlers =
613 qualname = gearbox
613 qualname = gearbox
614
614
615 [logger_sqlalchemy]
615 [logger_sqlalchemy]
616 level = WARN
616 level = WARN
617 handlers =
617 handlers =
618 qualname = sqlalchemy.engine
618 qualname = sqlalchemy.engine
619 # For coloring based on log level and pretty printing of SQL:
619 # For coloring based on log level and pretty printing of SQL:
620 # level = INFO
620 # level = INFO
621 # handlers = console_color_sql
621 # handlers = console_color_sql
622 # propagate = 0
622 # propagate = 0
623
623
624 [logger_whoosh_indexer]
624 [logger_whoosh_indexer]
625 level = WARN
625 level = WARN
626 handlers =
626 handlers =
627 qualname = whoosh_indexer
627 qualname = whoosh_indexer
628
628
629 [logger_werkzeug]
629 [logger_werkzeug]
630 level = WARN
630 level = WARN
631 handlers =
631 handlers =
632 qualname = werkzeug
632 qualname = werkzeug
633
633
634 [logger_backlash]
634 [logger_backlash]
635 level = WARN
635 level = WARN
636 handlers =
636 handlers =
637 qualname = backlash
637 qualname = backlash
638
638
639 <%text>##############</%text>
639 <%text>##############</%text>
640 <%text>## HANDLERS ##</%text>
640 <%text>## HANDLERS ##</%text>
641 <%text>##############</%text>
641 <%text>##############</%text>
642
642
643 [handler_console]
643 [handler_console]
644 class = StreamHandler
644 class = StreamHandler
645 args = (sys.stderr,)
645 args = (sys.stderr,)
646 formatter = generic
646 formatter = generic
647
647
648 [handler_console_color]
648 [handler_console_color]
649 # ANSI color coding based on log level
649 # ANSI color coding based on log level
650 class = StreamHandler
650 class = StreamHandler
651 args = (sys.stderr,)
651 args = (sys.stderr,)
652 formatter = color_formatter
652 formatter = color_formatter
653
653
654 [handler_console_color_sql]
654 [handler_console_color_sql]
655 # ANSI color coding and pretty printing of SQL statements
655 # ANSI color coding and pretty printing of SQL statements
656 class = StreamHandler
656 class = StreamHandler
657 args = (sys.stderr,)
657 args = (sys.stderr,)
658 formatter = color_formatter_sql
658 formatter = color_formatter_sql
659
659
660 [handler_null]
660 [handler_null]
661 class = NullHandler
661 class = NullHandler
662 args = ()
662 args = ()
663
663
664 <%text>################</%text>
664 <%text>################</%text>
665 <%text>## FORMATTERS ##</%text>
665 <%text>## FORMATTERS ##</%text>
666 <%text>################</%text>
666 <%text>################</%text>
667
667
668 [formatter_generic]
668 [formatter_generic]
669 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
669 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
670 datefmt = %Y-%m-%d %H:%M:%S
670 datefmt = %Y-%m-%d %H:%M:%S
671
671
672 [formatter_color_formatter]
672 [formatter_color_formatter]
673 class = kallithea.lib.colored_formatter.ColorFormatter
673 class = kallithea.lib.colored_formatter.ColorFormatter
674 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
674 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
675 datefmt = %Y-%m-%d %H:%M:%S
675 datefmt = %Y-%m-%d %H:%M:%S
676
676
677 [formatter_color_formatter_sql]
677 [formatter_color_formatter_sql]
678 class = kallithea.lib.colored_formatter.ColorFormatterSql
678 class = kallithea.lib.colored_formatter.ColorFormatterSql
679 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
679 format = %(asctime)s.%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
680 datefmt = %Y-%m-%d %H:%M:%S
680 datefmt = %Y-%m-%d %H:%M:%S
681
681
682 <%text>#################</%text>
682 <%text>#################</%text>
683 <%text>## SSH LOGGING ##</%text>
683 <%text>## SSH LOGGING ##</%text>
684 <%text>#################</%text>
684 <%text>#################</%text>
685
685
686 # The default loggers use 'handler_console' that uses StreamHandler with
686 # The default loggers use 'handler_console' that uses StreamHandler with
687 # destination 'sys.stderr'. In the context of the SSH server process, these log
687 # destination 'sys.stderr'. In the context of the SSH server process, these log
688 # messages would be sent to the client, which is normally not what you want.
688 # messages would be sent to the client, which is normally not what you want.
689 # By default, when running ssh-serve, just use NullHandler and disable logging
689 # By default, when running ssh-serve, just use NullHandler and disable logging
690 # completely. For other logging options, see:
690 # completely. For other logging options, see:
691 # https://docs.python.org/2/library/logging.handlers.html
691 # https://docs.python.org/2/library/logging.handlers.html
692
692
693 [ssh_serve:logger_root]
693 [ssh_serve:logger_root]
694 level = CRITICAL
694 level = CRITICAL
695 handlers = null
695 handlers = null
696
696
697 # Note: If logging is configured with other handlers, they might need similar
697 # Note: If logging is configured with other handlers, they might need similar
698 # muting for ssh-serve too.
698 # muting for ssh-serve too.
General Comments 0
You need to be logged in to leave comments. Login now