Merge branch 'test' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / config / kivitendo.conf.default
1 [authentication]
2 # The cleartext password for access to the administrative part.  It
3 # can only be changed in this file, not via the administrative
4 # interface.
5 admin_password = admin123
6
7 # Which modules to use for authentication. Valid values are 'DB' and
8 # 'LDAP'. You can use multiple modules separated by spaces.
9 #
10 # Multiple LDAP modules with different configurations can be used by
11 # postfixing 'LDAP' with the name of the configuration section to use:
12 # 'LDAP:ldap_fallback' would use the data from
13 # '[authentication/ldap_fallback]'. The name defaults to 'ldap' if it
14 # isn't given.
15 #
16 # Note that the LDAP module doesn't support changing the password.
17 module = DB
18
19 # The cookie name can be changed if desired.
20 cookie_name = kivitendo_session_id
21
22 # The number of minutes a session is valid. The default value is eight
23 # hours.
24 session_timeout = 480
25
26 # The number of seconds to penalize failed login attempts. 0 disables
27 # it.
28 failed_login_penalty = 5
29
30 [authentication/database]
31 # Connection information for the database with the user and group
32 # inforamtion.  This information is always needed, even if LDAP is
33 # used for authentication, as the user information is stored in this
34 # database while LDAP is only used for password verification.
35 #
36 # If 'module' is set to 'DB' then this database also contains the
37 # users' passwords.
38 host     = localhost
39 port     = 5432
40 db       = kivitendo_auth
41 user     = kivitendo
42 password = kivitendo
43
44 [authentication/ldap]
45 # This section is only relevant if 'module' is set to 'LDAP'. It names
46 # the LDAP server the passwords are verified against by doing a LDAP
47 # bind operation.
48 #
49 # At least the parameters 'host', 'attribute' and 'base_dn' have to be
50 # specified.
51 #
52 # tls:       Activate encryption via TLS
53 # verify:    If 'tls' is used, how to verify the server's certificate.
54 #            Can be one of 'require' or 'none'.
55 # attribute: Name of the LDAP attribute containing the user's login name
56 # base_dn:   Base DN the LDAP searches start from
57 # filter:    An optional LDAP filter specification. The string '<%login%>'
58 #            is replaced by the user's login name before the search is started.
59 # bind_dn and bind_password:
60 #            If searching the LDAP tree requires user credentials
61 #            (e.g. ActiveDirectory) then these two parameters specify
62 #            the user name and password to use.
63 # timeout:   Timeout when connecting to the server in seconds.
64 #
65 # You can specify a fallback LDAP server to use in case the main one
66 # isn't reachable by duplicating this whole section as
67 # "[authentication/ldap_fallback]".
68 #
69 host          = localhost
70 port          = 389
71 tls           = 0
72 attribute     = uid
73 base_dn       =
74 filter        =
75 bind_dn       =
76 bind_password =
77 timeout       = 10
78 verify        = require
79
80 [system]
81 # Set language for login and admin forms. Currently "de" (German)
82 # and "en" (English, not perfect) are available.
83 language = de
84 # MassPrint Timeout
85 # must be less than cgi timeout
86 #
87 massprint_timeout = 30
88
89 # Set default_manager for admin forms. Currently "german"
90 # and "swiss" are available.
91 default_manager = german
92
93 # The memory limits given here determine the maximum process size
94 # (vsz, the total amount of memory this process uses including memory
95 # swapped out or shared with other processes) or resident set size
96 # (rss, the amount of memory not swapped out/shared with other
97 # processes). If either limit is reached at the end of the request
98 # then the kivitendo process will exit.
99 #
100 # This only applies for processes under FCGI and the task manager.
101 # For CGI configurations the process will be terminated after each request
102 # regardless of this setting.
103 #
104 # Note: this will only terminate processes with too high memory consumption. It
105 # is assumed that an external managing service will start new instances. For
106 # FCGI this will usually be apache or the wrapper scripts for nginx, for the
107 # task server this will have to be the system manager.
108 #
109 # Numbers can be postfixed with KB, MB, GB. If no number is given or
110 # the number is 0 then no checking will be performed.
111 memory_limit_rss =
112 memory_limit_vsz =
113
114 [paths]
115 # path to temporary files (must be writeable by the web server)
116 userspath = users
117 # spool directory for batch printing
118 spool = spool
119 # templates base directory
120 templates = templates
121 # Path to the old memberfile (ignored on new installations)
122 memberfile = users/members
123 # Path to ELSTER geierlein webserver path inside kivitendo
124 # (must be inside kivitendo but you can set an ALIAS for apache/oe
125 # if set the export to geierlein is enabled
126 # geierlein_path = geierlein
127
128 #
129 # document path for FileSystem FileManagement:
130 #  (must be reachable read/write but not executable from webserver)
131 # document_path = /var/local/kivi_documents
132 #
133
134 [mail_delivery]
135 # Delivery method can be 'sendmail' or 'smtp'. For 'method = sendmail' the
136 # parameter 'mail_delivery.sendmail' is used as the executable to call. If
137 # 'applications.sendmail' still exists (backwards compatibility) then
138 # 'applications.sendmail' will be used instead of 'mail_delivery.sendmail'.
139 # If method is empty, mail delivery is disabled.
140 method = smtp
141 # Location of sendmail for 'method = sendmail'
142 sendmail = /usr/sbin/sendmail -t<%if myconfig_email%> -f <%myconfig_email%><%end%>
143 # Settings for 'method = smtp'. Only set 'port' if your SMTP server
144 # runs on a non-standard port (25 for 'security=none' or
145 # 'security=tls', 465 for 'security=ssl').
146 host = localhost
147 #port = 25
148 # Security can be 'tls', 'ssl' or 'none'. Unset equals 'none'. This
149 # determines whether or not encryption is used and which kind. For
150 # 'tls' the module 'Net::SSLGlue' is required; for 'ssl'
151 # 'Net::SMTP::SSL' is required and 'none' only uses 'Net::SMTP'.
152 security = none
153 # Authentication is only used if 'login' is set. You should only use
154 # that with 'tls' or 'ssl' encryption.
155 login =
156 password =
157
158 [applications]
159 # Location of OpenOffice.org writer
160 openofficeorg_writer = oowriter
161 # Location of the X virtual frame buffer used for OpenOffice
162 xvfb = Xvfb
163 # Location of the html2ps binary
164 html2ps = html2ps
165 # Location of the Ghostscript binary
166 ghostscript = gs
167 # Location of the pdflatex (or compatible, e.g. xetex) binary
168 latex = pdflatex
169 # Location of the Python interpreter to use when converting from
170 # OpenDocument to PDF. Some distributions compile UNO support only
171 # into binaries located in different locations than the main Python
172 # binary.
173 python_uno = python
174
175 [environment]
176 # Add the following paths to the PATH environment variable.
177 path = /usr/local/bin:/usr/X11R6/bin:/usr/X11/bin
178 # Add the following paths to the PERL5LIB environment variable.
179 # "/sw/lib/perl5" is for Mac OS X with Fink's Perl.
180 lib = /sw/lib/perl5
181 # Add the following paths to the PYTHONPATH environment variable for
182 # locating Python modules. Python is used when converting OpenDocument
183 # files into PDF files.
184 python_uno_path =
185
186 [print_templates]
187 # If you have LaTeX installed set to 1
188 latex = 1
189 # Minimal support for Excel print templates
190 excel = 0
191 # Enable or disable support for OpenDocument print templates
192 opendocument = 1
193 # Chose whether or not OpenOffice should remain running after a
194 # conversion. If yes then the conversion of subsequent documents will
195 # be a lot faster. You need to have Python and the Python UNO bindings
196 # (part of OpenOffice) installed.
197 openofficeorg_daemon = 1
198 openofficeorg_daemon_port = 2002
199
200 [task_server]
201 # Set to 1 for debug messages in /tmp/kivitendo-debug.log
202 debug = 0
203 # Chose a system user the daemon should run under when started as root.
204 run_as =
205 # Task servers can run on multiple machines. Each needs its own unique
206 # ID. If unset, it defaults to the host name. All but one task server
207 # must have 'only_run_tasks_for_this_node' set to 1.
208 node_id =
209 only_run_tasks_for_this_node = 0
210
211 [task_server/notify_on_failure]
212 # If you want email notifications for failed jobs then set this to a
213 # kivitendo user (login) name. The subject can be changed as well.
214 send_email_to  =
215 # The "From:" header for said email.
216 email_from     = kivitendo Daemon <root@localhost>
217 # The subject for said email.
218 email_subject  = kivitendo Task-Server: Hintergrundjob fehlgeschlagen
219 # The template file used for the email's body.
220 email_template = templates/webpages/task_server/failure_notification_email.txt
221
222 [periodic_invoices]
223 # The user name or email address a report about the posted and printed
224 # invoices is sent to.
225 send_email_to  =
226 # The "From:" header for said email.
227 email_from     = kivitendo Daemon <root@localhost>
228 # The subject for said email.
229 email_subject  = Benachrichtigung: automatisch erstellte Rechnungen
230 # The template file used for the email's body.
231 email_template = templates/webpages/oe/periodic_invoices_email.txt
232 # Whether to always send the mail (0), or only if there were errors
233 # (1).
234 send_for_errors_only = 0
235
236 [self_test]
237
238 # modules to be tested
239 # Add without SL::BackgroundJob::SelfTest:: prefix
240 # Separate with space.
241 modules = Transactions
242
243 # you probably don't want to be spammed with "everything ok" every day. enable
244 # this when you add new tests to make sure they run correctly for a few days
245 send_email_on_success = 0
246
247 # will log into the standard logfile
248 log_to_file = 0
249
250 # user login (!) to send the email to.
251 send_email_to  =
252 # will be used to send your report mail
253 email_from     =
254 # The subject line for your report mail
255 email_subject  = kivitendo self test report
256 # template. currently txt and html templates are recognized and correctly mime send.
257 email_template = templates/mail/self_test/status_mail.txt
258
259 [console]
260 # Automatic login will only work if both "client" and "login" are
261 # given.  "client" can be a client's database ID or its name. "login"
262 # is simply a user's login name.
263 client =
264 login =
265
266 # autorun lines will be executed after autologin.
267 # be warned that loading huge libraries will noticably lengthen startup time.
268 #autorun = require "bin/mozilla/common.pl";
269 #        = use English qw(-no_match_vars);
270 #        = use List::Util qw(min max);
271 #        = sub take { my $max = shift; my $r = ref($_[0]) eq 'ARRAY' ? $_[0] : \@_; return @{$r}[0..List::Util::min($max, scalar(@{$r})) - 1]; }
272
273 # location of history file for permanent history
274 history_file = users/console_history
275
276 # location of a separate log file for the console. everything normally written
277 # to the kivitendo log will be put here if triggered from the console
278 log_file = /tmp/kivitendo_console_debug.log
279
280 [testing]
281
282 # Several tests need a database they can alter data in freely. This
283 # database will be dropped & created before any other test is run. The
284 # following parameters must be given:
285 [testing/database]
286 host               = localhost
287 port               = 5432
288 db                 =
289 user               = postgres
290 password           =
291 template           = template1
292 superuser_user     = postgres
293 superuser_password =
294
295 [devel]
296 # Several settings related to the development of kivitendo.
297
298 # "client" is used by several scripts (e.g. rose_auto_create_model.pl)
299 # when they need access to the database. It can be either a client's
300 # database ID or its name.
301 client =
302
303 [debug]
304 # Use DBIx::Log4perl for logging DBI calls. The string LXDEBUGFILE
305 # will be replaced by the file name configured for $::lxdebug.
306 dbix_log4perl = 0
307 dbix_log4perl_config = log4perl.logger = FATAL, LOGFILE
308                      = log4perl.appender.LOGFILE=Log::Log4perl::Appender::File
309                      = log4perl.appender.LOGFILE.filename=LXDEBUGFILE
310                      = log4perl.appender.LOGFILE.mode=append
311                      = log4perl.appender.LOGFILE.Threshold = ERROR
312                      = log4perl.appender.LOGFILE.layout=PatternLayout
313                      = log4perl.appender.LOGFILE.layout.ConversionPattern=[%r] %F %L %c - %m%n
314                      = log4perl.logger.DBIx.Log4perl=DEBUG, A1
315                      = log4perl.appender.A1=Log::Log4perl::Appender::File
316                      = log4perl.appender.A1.filename=LXDEBUGFILE
317                      = log4perl.appender.A1.mode=append
318                      = log4perl.appender.A1.layout=Log::Log4perl::Layout::PatternLayout
319                      = log4perl.appender.A1.layout.ConversionPattern=%d %p> %F{1}:%L %M - %m%n
320
321 # Activate certain global debug messages. If you want to combine
322 # several options then list them separated by spaces.
323 #
324 # Possible values include:
325 #   NONE   - no debug output (default)
326 #   INFO
327 #   DEBUG1
328 #   DEBUG2
329 #   QUERY              - Dump SQL queries (only in legacy code; see also "dbix_log4perl" above)
330 #   TRACE              - Track function calls and returns
331 #   BACKTRACE_ON_ERROR - Print a function call backtrace when $form->error() is called
332 #   REQUEST_TIMER      - Log timing of HTTP requests
333 #   REQUEST            - Log each request. Careful! Passwords get filtered, but
334 #                        there may be confidential information being logged here
335 #   WARN               - warnings
336 #   SHOW_CALLER        - include the file name & line number from where a call
337 #                        to "message" or "dump" was called
338 #   ALL                - all possible debug messages
339 #
340 #   DEVEL              - sames as "INFO QUERY TRACE BACKTRACE_ON_ERROR REQUEST_TIMER"
341 #
342 # Example:
343 #   global_level = TRACE QUERY
344 global_level = NONE
345
346 # Activate monitoring of the content of $form. If it is active then
347 # monitoring can be turned on for certain variables with the
348 # following:
349 #   $form->{"Watchdog::<variable>"} = 1;
350 # Monitoring has a performance cost and is therefore deactivated by
351 # default.
352 watch_form = 0
353
354 # If you want to debug the creation of LaTeX files then set this to 1.
355 # That way the temporary LaTeX files created during PDF creation are
356 # not removed and remain in the "users" directory.
357 keep_temp_files = 0
358
359 # Restart the FastCGI process if changes to the program or template
360 # files have been detected. The restart will occur after the request
361 # in which the changes have been detected has completed.
362 restart_fcgi_process_on_changes = 0
363
364 # The file name where the debug messages are written to.
365 file_name = /tmp/kivitendo-debug.log
366
367 # If set to 1 then the installation will be kept unlocked even if a
368 # database upgrade fails.
369 keep_installation_unlocked = 0
370
371 # If set to 1 then all resource links (JavaScript, CSS files) output
372 # via $::request->{layout}->use_stylesheet() / use_javascript() will
373 # be made unique by appending a random GET parameter. This will cause
374 # the web browser to always reload the resources.
375 auto_reload_resources = 0
376
377 # Alternative to auto_reload_resources. If the installation dir is under git
378 # version control, this will use the HEAD commit sha1 as the random GET
379 # parameter, so that resources are reloaded if the installed version charnges.
380 git_commit_reload_recources = 0
381
382 # If set to 1 each exception will include a full stack backtrace.
383 backtrace_on_die = 0
384
385 [cti]
386 # If you want phone numbers to be clickable then this must be set to a
387 # command that does the actually dialing. Within this command three
388 # variables are replaced before it is executed:
389 #
390 # 1. <%phone_extension%> and <%phone_password%> are taken from the user
391 #    configuration (changeable in the admin interface).
392 # 2. <%number%> is the number to dial. It has already been sanitized
393 #    and formatted correctly regarding e.g. the international dialing
394 #    prefix.
395 #
396 # The following is an example that works with the OpenUC telephony
397 # server:
398 # dial_command = curl --insecure -X PUT https://<%phone_extension%>:<%phone_password%>@IP.AD.DR.ESS:8443/sipxconfig/rest/my/call/<%number%>
399 dial_command =
400 # If you need to dial something before the actual number then set
401 # external_prefix to it.
402 external_prefix = 0
403 # The prefix for international calls (numbers starting with +).
404 international_dialing_prefix = 00
405 # Our own country code
406 our_country_code = 49