# interface.
admin_password = admin123
-# Which module to use for authentication. Valid values are 'DB' and
-# 'LDAP'. If 'LDAP' is used then users cannot change their password
-# via kivitendo.
+# Which modules to use for authentication. Valid values are 'DB' and
+# 'LDAP'. You can use multiple modules separated by spaces.
+#
+# Multiple LDAP modules with different configurations can be used by
+# postfixing 'LDAP' with the name of the configuration section to use:
+# 'LDAP:ldap_fallback' would use the data from
+# '[authentication/ldap_fallback]'. The name defaults to 'ldap' if it
+# isn't given.
+#
+# Note that the LDAP module doesn't support changing the password.
module = DB
# The cookie name can be changed if desired.
# specified.
#
# tls: Activate encryption via TLS
+# verify: If 'tls' is used, how to verify the server's certificate.
+# Can be one of 'require' or 'none'.
# attribute: Name of the LDAP attribute containing the user's login name
# base_dn: Base DN the LDAP searches start from
# filter: An optional LDAP filter specification. The string '<%login%>'
# If searching the LDAP tree requires user credentials
# (e.g. ActiveDirectory) then these two parameters specify
# the user name and password to use.
+# timeout: Timeout when connecting to the server in seconds.
+#
+# You can specify a fallback LDAP server to use in case the main one
+# isn't reachable by duplicating this whole section as
+# "[authentication/ldap_fallback]".
+#
host = localhost
port = 389
tls = 0
filter =
bind_dn =
bind_password =
+timeout = 10
+verify = require
[system]
# Set language for login and admin forms. Currently "de" (German)
# and "en" (English, not perfect) are available.
language = de
-
-# The database charset. Must match the encoding of the database cluster you want to
-# connect to. (Used on the shell command to create a database "pg_createcluster". Option "-e <encoding>".)
-dbcharset = UTF-8
-
-[features]
-# Activate certain optional features and modules.
-webdav = 0
-vertreter = 0
-
-## Pictures for parts
-# Show the picture in the part form
-parts_show_image = 1
-# Style the picture with the following CSS code:
-parts_image_css = border:0;float:left;max-width:250px;margin-top:20px:margin-right:10px;margin-left:10px;
-# Show the picture in the results when you search for parts
-parts_listing_images = 0
+# MassPrint Timeout
+# must be less than cgi timeout
+#
+massprint_timeout = 30
+
+# Set default_manager for admin forms. Currently "german"
+# and "swiss" are available.
+default_manager = german
+
+# The memory limits given here determine the maximum process size
+# (vsz, the total amount of memory this process uses including memory
+# swapped out or shared with other processes) or resident set size
+# (rss, the amount of memory not swapped out/shared with other
+# processes). If either limit is reached at the end of the request
+# then the kivitendo process will exit.
+#
+# This only applies for processes under FCGI and the task manager.
+# For CGI configurations the process will be terminated after each request
+# regardless of this setting.
+#
+# Note: this will only terminate processes with too high memory consumption. It
+# is assumed that an external managing service will start new instances. For
+# FCGI this will usually be apache or the wrapper scripts for nginx, for the
+# task server this will have to be the system manager.
+#
+# Numbers can be postfixed with KB, MB, GB. If no number is given or
+# the number is 0 then no checking will be performed.
+memory_limit_rss =
+memory_limit_vsz =
[paths]
# path to temporary files (must be writeable by the web server)
templates = templates
# Path to the old memberfile (ignored on new installations)
memberfile = users/members
+# Path to ELSTER geierlein webserver path inside kivitendo
+# (must be inside kivitendo but you can set an ALIAS for apache/oe
+# if set the export to geierlein is enabled
+# geierlein_path = geierlein
+
+#
+# document path for FileSystem FileManagement:
+# (must be reachable read/write but not executable from webserver)
+# document_path = /var/local/kivi_documents
+#
[mail_delivery]
-# Delivery method can be 'sendmail' or 'smtp' (the default). For
-# 'method = sendmail' the parameter 'mail_delivery.sendmail' is used
-# as the executable to call. If 'applications.sendmail' still exists
-# (backwards compatibility) then 'applications.sendmail' will be used
-# instead of 'mail_delivery.sendmail'.
+# Delivery method can be 'sendmail' or 'smtp'. For 'method = sendmail' the
+# parameter 'mail_delivery.sendmail' is used as the executable to call. If
+# 'applications.sendmail' still exists (backwards compatibility) then
+# 'applications.sendmail' will be used instead of 'mail_delivery.sendmail'.
+# If method is empty, mail delivery is disabled.
method = smtp
# Location of sendmail for 'method = sendmail'
sendmail = /usr/sbin/sendmail -t<%if myconfig_email%> -f <%myconfig_email%><%end%>
openofficeorg_daemon_port = 2002
[task_server]
-# kivitendo client (either its name or its database ID) for database
-# access (both 'client' and 'login' are required)
-client =
-# kivitendo user (login) name to use for certain jobs (both 'client'
-# and 'login' are required)
-login =
# Set to 1 for debug messages in /tmp/kivitendo-debug.log
debug = 0
# Chose a system user the daemon should run under when started as root.
run_as =
+# Task servers can run on multiple machines. Each needs its own unique
+# ID. If unset, it defaults to the host name. All but one task server
+# must have 'only_run_tasks_for_this_node' set to 1.
+node_id =
+only_run_tasks_for_this_node = 0
+
+[task_server/notify_on_failure]
+# If you want email notifications for failed jobs then set this to a
+# kivitendo user (login) name. The subject can be changed as well.
+send_email_to =
+# The "From:" header for said email.
+email_from = kivitendo Daemon <root@localhost>
+# The subject for said email.
+email_subject = kivitendo Task-Server: Hintergrundjob fehlgeschlagen
+# The template file used for the email's body.
+email_template = templates/webpages/task_server/failure_notification_email.txt
[periodic_invoices]
-# The user name a report about the posted and printed invoices is sent
-# to.
-send_email_to = mb
+# The user name or email address a report about the posted and printed
+# invoices is sent to.
+send_email_to =
# The "From:" header for said email.
email_from = kivitendo Daemon <root@localhost>
# The subject for said email.
email_subject = Benachrichtigung: automatisch erstellte Rechnungen
# The template file used for the email's body.
email_template = templates/webpages/oe/periodic_invoices_email.txt
+# Whether to always send the mail (0), or only if there were errors
+# (1).
+send_for_errors_only = 0
[self_test]
log_file = /tmp/kivitendo_console_debug.log
[testing]
-# Automatic login will only work if both "client" and "login" are
-# given. "client" can be a client's database ID or its name. "login"
-# is simply a user's login name.
-client =
-login =
+
+# Several tests need a database they can alter data in freely. This
+# database will be dropped & created before any other test is run. The
+# following parameters must be given:
+[testing/database]
+host = localhost
+port = 5432
+db =
+user = postgres
+password =
+template = template1
+superuser_user = postgres
+superuser_password =
[devel]
# Several settings related to the development of kivitendo.
= log4perl.appender.A1.layout.ConversionPattern=%d %p> %F{1}:%L %M - %m%n
# Activate certain global debug messages. If you want to combine
-# several options then list them seperated by spaces.
+# several options then list them separated by spaces.
#
# Possible values include:
# NONE - no debug output (default)
# REQUEST - Log each request. Careful! Passwords get filtered, but
# there may be confidential information being logged here
# WARN - warnings
+# SHOW_CALLER - include the file name & line number from where a call
+# to "message" or "dump" was called
# ALL - all possible debug messages
#
# DEVEL - sames as "INFO QUERY TRACE BACKTRACE_ON_ERROR REQUEST_TIMER"
# If set to 1 each exception will include a full stack backtrace.
backtrace_on_die = 0
+
+[cti]
+# If you want phone numbers to be clickable then this must be set to a
+# command that does the actually dialing. Within this command three
+# variables are replaced before it is executed:
+#
+# 1. <%phone_extension%> and <%phone_password%> are taken from the user
+# configuration (changeable in the admin interface).
+# 2. <%number%> is the number to dial. It has already been sanitized
+# and formatted correctly regarding e.g. the international dialing
+# prefix.
+#
+# The following is an example that works with the OpenUC telephony
+# server:
+# dial_command = curl --insecure -X PUT https://<%phone_extension%>:<%phone_password%>@IP.AD.DR.ESS:8443/sipxconfig/rest/my/call/<%number%>
+dial_command =
+# If you need to dial something before the actual number then set
+# external_prefix to it.
+external_prefix = 0
+# The prefix for international calls (numbers starting with +).
+international_dialing_prefix = 00
+# Our own country code
+our_country_code = 49