Files
server/usr/share/psa-horde/config/conf.xml
2026-01-07 20:52:11 +01:00

2374 lines
107 KiB
XML

<?xml version="1.0"?>
<!-- $Id: 5841de7a8bd742b764f603953bef5d16a75a0da4 $ -->
<configuration>
<configtab name="general" desc="General">
<configheader>General Horde Settings</configheader>
<configboolean name="vhosts" desc="Enable virtual host configuration? If you
want to use a single Horde installation for different virtual hosts, you can
create separate configuration files for each virtual host,
e.g. &lt;code&gt;conf-www.example.com.php&lt;/code&gt; or
&lt;code&gt;prefs-mail.example.com.php&lt;/code&gt;. The global configuration
files are always loaded first, and virtual host specific files are not
required. If running command line scripts, you can specify the host name with
the environment variable SERVER_NAME.">false</configboolean>
<configheader>PHP Settings</configheader>
<configphp name="debug_level" desc="The value to set
error_reporting() to.
See http://www.php.net/manual/function.error-reporting.php for more
information and possible values.">E_ALL &amp; ~E_NOTICE</configphp>
<configinteger name="max_exec_time" desc="If we need to perform a long
operation, what should we set max_execution_time to (in seconds)? 0 means no
limit; however, a value of 0 will cause a warning if you are running in safe
mode. See http://www.php.net/manual/function.set-time-limit.php for more
information.">0</configinteger>
<configboolean name="compress_pages" desc="If this option is set to true, and
you have the php zlib extension installed, pages over a certain size will be
compressed and sent to the browser as gzip-encoded data in order to save
bandwidth. There is little reason not to enable this.">true</configboolean>
<configsecret name="secret_key" desc="Secret key for generating signed
messages from this server. This is a random string unique to this Horde
installation."></configsecret>
<configinteger name="umask" octal="true" desc="What umask should we run
with? This will affect the permissions on any temporary files that are
created. This value is an integer.">077</configinteger>
<configboolean name="testdisable" desc="Disable the test script
(horde/test.php)? For security reasons, this is disabled by
default">true</configboolean>
<configstring name="tmpdir" required="false" desc="If you want to use a
temporary directory other than the system default or the one specified in
php's upload_tmp_dir value, enter it here."/>
<configheader>URL Settings</configheader>
<configenum name="use_ssl" quote="false" desc="Determines how we generate
full URLs (for location headers and such).">2
<values>
<value desc="Assume that we are not using SSL and never generate https
URLs.">0</value>
<value desc="Assume that we are using SSL and always generate https
URLs.">1</value>
<value desc="Attempt to auto-detect, and generate URLs
appropriately">2</value>
<value desc="Assume that we are not using SSL and generate https URLs only
for login.">3</value>
</values>
</configenum>
<configsection name="server">
<configphp name="name" desc="What server name should we use? You'll probably
know if you need to change this default; only in situations where you need
to override what Apache thinks the server name is.">
$_SERVER['SERVER_NAME']</configphp>
<configphp name="port" required="false" desc="What port number is the
webserver running on? Again, you shouldn't need to change the default, and
you probably know it if you do. The exception is if you have chosen to
always generate https URLs, as described above."/>
</configsection>
<configsection name="urls">
<configinteger name="token_lifetime" desc="This is the length of time in
minutes that links protected with request tokens (to prevent cross-site
request forgery) will be valid. Higher values may make your users more
vulnerable to these attacks.">30</configinteger>
<configinteger name="hmac_lifetime" desc="This is the length of time in
minutes that links signed with HMACs (to prevent forged URL parametes)
will be valid. Higher values may make your users more vulnerable to
forgery or phishing.">30</configinteger>
<configenum name="pretty" required="false" desc="Use pretty URLs?">false
<values>
<value desc="No (GET-based URLs)">false</value>
<value desc="URL rewriting (mod_rewrite, lighttpd rules, etc.)">rewrite</value>
</values>
</configenum>
</configsection>
<configlist name="safe_ips" required="false" desc="A list of IP subnets
that are considered safe, e.g. to transfer encryption passphrases without
requiring an HTTPS connection. (Example: 192.168.0.0, 10.0.0.0) To consider
all connections to be safe (e.g. when SSL is handled by an SSL crypto card
and not by the webserver) this value should be '*'."/>
<configheader>Session Settings</configheader>
<configsection name="session">
<configstring name="name" desc="What name should we use for the session
that Horde applications share? If you want to share sessions with other
applications on your webserver, you will need to make sure that they are
using the same session name. This value can also be used to invalidate
previous sessions when upgrading your local version of Horde (Note: Session
names must consist of only alphanumeric characters.)">Horde</configstring>
<configboolean name="use_only_cookies" desc="Should we only allow session
information to be stored in a session cookie and not be passed by URL (GET)
parameters? This is on by default because passing session information in
the URL is a security risk. &lt;b&gt;Consider carefully before turning it
off&lt;/b&gt;. Cookies must be working and enabled in the browser though, or
you won't be able to login to Horde. If false, session information will be
passed via both the URL and cookies.">true</configboolean>
<configinteger name="timeout" desc="The cookie lifetime (in seconds). If 0,
(DEFAULT; RECOMMENDED) cookies will expire when the browser closes.
Otherwise, this is the length after which a cookie will expire (this
lifetime is updated after every browser request). Setting a non-zero value
is NOT RECOMMENDED as there is no guarantee a session will ever expire;
additionally, the session expiration value is based on the SERVER, not the
CLIENT, so this will most certainly not work the way you want/think it
should (see
http://www.php.net/manual/en/function.session-set-cookie-params.php) for
further information.">0</configinteger>
<configstring name="cache_limiter" desc="What caching level should we use
for the session? DO NOT CHANGE THIS UNLESS YOU &lt;strong&gt;REALLY
&lt;/strong&gt; KNOW WHAT YOU ARE DOING. Setting this to anything other
than 'nocache' will almost certainly result in severely broken script
behavior.">nocache</configstring>
<configinteger name="max_time" desc="The maximum length of time (in
seconds) a session can be active after user authentication before it will
be destroyed. (Sessions may otherwise never timeout if a user never closes
their browser.) 0 means there is no maximum session time (NOT
RECOMMENDED).">604800</configinteger>
</configsection>
<configsection name="cookie">
<configphp name="domain" desc="What domain should we set cookies from? If
you have a cluster that needs to share cookies, this might be '.example.com'
- the leading '.' is important. If you only use session cookies (see
above), but you are running Horde on an intranet server without a domain
part, i.e. http//horde/, you need to set this value to ''. Most likely,
though, you won't have to change the
default.">$_SERVER['SERVER_NAME']</configphp>
<configstring name="path" desc="What path should we set cookies to? For
maximum security this should match the URL where Horde is on your webserver.
If Horde is at /horde, then this should be '/horde'. If Horde is installed
as the document root, then this needs to be '/' - NOT ''. If IE will be
used to access Horde modules, you should read this first
(discussing issues with IE's Content Advisor):
http://lists.horde.org/archives/imp/Week-of-Mon-20030113/029149.html">
/</configstring>
</configsection>
</configtab>
<configtab name="db" desc="Database">
<configdescription>&lt;strong&gt;NOTE:&lt;/strong&gt; These are only the
&lt;em&gt;default&lt;/em&gt; values for any database driven backends. You
still need to configure the different systems like "Preferences" to actually
&lt;em&gt;use&lt;/em&gt; a database backend.</configdescription>
<configsection name="sql">
<configheader>SQL Database Settings</configheader>
<configdescription>These are the database settings for the traditional
relational databases backends (e.g. databases that use SQL to manage its
data).</configdescription>
<configsql switchname="phptype" baseconfig="true" />
</configsection>
<configsection name="nosql">
<configheader>NoSQL Database Settings</configheader>
<configdescription>These are the database settings for the NoSQL database
backends. These are databases generally optimized for
scalability/availability, but do not use a standardized query language to
interact with the data.</configdescription>
<confignosql switchname="phptype" baseconfig="true" default="false"/>
</configsection>
</configtab>
<configtab name="ldap" desc="LDAP">
<configsection name="ldap">
<configheader>LDAP Settings</configheader>
<configdescription>&lt;strong&gt;NOTE:&lt;/strong&gt; These are only the
&lt;em&gt;default&lt;/em&gt; values for any LDAP driven backends. You
still need to configure the different systems like "Preferences" to actually
&lt;em&gt;use&lt;/em&gt; a LDAP backend.</configdescription>
<configldap switchname="useldap" baseconfig="true" />
</configsection>
</configtab>
<configtab name="auth" desc="Authentication">
<configsection name="auth">
<configheader>Authentication Settings</configheader>
<configlist name="admins" desc="Which users should be treated as
administrators (root, super-user) by Horde?" required="false"/>
<configboolean name="checkip" desc="Should we always store and validate
the IP address of the client (as seen by the web server) in the session?
Doing so will help increase security by making it harder for an attacker
from another host to hijack the session.">true</configboolean>
<configboolean name="checkbrowser" desc="Should we always store and
validate the browser string of the client (as seen by the web server) in
the session? Doing so will help increase security by making it harder for
an attacker to hijack the session.">true</configboolean>
<configswitch name="resetpassword" desc="Allow users to reset passwords and
provide a link on the login screen?">true
<case name="true" desc="Yes">
<configstring name="resetpassword_from" required="false" desc="The e-mail
address to send password reset e-mails from. If empty, is sent from the
user's e-mail address."/>
</case>
<case name="false" desc="No"/>
</configswitch>
<configstring name="alternate_login" desc="If this is not false, it is
assumed to be the URL of an alternate login screen which will be used in
place of horde's default login screen. The URL will have an &quot;app&quot;
parameter appended that contains the application that redirected to the
login screen, and a &quot;url&quot; parameter with the originally requested
URL. The alternate login screen should redirect to that URL after
authentication. Alternatively you can include a &quot;%u&quot; place holder
in the alternate URL that will be replaced by that original
URL. Optionally appended URL parameters are &quot;logout_reason&quot; that
contains a number with the logout reason (see the Horde_Auth::REASON_*
constants for possible values), and &quot;logout_msg&quot; that contains an
error message describing the logout reason.">false</configstring>
<configstring name="redirect_on_logout" desc="If this is not false, it is
assumed to be the URL of an alternate logout page which users will be sent
to when they log out.">false</configstring>
<configenum name="list_users" desc="If the authentication backend is
capable of listing all users, should we show this list to the users,
e.g. in the permissions screen?">list
<values>
<value desc="Show a drop down list">list</value>
<value desc="Show an input field">input</value>
<value desc="Show both, a list and an input field">both</value>
</values>
</configenum>
<configswitch name="driver" desc="What backend should we use for
authenticating users to Horde?">
<case name="application" desc="Let a Horde application handle
authentication">
<configsection name="params">
<configenum name="app" desc="The application which is providing
authentication">imp
<values>
<configspecial application="horde" name="apps" />
</values>
</configenum>
</configsection>
</case>
<case name="auto" desc="Automatic authentication as a certain user">
<configsection name="params">
<configstring name="username" desc="The username to authenticate
everyone as">horde_user</configstring>
<configstring name="password" desc="The password to use for the user's
credentials" required="false"/>
<configboolean name="requestuser" desc="Allow username to be passed by
GET, POST or cookie?">false</configboolean>
</configsection>
</case>
<case name="composite" desc="Composite authentication">
<configdescription>
This authentication driver needs manual configuration not possible
through this interface. Add the appropriate configuration lines at the
end of the generated configuration file. See
http://wiki.horde.org/AuthCompositeHowTo for details.
</configdescription>
</case>
<case name="ftp" desc="FTP authentication">
<configsection name="params">
<configstring name="hostspec" desc="The hostname or IP address of the
FTP server">localhost</configstring>
<configinteger name="port" desc="The server port to connect to">
21</configinteger>
</configsection>
</case>
<case name="http" desc="HTTP (Basic Authentication/.htpasswd)
authentication">
<configsection name="params">
<configboolean name="show_encryption" required="false" desc="Prepend the
password algorithm to the password value?">true</configboolean>
<configstring name="htpasswd_file" required="false" desc="The location of
the htpasswd file containing the user names and passwords"/>
<configenum name="encryption" desc="The password hashing algorithm used in the htpasswd file">crypt-des
<values>
<value>aprmd5</value>
<value>crypt</value>
<value>crypt-blowfish</value>
<value>crypt-des</value>
<value>crypt-md5</value>
<value>crypt-sha256</value>
<value>crypt-sha512</value>
<value>md5-base64</value>
<value>md5-hex</value>
<value>plain</value>
<value>sha</value>
<value>smd5</value>
<value>ssha</value>
</values>
</configenum>
</configsection>
</case>
<case name="httpRemote" desc="Remote HTTP Authentication">
<configsection name="params">
<configstring name="url" desc="The remote HTTP endpoint to authenticate against" />
</configsection>
</case>
<case name="imap" desc="IMAP authentication">
<configsection name="params">
<configstring name="hostspec" desc="The hostname or IP address of the
server">localhost</configstring>
<configinteger name="port" desc="The server port to which we will
connect. IMAP is generally 143, while IMAP-SSL is generally
993.">143</configinteger>
<configenum name="secure" desc="The encryption to use to connect to
the IMAP server.">tls
<values>
<value>none</value>
<value>tls</value>
<value>ssl</value>
</values>
</configenum>
</configsection>
</case>
<case name="imsp" desc="IMSP server authentication" />
<case name="ipbasic" desc="IP based authentication">
<configsection name="params">
<configlist name="blocks" desc="A list of CIDR masks which are allowed
access"/>
</configsection>
</case>
<case name="kolab" desc="Kolab authentication">
<configsection name="params">
</configsection>
</case>
<case name="ldap" desc="LDAP authentication">
<configsection name="params">
<configldap switchname="driverconfig" excludebind="user">
<configstring name="sizelimit" required="false" desc="Size limit for
listing users on large directories"/>
<configboolean name="ad" desc="Is this an AD server?">
false</configboolean>
<configstring name="uid" desc="The username search key (set to
samaccountname for AD)"/>
<configenum name="encryption" desc="The password hashing algorithm to
use">ssha
<values>
<value>aprmd5</value>
<value>crypt</value>
<value>crypt-blowfish</value>
<value>crypt-des</value>
<value>crypt-md5</value>
<value>crypt-sha256</value>
<value>crypt-sha512</value>
<value>md5-base64</value>
<value>md5-hex</value>
<value>msad</value>
<value>plain</value>
<value>sha</value>
<value>smd5</value>
<value>ssha</value>
</values>
</configenum>
<configlist name="newuser_objectclass" desc="What objectclasses should a
new user account be member of? These objectclasses should cover the
cn,sn,userPassword attributes as well as the username search key">
shadowAccount,inetOrgPerson</configlist>
<configstring name="filter" desc="The LDAP RFC formatted filter used
to search for users.">(objectclass=shadowAccount)
</configstring>
<configswitch name="password_expiration" desc="Enable the creating of
accounts with expiring passwords? (Note: New users should have the
shadowAccount objectclass)">no
<case name="no" desc="no" />
<case name="yes" desc="yes">
<configstring name="minage" desc="After how many days may a password
be changed again?">5</configstring>
<configstring name="maxage" desc="How many days will a password
remain valid?">30</configstring>
<configstring name="warnage" desc="How many days before expiration
should a user be warned?">5</configstring>
</case>
</configswitch>
</configldap>
</configsection>
</case>
<case name="login" desc="Login (su) authentication">
<configsection name="params">
<configstring name="location" desc="Location of the su binary">
/bin/su</configstring>
</configsection>
</case>
<case name="pam" desc="PAM (Pluggable Authentication Modules)
authentication">
<configsection name="params">
<configstring name="service" desc="The name of the PAM service to use
when authenticating">php</configstring>
</configsection>
</case>
<case name="passwd" desc="password file authentication">
<configsection name="params">
<configstring name="filename" desc="The password file to use">
/etc/passwd</configstring>
<configenum name="encryption" required="false" desc="The password
hashing algorithm used in the password file">crypt
<values>
<value>aprmd5</value>
<value>crypt</value>
<value>crypt-blowfish</value>
<value>crypt-des</value>
<value>crypt-md5</value>
<value>crypt-sha256</value>
<value>crypt-sha512</value>
<value>md5-base64</value>
<value>md5-hex</value>
<value>plain</value>
<value>sha</value>
<value>smd5</value>
<value>ssha</value>
</values>
</configenum>
<configboolean name="show_encryption" required="false" desc="Prepend the
password algorithm to the password value?">false</configboolean>
<configstring name="group_filename" required="false" desc="An accompanying group file" />
<configlist name="required_groups" required="false" desc="A comma-separated list of groups allowed to log in. If blank, or if there is no group file, any valid user will be allowed to log in." />
<configboolean name="lock" desc="Should we lock the password file? This incurs a concurrent performance penalty, but is required if you want the ability to add, update, or delete users.">
false</configboolean>
</configsection>
</case>
<case name="radius" desc="Radius authentication">
<configsection name="params">
<configstring name="host" desc="The RADIUS host to use (IP address or
fully qualified hostname)">localhost</configstring>
<configinteger name="port" required="false" desc="The port to use on the
RADIUS server"/>
<configenum name="method" desc="The RADIUS method to use for validating
the request">PAP
<values>
<value desc="PAP">PAP</value>
<value desc="CHAP_MD5 (not supported at the moment)">CHAP_MD5</value>
<value desc="MSCHAPv1 (not supported at the moment)">MSCHAPv1</value>
<value desc="MSCHAPv2 (not supported at the moment)">MSCHAPv2</value>
</values>
</configenum>
<configstring name="nas" required="false" desc="The RADIUS NAS
identifier to use." />
<configstring name="secret" desc="The RADIUS shared secret string for the
host. The RADIUS protocol ignores all but the leading 128 bytes of the
shared secret."/>
<configinteger name="retries" required="false" desc="The maximum number
of repeated requests to make before giving up [3]"/>
<configstring name="suffix" required="false" desc="The domain name to add
to unqualified user names"/>
<configinteger name="timeout" required="false" desc="The timeout for
receiving replies from the server (in seconds) [3]"/>
</configsection>
</case>
<case name="peclsasl" desc="SASL authentication">
<configsection name="params">
<configstring name="app" desc="The name of the authenticating
application">horde</configstring>
<configstring name="service" desc="The name of the SASL service to use
when authenticating">php</configstring>
</configsection>
</case>
<case name="shibboleth" desc="Shibboleth Authentication">
<configsection name="params">
<configstring name="username_header" desc="The HTTP header holding the
username">REMOTE_USER</configstring>
<configswitch name="password_holder" desc="Where should we get the
password for hordeauth from?">
<case name="none" desc="No passwords"/>
<case name="header" desc="HTTP Header">
<configstring name="password_header" desc="The HTTP header holding the
password" required="false"></configstring>
</case>
<case name="preferences" desc="Horde Preferences">
<configstring name="password_preference" desc="The Horde preference
that contains the password" required="false"></configstring>
</case>
</configswitch>
</configsection>
</case>
<case name="smb" desc="SMB (smbauth extension) authentication">
<configsection name="params">
<configstring name="hostspec" desc="IP, DNS Name, or NetBios Name of the
SMB server to authenticate with">localhost</configstring>
<configstring name="domain" desc="The domain name to authenticate with"/>
<configstring name="group" required="false" desc="Optional group name
that the user must be a member of"/>
</configsection>
</case>
<case name="smbclient" desc="SMB (smbclient) authentication">
<configsection name="params">
<configstring name="hostspec" desc="IP, DNS Name, or NetBios Name of the
SMB server to authenticate with">localhost</configstring>
<configstring name="domain" desc="The domain name to authenticate with"/>
<configstring name="smbclient_path" desc="The location of the smbclient program">/usr/bin/smbclient</configstring>
</configsection>
</case>
<case name="sql" desc="SQL authentication">
<configsection name="params">
<configsql switchname="driverconfig" />
<configstring name="table" required="false" desc="The name of the auth
table in the database [horde_users]"/>
<configstring name="username_field" required="false" desc="The name of
the username field in the auth table [user_uid]"/>
<configstring name="password_field" required="false" desc="The name of
the password field in the auth table [user_pass]"/>
<configstring name="soft_expiration_field" required="false" desc="The
name of a field containing a UNIX timestamp. When a user logs in after
the specified time, if 'passwd' is installed, that user will be asked to
change his or her password. This feature is disabled by default."/>
<configstring name="hard_expiration_field" required="false" desc="The
name of a field containing a UNIX timestamp. A user will not be able to
log in after the specified time. This feature is disabled by default."/>
<configinteger name="soft_expiration_window" required="false"
desc="This is how often, in days, the user must change his or her
password. When the user's password is updated, the &quot;soft&quot;
expiration is set this many days in the future. If not provided,
the user's password will not expire by default."/>
<configinteger name="hard_expiration_window" required="false" desc="The
number of days in the grace period the user has to change his or her
password after it has expired. If not provided, the grace period will
not expire."/>
<configenum name="encryption" required="false" desc="The password hashing algorithm to use">ssha
<values>
<value>aprmd5</value>
<value>crypt</value>
<value>crypt-blowfish</value>
<value>crypt-des</value>
<value>crypt-md5</value>
<value>crypt-sha256</value>
<value>crypt-sha512</value>
<value>joomla-md5</value>
<value>md5-base64</value>
<value>md5-hex</value>
<value>mysql</value>
<value>plain</value>
<value>sha</value>
<value>smd5</value>
<value>ssha</value>
</values>
</configenum>
<configboolean name="show_encryption" required="false" desc="Prepend the password algorithm to the password value?">false</configboolean>
</configsection>
</case>
<case name="customsql" desc="SQL authentication w/custom-made queries">
<configsection name="params">
<configenum name="phptype" desc="The name of the database">mysql
<values>
<value desc="MySQL">mysql</value>
<value desc="MySQL (mysqli)">mysqli</value>
<value desc="ODBC">odbc</value>
<value desc="PostgreSQL">pgsql</value>
</values>
</configenum>
<configswitch name="protocol" desc="What protocol will we use to connect
to the database?">unix
<case name="unix" desc="UNIX Sockets">
<configstring name="socket" required="false" desc="Location of UNIX
socket"></configstring>
</case>
<case name="tcp" desc="TCP/IP">
<configstring name="hostspec" desc="What hostname is the database server
running on, or what is the name of the system DSN to use?">
localhost</configstring>
<configinteger name="port" required="false" desc="Port the DB is
running on, if non-standard"/>
</case>
</configswitch>
<configstring name="username" desc="What username do we authenticate to
the database server as?">horde</configstring>
<configstring name="password" required="false" desc="What password do we
authenticate to the database server with?"/>
<configstring name="database" desc="What database name/tablespace are we
using?">horde</configstring>
<configdescription>
Some special tokens can be used in the sql query. They are replaced at
the query stage:&lt;ul&gt;
&lt;li&gt;"\L" will be replaced by the user's login&lt;/li&gt;
&lt;li&gt;"\P" will be replaced by the user's password&lt;/li&gt;
&lt;li&gt;"\O" will be replaced by the old user's login (required for
update)&lt;/li&gt;&lt;/ul&gt;
Eg: "SELECT * FROM users WHERE uid = \L AND passwd = \P AND billing =
'paid'"
</configdescription>
<configstring name="query_auth" required="false" desc="Authenticate the user"/>
<configstring name="query_add" required="false" desc="Add user"/>
<configstring name="query_getpw" required="false" desc="Get a user's password"/>
<configstring name="query_update" required="false" desc="Update user"/>
<configstring name="query_resetpassword" required="false" desc="Reset a user's password"/>
<configstring name="query_remove" required="false" desc="Remove user"/>
<configstring name="query_list" required="false" desc="List users"/>
<configstring name="query_exists" required="false" desc="Check if an account exists"/>
<configenum name="encryption" desc="The password hashing algorithm to use">ssha
<values>
<value>aprmd5</value>
<value>crypt</value>
<value>crypt-blowfish</value>
<value>crypt-des</value>
<value>crypt-md5</value>
<value>crypt-sha256</value>
<value>crypt-sha512</value>
<value>joomla-md5</value>
<value>md5-base64</value>
<value>md5-hex</value>
<value>mysql</value>
<value>plain</value>
<value>sha</value>
<value>smd5</value>
<value>ssha</value>
</values>
</configenum>
<configboolean name="show_encryption" desc="Prepend the password algorithm to the password value?">false</configboolean>
</configsection>
</case>
<case name="cyrsql" desc="SQL implementation for the Cyrus IMAP server">
<configsection name="params">
<configstring name="cyradmin" desc="The username of the cyrus
administrator"/>
<configstring name="cyrpass" desc="The password for the cyrus
administrator"/>
<configstring name="cyrhost" desc="The hostname or IP address of the
server">localhost</configstring>
<configinteger name="cyrport" desc="The server port to which we will
connect. IMAP is generally 143, while IMAP-SSL is generally
993.">143</configinteger>
<configenum name="secure" desc="The encryption to use to connect to
the IMAP server.">none
<values>
<value>none</value>
<value>tls</value>
<value>ssl</value>
</values>
</configenum>
<configenum name="phptype" desc="The name of the database">mysql
<values>
<value desc="MySQL">mysql</value>
<value desc="ODBC">odbc</value>
<value desc="PostgreSQL">pgsql</value>
</values>
</configenum>
<configswitch name="protocol" desc="What protocol will we use to connect
to the database?">unix
<case name="unix" desc="UNIX Sockets">
<configstring name="socket" required="false" desc="Location of UNIX
socket"></configstring>
</case>
<case name="tcp" desc="TCP/IP">
<configinteger name="port" required="false" desc="Port the DB is
running on, if non-standard">5432</configinteger>
</case>
</configswitch>
<configstring name="hostspec" desc="What hostname is the database server
running on, or what is the name of the system DSN to use?">
localhost</configstring>
<configstring name="username" desc="What username do we authenticate to
the database server as?">horde</configstring>
<configstring name="password" required="false" desc="What password do we
authenticate to the database server with?"/>
<configstring name="database" desc="What database name/tablespace are we
using?">horde</configstring>
<configstring name="table" desc="The name of the auth table in the
database">horde_users</configstring>
<configstring name="username_field" desc="The name of the username field
in the auth table">user_uid</configstring>
<configstring name="password_field" desc="The name of the password field
in the auth table">user_pass</configstring>
<configstring name="domain_field" desc="If set to anything other than
'none' this is used as field name where domain is
stored">none</configstring>
<configenum name="encryption" desc="The password hashing algorithm to use">ssha
<values>
<value>aprmd5</value>
<value>crypt</value>
<value>crypt-blowfish</value>
<value>crypt-des</value>
<value>crypt-md5</value>
<value>crypt-sha256</value>
<value>crypt-sha512</value>
<value>md5-base64</value>
<value>md5-hex</value>
<value>plain</value>
<value>sha</value>
<value>smd5</value>
<value>ssha</value>
</values>
</configenum>
<configlist name="folders" required="false" desc="A list of folders to
create under username"/>
<configinteger name="quota" required="false" desc="The quota (in
kilobytes) to grant on the mailbox"/>
<configstring name="userhierarchy" required="false" desc="The user
hierarchy prefix."/>
<configlist name="hidden_accounts" required="false" desc="A list of accounts to
hide from the user interface">cyrus</configlist>
</configsection>
</case>
<case name="x509" desc="X509 Client Certificates">
<configsection name="params">
<configstring name="username_field" desc="The X509 field containing the username">
SSL_CLIENT_S_DN_CN</configstring>
<configswitch name="password_source" desc="Where should Horde attempt to
find user passwords?">
<case name="none" desc="Either no passwords are needed, or the
postauthenticate hook will provide them."/>
<case name="unified" desc="A single password will be used for all
users. ONLY USE THIS IF YOU KNOW WHAT YOU ARE DOING! YOUR SYSTEM MUST
BE PROPERLY SECURED!">
<configstring name="unified_password" desc="The password to use.">
</configstring>
</case>
</configswitch>
</configsection>
</case>
</configswitch>
<configsection name="params">
<configboolean name="count_bad_logins" required="false" desc="Should Horde
count the number of bad logins?">false</configboolean>
<configboolean name="login_block" required="false" desc="Allow to block
logins for certain users?">false</configboolean>
<configinteger name="login_block_count" required="false" desc="After how
many failed logins the login should be blocked? Setting 0 disables the
feature">5</configinteger>
<configinteger name="login_block_time" required="false" desc="How many
minutes should the login be blocked? Setting 0 means permanent
blocking">5</configinteger>
</configsection>
</configsection>
<configsection name="tos">
<configheader>Terms of Service Agreement</configheader>
<configstring name="file" required="false" desc="If you want to require
users to accept certain terms before they can use the system, enter the
path of the agreement file to display here."/>
</configsection>
</configtab>
<configtab name="signup" desc="Signing Up">
<configsection name="signup">
<configheader>Sign Up Settings</configheader>
<configswitch name="allow" desc="Allow non-registered users to register and
provide a link on the login screen?">false
<case name="true" desc="Yes">
<configswitch name="driver" desc="What signup driver should we
use?">
<case name="Sql" desc="SQL Database">
<configsection name="params">
<configsql switchname="driverconfig">
<configstring name="table" required="false" desc="The name of the
signup table in the database [horde_signups]"/>
</configsql>
</configsection>
</case>
</configswitch>
<configstring name="email" desc="Specify an email address, if a message
should be send to notify about new signups, including links for approving
and denying." required="false"/>
<configboolean name="approve" desc="Admin has to approve any user
submitted registration requests? (WARNING: Setting to false would mean
that every user who signs up would have automatic access to your horde
system.)" required="false">true</configboolean>
</case>
<case name="false" desc="No" />
</configswitch>
</configsection>
</configtab>
<configtab name="log" desc="Logging">
<configsection name="log">
<configheader>Logging Settings</configheader>
<configswitch name="enabled" quote="false" desc="Should Horde log errors and
other useful information?">true
<case name="true" desc="Yes">
<configenum name="priority" desc="What level of messages should we log?
Each level logs itself and all those that come before it: ALERT would
only log alerts and emergencies, but DEBUG would log everything.">NOTICE
<values>
<value desc="EMERG">EMERG</value>
<value desc="ALERT">ALERT</value>
<value desc="CRIT">CRIT</value>
<value desc="ERR">ERR</value>
<value desc="WARN">WARNING</value>
<value desc="NOTICE">NOTICE</value>
<value desc="INFO">INFO</value>
<value desc="DEBUG">DEBUG</value>
</values>
</configenum>
<configstring name="ident" required="false" desc="What identifier should
we use in the logs?">HORDE</configstring>
<configstring name="time_format" required="false" desc="What time format
should we use in the logs? (Acceptable formats are the inputs to PHP's
date() function). Leave blank to use the default."></configstring>
<configswitch name="type" desc="What log driver should we use?">file
<case name="file" desc="File">
<configstring name="name" desc="Path to the log
file">/tmp/horde.log</configstring>
<configsection name="params">
<configboolean name="append" desc="Should new log entries be appended
to an existing log file? If this is false, new log files will
overwrite existing ones.">true</configboolean>
<configswitch name="format" required="false" desc="What format should
the log entries be in?">default
<case name="custom" desc="Custom Template">
<configstring name="template" desc="The custom logging template
to use."></configstring>
</case>
<case name="default" desc="Default" />
<case name="xml" desc="XML" />
</configswitch>
</configsection>
</case>
<case name="stream" desc="PHP Stream">
<configstring name="name" desc="A valid-PHP stream interface to use
for logging."></configstring>
<configsection name="params">
<configswitch name="format" required="false" desc="What format should
the log entries be in?">default
<case name="custom" desc="Custom Template">
<configstring name="template" desc="The custom logging template
to use."></configstring>
</case>
<case name="default" desc="Default" />
<case name="xml" desc="XML" />
</configswitch>
</configsection>
</case>
<case name="syslog" desc="Syslog">
<configphp name="name" quote="false" desc="Syslog facility to use"/>
</case>
</configswitch>
</case>
<case name="false" desc="No"/>
</configswitch>
</configsection>
<configboolean name="log_accesskeys" desc="Should Horde log statistics about
used access keys? This is only useful for translators of the
UI. You also need to set the log level to at least
INFO.">false</configboolean>
</configtab>
<configtab name="prefs" desc="Preferences">
<configsection name="prefs">
<configheader>Preferences Settings</configheader>
<configinteger name="maxsize" desc="The maximum size of a preferences entry
(in bytes).">65535</configinteger>
<configswitch name="driver" desc="What preferences driver should we
use?">Sql
<case name="Nosql" desc="NoSQL Database">
<configsection name="params">
<confignosql switchname="driverconfig" />
</configsection>
</case>
<case name="Sql" desc="SQL Database">
<configsection name="params">
<configsql switchname="driverconfig">
<configstring name="table" required="false" desc="The name of the
preference table in the database [horde_prefs]"/>
</configsql>
</configsection>
</case>
<case name="File" desc="Files">
<configsection name="params">
<configstring name="directory" required="true" desc="Directory to store the preferences in."/>
</configsection>
</case>
<case name="Ldap" desc="LDAP">
<configsection name="params">
<configldap switchname="driverconfig">
<configstring name="uid" desc="The username search key for finding
preferences">uid</configstring>
</configldap>
</configsection>
</case>
<case name="Session" desc="PHP Sessions"/>
<case name="KolabImap" desc="IMAP/Kolab Server" />
<case name="Imsp" desc="IMSP Server" />
</configswitch>
</configsection>
</configtab>
<configtab name="alarms" desc="Alarms">
<configsection name="alarms">
<configheader>Alarms Settings</configheader>
<configswitch name="driver" desc="What alarm storage driver should we
use?">Sql
<case name="false" desc="None"/>
<case name="Sql" desc="SQL Database">
<configsection name="params">
<configsql switchname="driverconfig">
<configstring name="table" required="false" desc="The name of the
alarm table in the database [horde_alarms]"/>
</configsql>
<configinteger name="ttl" desc="How often should the applications be
queried for new alarms, in seconds?">300</configinteger>
</configsection>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="group" desc="Groups">
<configsection name="group">
<configheader>Groups Settings</configheader>
<configswitch name="driver" desc="What backend should we use for Horde
Groups?">Sql
<case name="Kolab" desc="Kolab">
<configsection name="params">
<configldap switchname="driverconfig">
<configstring name="gid" desc="The group search key">cn</configstring>
<configstring name="memberuid" desc="Group membership field">
memberUid</configstring>
<configswitch name="attrisdn" required="false" desc="Are the user member
attributes returned from LDAP expected to be fully qualified DNs?">false
<case name="false" desc="No"/>
<case name="true" desc="Yes">
<configldapuser/>
</case>
</configswitch>
<configlist name="newgroup_objectclass" desc="What objectclasses should
a new group be member of? These objectclasses should cover the mail and
gidnumber attributes as well as the group search key">
posixGroup,hordeGroup</configlist>
<configstring name="writedn" desc="DN used to bind for creating and
editing LDAP groups." required="false"/>
<configstring name="writepw" desc="Password for bind DN."
required="false"/>
<configsection name="search">
<configswitch name="filter_type" desc="How to specify a filter for the
group lists">objectclass
<case name="objectclass" desc="One or more objectclass filters">
<configlist name="objectclass" desc="The objectclass filter used to
search for groups. Can be a single objectclass or a list.">
posixGroup</configlist>
</case>
<case name="filter" desc="A complete LDAP filter expression">
<configstring name="filter" desc="The LDAP RFC formatted filter used
to search for groups."/>
</case>
</configswitch>
</configsection>
</configldap>
</configsection>
</case>
<case name="Ldap" desc="LDAP">
<configsection name="params">
<configldap switchname="driverconfig">
<configstring name="gid" desc="The group search key">cn</configstring>
<configstring name="memberuid" desc="Group membership field">
memberUid</configstring>
<configswitch name="attrisdn" required="false" desc="Are the user member
attributes returned from LDAP expected to be fully qualified DNs?">false
<case name="false" desc="No"/>
<case name="true" desc="Yes">
<configldapuser/>
</case>
</configswitch>
<configlist name="newgroup_objectclass" desc="What objectclasses should
a new group be member of? These objectclasses should cover the mail and
gidnumber attributes as well as the group search key">
posixGroup,hordeGroup</configlist>
<configstring name="writedn" desc="DN used to bind for creating and
editing LDAP groups." required="false"/>
<configstring name="writepw" desc="Password for bind DN."
required="false"/>
<configsection name="search">
<configswitch name="filter_type" desc="How to specify a filter for the
group lists">objectclass
<case name="objectclass" desc="One or more objectclass filters">
<configlist name="objectclass" desc="The objectclass filter used to
search for groups. Can be a single objectclass or a list.">
posixGroup</configlist>
</case>
<case name="filter" desc="A complete LDAP filter expression">
<configstring name="filter" desc="The LDAP RFC formatted filter used
to search for groups."/>
</case>
</configswitch>
</configsection>
</configldap>
</configsection>
</case>
<case name="Mock" desc="No Groups"/>
<case name="Sql" desc="SQL">
<configsection name="params">
<configsql switchname="driverconfig" />
</configsection>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="perms" desc="Permissions">
<configsection name="perms">
<configheader>Permissions Settings</configheader>
<configswitch name="driver" desc="What backend should we use for Horde
Permissions?">Sql
<case name="Null" desc="Disable Permissions"/>
<case name="Sql" desc="SQL">
<configsql switchname="driverconfig" />
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="share" desc="Shares">
<configheader>Shares Settings</configheader>
<configdescription>Shares are objects or lists that can be shared with other
users, e.g. calendars that other users can be given read or write access
to.</configdescription>
<configsection name="share">
<configheader>Allow Sharing?</configheader>
<configboolean name="no_sharing" required="false" desc="Prevent users from
editing permissions on their shares. This will keep a user from granting
other users (or guests) access to their address book, notebook, calendar,
etc.">false</configboolean>
<configboolean name="auto_create" required="false" desc="Automatically
create personal default shares for any users that don't own any
shares?">true</configboolean>
<configboolean name="world" required="false" desc="If you enable this
option, users will be able to share their resources with all (authenticated
and guest) users on the system.">true</configboolean>
<configboolean name="any_group" required="false" desc="If you enable this
option, users will be able to share their resources with any group,
regardless of whether or not they are a member. If you disable it, users
will only be able to share their resources with groups they are members
of.">false</configboolean>
<configboolean name="hidden" required="false" desc="If you enable this
option, the shares that a user has access to will NOT be displayed
automatically, but only if the user subscribed to
them.">false</configboolean>
<configheader>Share Caching</configheader>
<configdescription>Enabling share caching improves performance because the
share backend will only be queried once per session. But it also increases
the users' session sizes, and share changes won't take effect before the
users log in the next time.</configdescription>
<configboolean name="cache" required="false" desc="Enable share
caching?">false</configboolean>
<configheader>Shares Driver</configheader>
<configdescription>
You can use different driver types for the Horde Share
system. The default driver is the SQL-NG driver.
</configdescription>
<configenum name="driver" desc="What backend should we use for Horde
Shares?">Sqlng
<values>
<value desc="IMAP/Kolab">Kolab</value>
<value desc="Next-Generation SQL">Sqlng</value>
<value desc="SQL">Sql</value>
</values>
</configenum>
</configsection>
</configtab>
<configtab name="cache" desc="Caching">
<configsection name="cache">
<configheader>Caching Settings</configheader>
<configinteger name="default_lifetime" desc="How long, in seconds, should
data be cached by default?">86400</configinteger>
<configswitch name="driver" desc="If you want to enable the Horde Cache,
select a driver here. This is used to speed up portions of Horde by storing
commonly processed objects.">File
<case name="Null" desc="Don't cache any data (NOT RECOMMENDED)"/>
<case name="Apc" desc="Use the APC cache (NOT RECOMMENDED)">
<configdescription>
APC is not recommended for general purpose caching as it is not
persistent and the size of the cached data for even a small installation
(25+ users) will likely exceed the default APC storage size.
</configdescription>
<configsection name="params">
<configstring name="prefix" required="false" desc="The prefix to use for
cache entries."/>
</configsection>
</case>
<case name="File" desc="Store data in filesystem">
<configsection name="params">
<configstring name="dir" required="false" desc="The location to store the
cached files"/>
<configinteger name="sub" required="false" desc="If non-zero, the number
of subdirectories to create to store the file (see, e.g.,
http://php.net/manual/en/ref.session.php#ini.session.save-path). When
creating the directory tree, the md5sum of the cache id will be used.
Thus, each level of the tree will have up to 16 subdirectories named
[0-9a-f].">0</configinteger>
<configstring name="prefix" required="false" desc="The filename prefix to
use for the cache files."/>
</configsection>
</case>
<case name="Hashtable" desc="Use a Distributed Hash Table server">
<configsection name="params">
<configstring name="prefix" required="false" desc="The prefix to use for
cache entries."/>
</configsection>
</case>
<case name="Nosql" desc="NoSQL-based cache storage">
<configsection name="params">
<confignosql switchname="driverconfig" />
</configsection>
</case>
<case name="Sql" desc="SQL-based cache storage (NOT RECOMMENDED)">
<configdescription>
SQL is not recommended for caching as the overhead required to
store/retreive the data cancels much of the benefit of caching.
</configdescription>
<configsection name="params">
<configsql switchname="driverconfig">
<configstring name="table" required="false" desc="The name of the
cache table in the database [horde_cache]"/>
</configsql>
</configsection>
</case>
<case name="Xcache" desc="Use the xCache cache (NOT RECOMMENDED)">
<configdescription>
xCache is not recommended for general purpose caching as it is not
persistent and the size of the cached data for even a small installation
(25+ users) will likely exceed the default xCache storage size.
</configdescription>
<configsection name="params">
<configstring name="prefix" required="false" desc="The prefix to use for
cache entries."/>
</configsection>
</case>
</configswitch>
<configswitch name="use_memorycache" required="false" desc="Use a
separate memory cache driver to store data in memory? If data is not found
in this driver, we will fall back to accessing the persistent backend. This
setting has no effect if already using a memory caching backend.">
<case name="" desc="None"/>
<case name="Apc" desc="APC"/>
<case name="Eaccelerator" desc="eAccelerator"/>
<case name="Hashtable" desc="Hashtable"/>
<case name="Xcache" desc="xCache"/>
</configswitch>
</configsection>
<configheader>CSS Caching</configheader>
<configdescription>
CSS caching packages all stylesheets used in a page into a single file
sent to the browser. It also allows compression and optimization of this
file to reduce the data size. Caching reduces server load, speeds up the
user's browsing experience, and is HIGHLY RECOMMENDED.
</configdescription>
<configswitch name="cachecss" desc="Cache CSS?">false
<case name="false" desc="No">
<configsection name="cachecssparams">
<configboolean name="url_version_param" desc="Add version information to
CSS URLs?">true</configboolean>
</configsection>
</case>
<case name="true" desc="Yes">
<configsection name="cachecssparams">
<configswitch name="driver" desc="How should we store the cached data?">
<case name="filesystem" desc="Filesystem (recommended)">
<configdescription>
For filesystem caching to work, the "static" directory in the horde
base must be writable by the user the web server is running as. If
running Horde in a cluster (or behind a single web frontend), to use
filesystem caching it is best to have every PHP backend server have
access to a shared drive that is visible and mounted to the "static"
directory on the web frontend. (NOTE: if you manually change the CSS
files, you will need to manually delete the cached CSS static files to
see the changes.)
</configdescription>
</case>
<case name="horde_cache" desc="Horde Cache">
<configdescription>
&lt;strong&gt;Requires a configured Horde caching
backend.&lt;/strong&gt; This method is STRONGLY DISCOURAGED. Browsers
will likely cache this data and ignore updates, even though we append
a "cache-busting" unique version parameter to the URL. You almost
certainly want to use 'filesystem' instead.
</configdescription>
</case>
</configswitch>
<configboolean name="filemtime" desc="Expire cache if the modification
time of a CSS file has changed? This setting is useful for development
installations. It should not be used in production environments, as it
requires a filestat of every CSS file loaded on a
page">false</configboolean>
<configinteger name="lifetime" desc="Lifetime of the cached files, in
seconds.">86400</configinteger>
</configsection>
</case>
</configswitch>
<configheader>Javascript Caching</configheader>
<configdescription>
Javascript caching packages all static javascript files used in a page into
more efficient chunks to send to the browser. It also allows compression
and optimizations of this file to reduce the data size. Caching reduces
server load, speeds up the user's browsing experience, and is HIGHLY
RECOMMENDED.
</configdescription>
<configswitch name="cachejs" desc="Cache javascript?">false
<case name="false" desc="No">
<configsection name="cachejsparams">
<configboolean name="url_version_param" desc="Add version information to
javascript URLs?">true</configboolean>
</configsection>
</case>
<case name="true" desc="Yes">
<configsection name="cachejsparams">
<configswitch name="driver" desc="How should we store the cached data?">
<case name="filesystem" desc="Filesystem (recommended)">
<configdescription>
For filesystem caching to work, the "static" directory in the horde
base must be writable by the user the web server is running as. If
running Horde in a cluster (or behind a single web frontend), to use
filesystem caching it is best to have every PHP backend server have
access to a shared drive that is visible and mounted to the "static"
directory on the web frontend.
</configdescription>
</case>
<case name="horde_cache" desc="Horde Cache">
<configdescription>
&lt;strong&gt;Requires a configured Horde caching
backend.&lt;/strong&gt; This method is STRONGLY DISCOURAGED. Browsers
will likely cache this data and ignore updates, even though we append
a "cache-busting" unique version parameter to the URL. You almost
certainly want to use 'filesystem' instead.
</configdescription>
</case>
</configswitch>
<configswitch name="compress" desc="How should we compress the cached
files?">php
<case name="none" desc="No compression" />
<case name="closure" desc="Google Closure Compiler (Best compression,
slowest speed)">
<configstring name="javapath" desc="The path to the Java
application launcher.">/opt/java/jre/bin/java</configstring>
<configstring name="closurepath" desc="The path to the Closure compiler
.jar file"></configstring>
<configstring name="cmdline" required="false" desc="Any additional
command line arguments to use."></configstring>
</case>
<case name="php" desc="Built-in compressor (Medium compression, good
speed)" />
<case name="uglifyjs" desc="UglifyJS (NodeJS compressor; good
compression, good speed)">
<configstring name="uglifyjspath" desc="The path to the uglifyjs
binary"></configstring>
<configstring name="uglifyjscmdline" desc="The command line options
to use">-c</configstring>
</case>
<case name="yui" desc="YUI Compressor (Best compression, slowest
speed)">
<configstring name="javapath" desc="The path to the Java
application launcher.">/opt/java/jre/bin/java</configstring>
<configstring name="yuipath" desc="The path to the YUI compressor
.jar file"></configstring>
<configstring name="cmdline" required="false" desc="Any additional
command line arguments to use."></configstring>
</case>
</configswitch>
<configinteger name="lifetime" desc="Lifetime of the cached files, in
seconds.">604800</configinteger>
</configsection>
</case>
</configswitch>
<configheader>Theme Caching</configheader>
<configdescription>
Theme caching optimizes display of themed elements. Caching reduces
server load (specifically by dramatically reducing filesystem access), and
is HIGHLY RECOMMENDED. &lt;strong&gt;Requires a configured Horde caching
backend.&lt;/strong&gt;
</configdescription>
<configswitch name="cachethemes" desc="Cache themes?">false
<case name="false" desc="No" />
<case name="true" desc="Yes">
<configsection name="cachethemesparams">
<configswitch name="check" desc="The method to use to check for updated
theme information.">appversion
<case name="appversion" desc="Application versions">
<configdescription>
The theme cache will be updated only when a new Horde version is
installed. This is the RECOMMENDED setting for most installations.
</configdescription>
</case>
<case name="none" desc="None">
<configdescription>
The theme cache is never checked for consistency. Once created, it
will be used until the cache entry expires.
</configdescription>
</case>
</configswitch>
<configinteger name="lifetime" desc="Lifetime of the cached files, in
seconds.">604800</configinteger>
</configsection>
</case>
</configswitch>
</configtab>
<configtab name="lock" desc="Locking">
<configsection name="lock">
<configheader>Locking Settings</configheader>
<configswitch name="driver" desc="If you want to enable resource locking
you must choose a driver here.">Sql
<case name="Null" desc="Disable Horde Locks"/>
<case name="Nosql" desc="NoSQL-based locking">
<configsection name="params">
<confignosql switchname="driverconfig" />
</configsection>
</case>
<case name="Sql" desc="SQL-based locking">
<configsection name="params">
<configsql switchname="driverconfig">
<configstring name="table" required="false" desc="The name of the
locking table in the database [horde_locks]"/>
</configsql>
</configsection>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="token" desc="Tokens">
<configsection name="token">
<configheader>Tokens Settings</configheader>
<configinteger name="timeout" required="false" desc="The period (in
seconds) after which an id is purged"/>
<configswitch name="driver" desc="If you want to enable Form Tokens, select
a driver here. This is used by the Horde::Form:: API and some other parts
of Horde to ensure that a form can only be submitted once.">Sql
<case name="Null" desc="Disable Form Tokens"/>
<case name="File" desc="Local filesystem token storage">
<configsection name="params">
<configstring name="token_dir" required="false" desc="The directory where
to keep token files"/>
</configsection>
</case>
<case name="Nosql" desc="NoSQL-based token storage">
<configsection name="params">
<confignosql switchname="driverconfig" />
</configsection>
</case>
<case name="Sql" desc="SQL-based token storage">
<configsection name="params">
<configsql switchname="driverconfig">
<configstring name="table" required="false" desc="The name of the
tokens table in the database [horde_tokens]"/>
</configsql>
</configsection>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="history" desc="History">
<configsection name="history">
<configheader>History Settings</configheader>
<configswitch name="driver" desc="If you want to enable history tracking,
select a driver here. This is required by various subsystems.">Sql
<case name="None" desc="Disable history"/>
<case name="Nosql" desc="NoSQL-based history storage">
<configsection name="params">
<confignosql switchname="driverconfig" />
</configsection>
</case>
<case name="Sql" desc="SQL-based history storage">
<configsection name="params">
<configsql switchname="driverconfig" />
</configsection>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="dav" desc="DAV">
<configsection name="davstorage">
<configheader>DAV Settings</configheader>
<configswitch name="driver" desc="If you want to use CalDAV or CardDAV,
select a driver here. Please note that History system needs to be enabled
too.">Sql
<case name="Null" desc="Disable CalDAV/CardDAV support"/>
<case name="Sql" desc="SQL-based metadata storage">
<configsection name="params">
<configsql switchname="driverconfig"/>
</configsection>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="mailer" desc="Mailer">
<configsection name="mailer">
<configheader>Mailer Settings</configheader>
<configswitch name="type" desc="What method should we use for sending
mail?">sendmail
<case name="null" desc="Disable mailing" />
<case name="sendmail" desc="Local sendmail binary">
<configsection name="params">
<configstring name="sendmail_path" required="false" desc="The location
of the sendmail binary on the filesystem
[/usr/sbin/sendmail]">/usr/lib/sendmail</configstring>
<configstring name="sendmail_args" required="false" desc="Any extra
parameters to pass to the sendmail or sendmail wrapper
binary">-oi</configstring>
<configstring name="sendmail_eol" required="false" desc="The end-of-line
(EOL) sequence to use when piping the message to the sendmail binary.
It is not possible to reliably auto-configure sendmail, so if your
messages are being sent incorrectly, you should adjust this value (if
blank, the system default is used)."></configstring>
</configsection>
</case>
<case name="smtp" desc="SMTP server (HIGHLY RECOMMENDED)">
<configsection name="params">
<configstring name="host" required="false" desc="The server to connect
to [localhost]"/>
<configinteger name="port" required="false" desc="The port to connect
to [25]. This is HIGHLY RECOMMENDED to be 587, the mail submission port.
(RFC 6409/STD 72; sending mail via port 25 is DEPRECATED.)"/>
<configenum name="secure" desc="The encryption to use to connect to
the SMTP server.">tls
<values>
<value>none</value>
<value>tls</value>
<value>ssl</value>
</values>
</configenum>
<configstring name="localhost" required="false" desc="The local hostname
/ domain [localhost]"/>
<configswitch name="auth" desc="Authenticate to SMTP server?">false
<case name="false" desc="No" />
<case name="true" desc="Yes">
<configdescription>SMTP Authentication requires a TLS connection.
There is no need to configure the secure connection as it is always
used by Horde.</configdescription>
<configstring name="username" required="false" desc="The master
username to use for SMTP auth. Will be used if username_auth is false
OR for unauthenticated Horde accesses."/>
<configboolean name="username_auth" required="false" desc="If
authenticated, use the Horde authentication
username?">true</configboolean>
<configstring name="password" required="false" desc="The master
password to use for SMTP auth. Will be used if password_auth is false
OR for unauthenticated Horde accesses."/>
<configboolean name="password_auth" required="false" desc="If
authenticated, use the Horde authentication
password?">true</configboolean>
</case>
</configswitch>
<configboolean name="lmtp" required="false" desc="Is this an LMTP
(Local Mail Transfer Protocol) server?">false</configboolean>
</configsection>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="vfs" desc="Virtual File Storage">
<configsection name="vfs">
<configheader>Virtual File Storage Settings</configheader>
<configvfs baseconfig="true" switchname="type" default="Sql"/>
</configsection>
</configtab>
<configtab name="session" desc="Session Handler">
<configsection name="sessionhandler">
<configheader>Session Handler Settings</configheader>
<configdescription>
&lt;strong&gt;Unless you are running Horde on a PHP cluster, there is NO
reason to use any session handler backend other than Builtin (i.e. session
data stored on local filesystem).&lt;/strong&gt;
</configdescription>
<configswitch name="type" desc="What sessionhandler driver should we
use?">Builtin
<case name="Builtin" desc="Use the default PHP session handler (file-based
by default)">
<configdescription>
If you have configured a custom session extension in php.ini (such as
native memcache sessions) then you should use this option. Horde doesn't
force PHP to use the file-based session handler, so your php.ini
settings settings will be deferred to.
</configdescription>
</case>
<case name="External" desc="Use your own custom session handler">
<configsection name="params">
<configstring name="open" desc="Your open() function"/>
<configstring name="close" desc="Your close() function"/>
<configstring name="read" desc="Your read() function"/>
<configstring name="write" desc="Your write() function"/>
<configstring name="destroy" desc="Your destroy() function"/>
<configstring name="gc" desc="Your gc() function"/>
</configsection>
</case>
<case name="File" desc="Filesystem storage">
<configsection name="params">
<configstring name="path" desc="The path to save the session files
in.">/tmp/</configstring>
</configsection>
</case>
<case name="HashTable" desc="Distributed Hash Table">
<configsection name="params">
<configswitch name="track" required="false" desc="Keep track of active
session information? Tracking requires extra load to maintain.">false
<case name="false" desc="No" />
<case name="true" desc="Yes" />
</configswitch>
</configsection>
</case>
<case name="Nosql" desc="NoSQL Database">
<configsection name="params">
<confignosql switchname="driverconfig" />
</configsection>
</case>
<case name="Sql" desc="SQL Database">
<configsection name="params">
<configsql switchname="driverconfig">
<configstring name="table" required="false" desc="The name of the
preference table in the database [horde_sessionhandler]"/>
</configsql>
</configsection>
</case>
</configswitch>
<configboolean name="hashtable" desc="Use a distributed hash table to cache
session information?">false</configboolean>
</configsection>
</configtab>
<configtab name="proxy" desc="HTTP Proxy">
<configsection name="http">
<configsection name="proxy">
<configheader>HTTP Proxy Settings</configheader>
<configdescription>
If you need to use a proxy for fetching HTTP resources (feeds,
security keys, external calendars or free/busy information,
etc.), configure it here.
</configdescription>
<configstring name="proxy_host" required="false" desc="Proxy host"/>
<configinteger name="proxy_port" required="false" desc="Proxy port"/>
<configstring name="proxy_user" required="false" desc="Proxy user if
necessary"/>
<configstring name="proxy_pass" required="false" desc="Proxy password"/>
</configsection>
</configsection>
</configtab>
<configtab name="spell" desc="Spell Checker">
<configsection name="spell">
<configheader>Spell Checker Settings</configheader>
<configswitch name="driver" required="false" desc="Choose a Spell Checking
backend">
<case name="" desc="None" />
<case name="aspell" desc="aspell (command line)">
<configsection name="params">
<configstring name="path" required="false" desc="Enter the location of
the aspell binary" />
</configsection>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="gnupg" desc="GnuPG">
<configsection name="gnupg">
<configheader>GnuPG Settings</configheader>
<configstring name="path" required="false" desc="If you want users to have
the option of using the GNU Privacy Guard program to decrypt/encrypt PGP
files, enter the location of the 'gpg' binary here. If this is empty this
feature will be disabled. Additional command line arguments, if needed
locally (e.g. extensions), can be added at the end of this entry."/>
<configmultienum name="keyserver" required="false" desc="The address
of the public PGP keyserver(s) to use.">pool.sks-keyservers.net
<values>
<value>pool.sks-keyservers.net</value>
<value>subkeys.pgp.net</value>
<value>pgp.mit.edu</value>
</values>
</configmultienum>
<configinteger name="timeout" required="false" desc="The timeout for
connecting to the PGP keyserver. Timeouts are not supported on all
systems.">10</configinteger>
</configsection>
</configtab>
<configtab name="openssl" desc="OpenSSL">
<configsection name="openssl">
<configheader>OpenSSL Settings</configheader>
<configstring name="cafile" required="false" desc="The location of the root
certificates bundle, e.g. /etc/ssl/certs. See
http://www.php.net/manual/en/openssl.cert.verification.php for
details."/>
<configstring name="path" required="false" desc="The location of the OpenSSL
binary on your system, e.g. /usr/bin/openssl. This program is REQUIRED to
import personal S/MIME certificate information, as there is no native PHP
function that can read pkcs12 files."/>
</configsection>
</configtab>
<configtab name="themes" desc="Themes">
<configheader>Theme Settings</configheader>
<configboolean name="nobase64_img" required="false" desc="Always send full
URLs for image data? By default, Horde will send image data within the page
itself if the browser supports it. This eliminates the need for additional
server connections to grab the image data, at the expense of slightly
larger page sizes.">false</configboolean>
</configtab>
<configtab name="image" desc="Image Manipulation">
<configsection name="image">
<configheader>Image Manipulation Settings</configheader>
<configswitch name="driver" description="What driver should we use for
manipulating images?">false
<case name="false" desc="None"/>
<case name="Imagick" desc="The PECL Imagick Library (recommended)"/>
<case name="Im" desc="Imagemagick">
<configstring name="convert" desc="Path to the 'convert' binary"/>
<configstring name="identify" desc="Path the 'identify' binary"/>
</case>
<case name="Gd" desc="The PHP GD2 extensions (not recommended)"/>
</configswitch>
</configsection>
<configsection name="exif" desc="Image Metadata">
<configheader>Image Metadata Driver Settings</configheader>
<configswitch name="driver" description="What driver should we use for
obtaining image metadata?">Bundled
<case name="Exiftool" desc="Exiftool (recommended)">
<configsection name="params">
<configstring name="exiftool" desc="Path to the exiftool binary on your
system"></configstring>
</configsection>
</case>
<case name="Php" desc="Native PHP functions" />
<case name="Bundled" desc="Bundled implementation in PHP" />
</configswitch>
</configsection>
</configtab>
<configtab name="mime" desc="MIME Detection">
<configsection name="mime">
<configheader>MIME Detection Settings</configheader>
<configstring name="magic_db" required="false" desc="Location of the MIME
magic database. This only needs to be set if PHP cannot auto-determine the
value (the output from the test script will clearly indiciate if this is
an issue)."/>
</configsection>
</configtab>
<configtab name="geoip" desc="Country Lookup">
<configsection name="geoip">
<configheader>Country Lookup Settings</configheader>
<configstring name="datafile" required="false" desc="Horde, by default, can
do Hostname -&gt; Country lookup using the top level domain (e.g. 'uk',
'de') of the hostname. However, many popular top level domains
(e.g. 'com', 'net') span more than one country. In these instances, Horde
can use the MaxMind GeoIP Hostname to Country lookup to try to determine
the correct country. To activate this functionality, the geoip PECL
extension must be installed. If that extension doesn't exist, Horde can
use a PHP only method of querying the database if the GeoIP.dat country
database is present on your local system. This file can be downloaded
free of charge from http://www.maxmind.com/download/geoip/database/. If
this database is present, specify the full path name to the database below.
If empty, the GeoIP lookup will not be performed."/>
</configsection>
</configtab>
<configtab name="timezone" desc="Timezone Lookup">
<configsection name="timezone">
<configheader>Timezone Lookup Settings</configheader>
<configstring name="location" required="false" desc="Horde may
lookup timezone information from a global timezone database, also
known as Olson database. You can enter any http://, ftp:// or
file:// location
here.">ftp://ftp.iana.org/tz/tzdata-latest.tar.gz</configstring>
</configsection>
</configtab>
<configtab name="problems" desc="Problem Reporting">
<configsection name="problems">
<configheader>Problem Reporting Settings</configheader>
<configswitch name="tickets" desc="If a ticket system with a
tickets/addTicket API method is present, should we create tickets for
problem reports instead of emailing them?">false
<case name="true" desc="Yes">
<configphp name="ticket_params" desc="Enter as a PHP array any
additional arguments for the created ticket (queue, state, priority,
etc). Example for Whups: array('queue' => 2, 'state' => 1, 'priority' => 1,
'type' => 1). You will need to look up the appropriate IDs in Whups's
database, or whatever is appropriate for the ticket system you are
using.">array()</configphp>
</case>
<case name="false" desc="No">
<configstring name="email" desc="Where should problem report emails be
sent?">webmaster@example.com</configstring>
<configstring name="maildomain" desc="If Horde cannot determine a user's
email address, this domain will be appended to their
username.">example.com</configstring>
<configstring name="username" required="false" desc="If requiring SMTP
authentication without a global SMTP user (in section &quot;Mailer&quot;
and allowing problem reporting for not authenticated users (in section
&quot;Menu Settings&quot;), what username should be use for SMTP
authentication?"/>
<configstring name="password" required="false" desc="The password to use"/>
</case>
</configswitch>
<configboolean name="attachments" required="false" desc="Allow users to
upload file attachments to the problem report?">true</configboolean>
</configsection>
</configtab>
<configtab name="menu" desc="Menu">
<configheader>Menu Settings</configheader>
<configsection name="menu">
<configsection name="links">
<configenum name="help" desc="Should we display help links in the
menu?">all
<values>
<value desc="All users">all</value>
<value desc="Authenticated users">authenticated</value>
<value desc="Never">never</value>
</values>
</configenum>
<configenum name="prefs" desc="Should we display preferences links in the
menu? You still need to configure a preference backend in the
&quot;Preferences&quot; section.">authenticated
<values>
<value desc="All users">all</value>
<value desc="Authenticated users">authenticated</value>
<value desc="Never">never</value>
</values>
</configenum>
<configenum name="problem" desc="Should we display problem reporting links
in the menu?">all
<values>
<value desc="All users">all</value>
<value desc="Authenticated users">authenticated</value>
<value desc="Never">never</value>
</values>
</configenum>
<configenum name="login" desc="Should we display a login link in the menu
when not logged in?">all
<values>
<value desc="All users">all</value>
<value desc="Never">never</value>
</values>
</configenum>
<configenum name="logout" desc="Should we display a logout link in the
menu when logged in?">authenticated
<values>
<value desc="Authenticated users">authenticated</value>
<value desc="Never">never</value>
</values>
</configenum>
<configenum name="login" desc="Should we display a login link in the menu
when not logged in?">all
<values>
<value desc="All users">all</value>
<value desc="Never">never</value>
</values>
</configenum>
<configenum name="logout" desc="Should we display a logout link in the
menu when logged in?">authenticated
<values>
<value desc="Authenticated users">authenticated</value>
<value desc="Never">never</value>
</values>
</configenum>
</configsection>
</configsection>
</configtab>
<configtab name="block" desc="Portal Blocks">
<configsection name="portal">
<configheader>Portal Blocks Settings</configheader>
<configmultienum name="fixed_blocks" required="false" desc="Which blocks
should always be displayed in the portal?">
<values>
<configspecial application="horde" name="blocks" />
</values>
</configmultienum>
</configsection>
<configheader>Fortune Configuration</configheader>
<configsection name="fortune">
<configstring name="exec_path" required="false" desc="Path to fortune
executable, e.g. /usr/games/fortune"/>
</configsection>
<configheader>Account Info Configuration</configheader>
<configsection name="accounts">
<configswitch name="driver" desc="What driver should we use?">null
<case name="null" desc="None"/>
<case name="localhost" desc="Localhost">
<configsection name="params">
<configstring name="quota_path" desc="Path to the quota program">
/usr/bin/quota</configstring>
<configstring name="grep_path" desc="Path to the grep program">
/bin/grep</configstring>
<configboolean name="translateMountPoint" desc="Should we translate home
directories to mount point device names?">false</configboolean>
<configstring name="translationTable" desc="File to translate directory
names to mount point device names?">/etc/mtab</configstring>
</configsection>
</case>
<case name="finger" desc="Finger">
<configsection name="params">
<configstring name="finger_path" desc="Path to the finger
program">/usr/bin/finger</configstring>
<configstring name="host" desc="Host to request finger information
from" required="false"/>
</configsection>
</case>
<case name="ldap" desc="LDAP">
<configsection name="params">
<configldap switchname="driverconfig">
<configstring name="attr" desc="LDAP attribute to search on">
uid</configstring>
<configboolean name="strip" desc="Strip domain from user
name?">false</configboolean>
</configldap>
</configsection>
</case>
<case name="kolab" desc="Kolab (LDAP)">
<configsection name="params">
<configdescription>This will use the parameters set in the Kolab
Groupware Server tab. You must enable Kolab integration for this to
work.</configdescription>
<configstring name="attr" desc="LDAP attribute to search
on">uid</configstring>
<configboolean name="strip" desc="Strip domain from user
name?">false</configboolean>
</configsection>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="user" desc="User Capabilities and Constraints">
<configsection name="user">
<configheader>User Capabilities and Constraints</configheader>
<configboolean name="verify_from_addr" desc="If users are adding new From:
addresses to their identities, should we send them a confirmation message
to verify that the email address is really theirs?">false</configboolean>
<configswitch name="select_view" desc="Allow user to select the application
view mode on login?">true
<case name="true" desc="Yes"/>
<case name="false" desc="No">
<configenum name="force_view" desc="Force an application view to be used
for all users?">
<values>
<value desc="None (use user's browser and application
preferences)"></value>
<value desc="Basic">basic</value>
<value desc="Dynamic">dynamic</value>
<value desc="Mobile">mobile</value>
<value desc="Smartphone">smartmobile</value>
</values>
</configenum>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="api" desc="API Keys">
<configsection name="api">
<configheader>API Keys Settings</configheader>
<configstring name="googlemaps" desc="Google Maps API Key"
required="false"/>
<configstring name="googlesafebrowsing" desc="Google Safe Browsing API Key"
required="false"/>
<configstring name="googlesearch" desc="Google AJAX Search API Key"
required="false"/>
<configstring name="bing" desc="Bing Maps API Key" required="false" />
</configsection>
<configsection name="facebook">
<configheader>Facebook Integration Settings</configheader>
<configdescription>If you want to allow your users to interact with their
Facebook profiles, and you've set up the necessary settings on Facebook, you
can enter the key and secret here. See
http://wiki.horde.org/Doc/Admin/Config/Horde/Facebook for
details.</configdescription>
<configswitch name="enabled">false
<case name="false" desc="Disabled" />
<case name="true" desc="Enabled">
<configstring name="id" desc="Application API ID"></configstring>
<configstring name="secret" desc="Application Secret"></configstring>
</case>
</configswitch>
</configsection>
<configsection name="twitter">
<configheader>Twitter Integration Settings</configheader>
<configdescription>If you want to allow your users to interact with their
Twitter account, enable this section. You must setup an application on
Twitter and obtain the OAuth secret and key from Twitter. See
http://wiki.horde.org/Doc/Admin/Config/Horde/Twitter for details.
</configdescription>
<configswitch name="enabled">false
<case name="false" desc="Disabled" />
<case name="true" desc="Enabled">
<configstring name="key" required="false" desc="OAuth Consumer Key:"></configstring>
<configstring name="secret" required="false" desc="OAuth Consumer Secret:"></configstring>
</case>
</configswitch>
</configsection>
<configheader>Url Shortening</configheader>
<configenum name="urlshortener" desc="Should Horde use a URL shortening
service? This will be used when submitting URLs to social network providers.">
<values>
<value desc="None">false</value>
<value desc="TinyUrl">TinyUrl</value>
</values>
</configenum>
<configsection name="weather">
<configheader>Weather Services</configheader>
<configdescription>If you want to provide weather information to your users
you must select a provider and provide your API keys.</configdescription>
<configswitch name="provider">false
<case name="false" desc="None" />
<case name="WeatherUnderground" desc="Weather Underground - Recommended, but relatively low daily limits for free accounts.">
<configsection name="params">
<configstring name="key" desc="API Key. For information on registration and obtaining an API
key for this driver, see http://www.wunderground.com/weather/api/.">
</configstring>
<configinteger name="lifetime" desc="Lifetime of the cached weather information, in seconds.">21600
</configinteger>
</configsection>
</case>
<case name="Wwo" desc="World Weather Online API. Free, requires registration.">
<configsection name="params">
<configstring name="key" desc="API Key. For information on registration
and obtaining an API key for this driver, see
http://worldweatheronline.com"></configstring>
<configenum name="apiversion" desc="Select the API version to use.
See your WWO registration details if you are not sure which to choose.">1
<values>
<value>1</value>
<value>2</value>
</values>
</configenum>
<configinteger name="lifetime" desc="Lifetime of the cached weather information, in seconds.">21600
</configinteger>
</configsection>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="imap" desc="IMAP Server">
<configsection name="imap">
<configheader>IMAP Server Settings</configheader>
<configdescription>
If you intend to store user data like shares and groupware data on an IMAP
server then you will need to ensure that the following fields correspond to
your IMAP server setup. The IMAP groupware storage will use version 2 of
the Kolab XML format. See http://wiki.kolab.org/Kolab_Format_Intro for
details.
</configdescription>
<configswitch name="enabled" quote="false" desc="Use an IMAP server?">false
<case name="false" desc="Disabled" />
<case name="true" desc="Enabled">
<configheader>IMAP Server Settings</configheader>
<configstring name="server" desc="Server
address">localhost</configstring>
<configinteger name="port" desc="Server port">143</configinteger>
<configenum name="secure" desc="The encryption to use to connect to the
IMAP server.">tls
<values>
<value>none</value>
<value>tls</value>
<value>ssl</value>
</values>
</configenum>
<configstring name="maildomain" desc="Default
maildomain">example.com</configstring>
<configboolean name="cache_folders" desc="Cache IMAP folders?"
required="true">true</configboolean>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="imsp" desc="IMSP Server">
<configsection name="imsp">
<configheader>IMSP Server Settings</configheader>
<configdescription>If you plan to use any of Horde's IMSP server support,
enable this option and configure the server settings below. Note that you
must still configure/enable specific IMSP support in the appropriate
section.</configdescription>
<configswitch name="enabled">false
<case name="false" desc="Disabled" />
<case name="true" desc="Enabled">
<configheader>IMSP Server Settings</configheader>
<configstring name="server" desc="Server Address:">localhost</configstring>
<configstring name="port" desc="Server port:">406</configstring>
<configswitch name="auth_method" desc="The authentication method to
use">Plaintext
<case name="Plaintext" desc="Plaintext" />
<case name="CramMd5" desc="CRAM-MD5" />
<case name="Imtest" desc="Cyrus imtest">
<configstring name="socket" desc="Path to the directory that will hold
the socket. (The socket will be named 'imsp_username.sck').">
/tmp/</configstring>
<configstring name="command" desc="Path to imtest binary">
/cyrus/usr/cyrus/bin/imtest</configstring>
<configenum name="auth_mechanism" description="What authentication
method do you want to use with the imtest utility?">
<values>
<value desc="Plaintext (LOGIN)">LOGIN</value>
<value desc="GSSAPI">gssapi</value>
</values>
</configenum>
</case>
</configswitch>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="kolab" desc="Kolab Server">
<configsection name="kolab">
<configheader>Kolab Server Settings</configheader>
<configdescription>
&lt;strong&gt;*** IF YOU HAVE NO IDEA WHAT KOLAB IS THEN YOU CAN SAFELY
IGNORE THIS TAB ***&lt;/strong&gt;&lt;br /&gt;
Kolab is in no way required for normal Horde usage. If, however, you
intend to use Horde as a webclient for Kolab then you will need to ensure
that the following fields correspond to those required by your Kolab
installation. You can find some of the required values in the
&lt;code&gt; $KOLAB_ROOT/etc/kolab/kolab.conf&lt;/code&gt; configuration
file. Please note that the old iCal/vCard storage format has been dropped
in favour of the new XML storage format &amp;amp; IMAP folder annotations;
subsequently the Horde Kolab modules will only work with version 2 of the
Kolab server.&lt;br /&gt;
If you would like to find out more about Kolab then please visit the Kolab
community website at http://www.kolab.org/
</configdescription>
<configswitch name="enabled" quote="false" desc="Horde/Kolab integration
status">false
<case name="false" desc="Disabled" />
<case name="true" desc="Enabled">
<configheader>Kolab LDAP Server Settings</configheader>
<configsection name="ldap">
<configstring name="server" desc="Server
address:">localhost</configstring>
<configinteger name="port" desc="Server port:">389</configinteger>
<configstring name="basedn" desc="Base
DN:">dc=example,dc=com</configstring>
<configstring name="phpdn" desc="Search
DN:">cn=nobody,cn=internal,dc=example,dc=com</configstring>
<configstring name="phppw" desc="Search Password:"/>
</configsection>
<configheader>Kolab Cyrus IMAP Server Settings</configheader>
<configsection name="imap">
<configstring name="server" desc="Server
address:">localhost</configstring>
<configinteger name="port" desc="Server port:">143</configinteger>
<configinteger name="sieveport" desc="Sieve port:">2000</configinteger>
<configstring name="maildomain" desc="Default
maildomain:">example.com</configstring>
<configboolean name="cache_folders" desc="Cache IMAP folders:"
required="true">true</configboolean>
</configsection>
<configheader>Kolab SMTP Server Settings</configheader>
<configsection name="smtp">
<configstring name="server" desc="Server
address:">localhost</configstring>
<configinteger name="port" desc="Server port:">25</configinteger>
</configsection>
<configheader>Kolab Free/Busy Application Settings</configheader>
<configsection name="freebusy">
<configdescription>
Enter the leading part of the URL to the Kolab Free/Busy
application here. This will usually be
"https://localhost/freebusy" but if you installed it so that
you reach the application at "https://freebusy.example.org"
then you would enter "https://freebusy.example.org". The URL
"https://freebusy.example.org/freebusy" would thus need the
setting "https://freebusy.example.org/freebusy".
</configdescription>
<configstring name="server" desc="Application
address:">https://localhost/freebusy</configstring>
</configsection>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="hashtable" desc="Distributed Hash Table">
<configsection name="hashtable">
<configdescription>A distributed hash table is a way of sharing data across
multiple servers by associating a piece of data with a static key. It is
useful for cache-like operations, since it is usually much faster to set and
retrieve the data from the hash table than the underlying data storage
driver.</configdescription>
<configswitch name="driver" desc="What backend should we use for the
distributed hash table?">none
<case name="none" desc="None" />
<case name="Memcache" desc="Memcache Server">
<configsection name="params">
<configlist name="hostspec" required="false" desc="What hostname(s) is
the memcache server(s) running on, or what is the name of the system
DSN(s)? Specify multiple servers by separating with
commas.">localhost</configlist>
<configlist name="port" required="false" desc="Port(s) the memcache
server(s) are running on. If more than one host is used, specify ports
for respective servers, separated by commas.">11211</configlist>
<configlist name="weight" required="false" desc="The weight to give each
memcache server. If more than one host is used, specify weights
for respective servers, separated by commas."></configlist>
<configboolean name="persistent" required="false" desc="Enable
persistent connections to server(s).">false</configboolean>
<configswitch name="compression" quote="false" desc="Enable compression
when storing entries on server.">false
<case name="false" desc="No" />
<case name="true" desc="Yes">
<configinteger name="c_threshold" required="false" desc="The threshold
length before compressing data.">0</configinteger>
</case>
</configswitch>
<configphp name="prefix" required="false" desc="Prefix to use for the
memcache keys. PHP expressions are allowed."></configphp>
<configphp name="large_items" required="false" desc="Memcache natively
supports data of limited length only (default: 1 MB). If this option is
true, Horde will transparently work around this
limitation.">true</configphp>
</configsection>
</case>
<case name="Predis" desc="Redis Server">
<configsection name="params">
<configswitch name="protocol" desc="Protocol used to connect to the
Redis server?">tcp
<case name="unix" desc="UNIX Sockets">
<configstring name="socket" required="true" desc="Location of UNIX
socket"/>
</case>
<case name="tcp" desc="TCP/IP">
<configlist name="hostspec" required="false" desc="Hostname(s) the
Redis server(s) are running on, or the name of the system DSN(s).
Specify multiple servers by separating with
commas.">localhost</configlist>
<configlist name="port" required="false" desc="Port(s) the Redis
server(s) are running on. If more than one host is used, specify ports
for respective servers, separated by commas.">6379</configlist>
<configswitch name="replication" desc="Replication Protocol">none
<case name="none" desc="None" />
<case name="sentinel" desc="Sentinel">
<configstring name="service" required="true" desc="Name of the Service">mymaster</configstring>
</case>
</configswitch>
</case>
</configswitch>
<configstring name="password" required="false" desc="Password to
authenticate to the Redis server with."/>
<configboolean name="persistent" required="false" desc="Enable
persistent connections to Redis server(s)?">false</configboolean>
</configsection>
</case>
</configswitch>
</configsection>
</configtab>
<configtab name="activesync" desc="ActiveSync">
<configsection name="activesync">
<configdescription>The use of ActiveSync in the United States is PROHIBITED
due to patent issues. If you are NOT in the United States, or you have a
license to use ActiveSync, you may enable ActiveSync below and create an
alias on your webserver to redirect /Microsoft-Server-ActiveSync to
/horde/rpc.php. See http://wiki.horde.org/ActiveSync for more
information. Please note that History system needs to be enabled too.
</configdescription>
<configswitch name="enabled" quote="false" desc="Enable ActiveSync server?">false
<case name="false" desc="Disabled" />
<case name="true" desc="Enabled">
<configheader>Storage</configheader>
<configdescription>ActiveSync needs to store information about device
properties and state data such as syncronization keys and hierarchy data.
Choose the storage backend to use.</configdescription>
<configswitch name="storage">Sql
<case name="Nosql" desc="NoSQL Database">
<configsection name="params">
<confignosql switchname="driverconfig" />
</configsection>
</case>
<case name="Sql" desc="SQL Database">
<configsection name="params">
<configsql switchname="driverconfig" />
</configsection>
</case>
</configswitch>
<configheader>Capabilities</configheader>
<configboolean name="emailsync" desc="Enable Email support?">true
</configboolean>
<configenum name="version" desc="What is the highest version of EAS that
Horde should support? All versions are backwards compatible so selecting
a higher version also includes support for the lower versions as well. Set
to EAS 14.1 unless you have a good reason not to.">14.1
<values>
<value desc="Exchange 2003 (EAS 2.5)">2.5</value>
<value desc="Exchange 2007 (EAS 12.0)">12</value>
<value desc="Exchange 2007sp1 (EAS 12.1)">12.1</value>
<value desc="Exchange 2010sp1 (EAS 14.0)">14</value>
<value desc="Exchange 2010sp2 (EAS 14.1)">14.1</value>
</values>
</configenum>
<configheader>Authentication</configheader>
<configdescription>ActiveSync can be configured to authenticate against
Horde using either HTTP Basic authentication, X509 client certificates, or
both. HTTP Basic will authenticate the credentials passed from the client
against the configured Horde authentication backend. If client certificates
are used you will need to properly configure your webserver for this as
well as provide some mechanism for using hordeauth with the IMAP server.
See http://wiki.horde.org/ActiveSync for more details on client certificate
authentication. If selecting both basic and client certificates, make sure
you are not already using client certificate authentication in Horde; if
client certificates are used for general Horde authentication then they
must be used here as well. If unsure, select Basic. </configdescription>
<configsection name="auth">
<configswitch name="type" desc="Select the authentication methods that
should be supported.">basic
<case name="basic" desc="HTTP Basic"/>
<case name="cert" desc="Client Certificates">
<configsection name="params">
<configstring name="username_field" desc="The X509 field containing the username">
SSL_CLIENT_S_DN_CN</configstring>
<configswitch name="password_source" desc="Where should Horde attempt to
find user passwords?">
<case name="none" desc="Either no passwords are needed, or the
postauthenticate hook will provide them."/>
<case name="unified" desc="A single password will be used for all
users. ONLY USE THIS IF YOU KNOW WHAT YOU ARE DOING! YOUR SYSTEM MUST
BE PROPERLY SECURED!">
<configstring name="password" desc="The password to use.">
</configstring>
</case>
</configswitch>
</configsection>
</case>
<case name="basic_cert" desc="HTTP Basic with Client Certificates">
<configsection name="params">
<configstring name="username_field" desc="The X509 field containing the username">
SSL_CLIENT_S_DN_CN</configstring>
<configswitch name="password_source" desc="Where should Horde attempt to
find user passwords?">
<case name="none" desc="Either no passwords are needed, or the
postauthenticate hook will provide them."/>
<case name="unified" desc="A single password will be used for all
users. ONLY USE THIS IF YOU KNOW WHAT YOU ARE DOING! YOUR SYSTEM MUST
BE PROPERLY SECURED!">
<configstring name="password" desc="The password to use.">
</configstring>
</case>
</configswitch>
</configsection>
</case>
</configswitch>
</configsection>
<configheader>Autodiscovery</configheader>
<configenum name="autodiscovery" desc="Some devices attempt to use an
Autodiscovery service to configure the device's account using only the
user's email address and password. For this to work you must create an
alias on your webserver to point /autodiscover/autodiscover.xml to
/horde/rpc.php. Also, Horde must be able to determine the user's username
given the email address. Set the method you want Horde to use to attempt to
determine this below. If this fails, the device will fall back to requiring
manual account configuration. See http://wiki.horde.org/ActiveSync for more
information">
<values>
<value desc="Use the full email address as the username">full</value>
<value desc="Use only the username - everything after and including the
first @ will be stripped.">user</value>
<value desc="Use a custom hook. You must create this hook in the
hooks.php file.">hook</value>
</values>
</configenum>
<configswitch name="outlookdiscovery" desc="Horde can answer Autodiscover
requests from Microsoft Outlook clients to send configuration information
for things like IMAP/POP3/SMTP servers. Should this be enabled? NOTE: This
does not enable syncing between Horde and Microsoft Outlook!">
<case name="false" desc="No" />
<case name="true" desc="Yes">
<configsection name="hosts">
<configsection name="imap">
<configstring name="host" desc="IMAP host" required="false"></configstring>
<configinteger name="port" desc="IMAP port" required="false"></configinteger>
<configboolean name="ssl" desc="Use SSL?" />
</configsection>
<configsection name="pop">
<configstring name="host" desc="POP3 host" required="false"></configstring>
<configinteger name="port" desc="POP3 port" required="false"></configinteger>
<configboolean name="ssl" desc="Use SSL?" />
</configsection>
<configsection name="smtp">
<configstring name="host" desc="SMTP host"></configstring>
<configinteger name="port" desc="SMTP port" required="false"></configinteger>
<configboolean name="popauth" desc="Require Pop Auth?" required="false" />
<configboolean name="ssl" desc="Use SSL?" />
</configsection>
</configsection>
</case>
</configswitch>
<configheader>Logging</configheader>
<configsection name="logging">
<configswitch name="type" desc="For debugging, it may be useful have a log
of the Wbxml stream along with some other activesync-related data. If you
want to do this, set this to either Per Device or Single File and enter
the appropriate path. If detailed debug logging is not needed, set this to
None.">false
<case name="false" desc="None" />
<case name="perdevice" desc="Per Device">
<configstring name="path" desc="Path to custom log directory." />
<configenum name="level" desc="Should Horde include all the raw data
in the Wbxml log stream? If set to Detailed, the entire raw content
is logged. If set to Protocol, all protocol level detail is included,
but any Wbxml tag content over 50 bytes is logged only as the size of
the data." required="false">protocol
<values>
<value desc="Protocol">2</value>
<value desc="Detailed">1</value>
</values>
</configenum>
</case>
<case name="onefile" desc="Single file">
<configstring name="path" desc="Log file name." />
</case>
</configswitch>
</configsection>
<configsection name="ping">
<configheader>Ping Settings</configheader>
<configdescription>The Heartbeat Interval specifies the length of time, in
seconds, that the server SHOULD wait before notifying the client of
changes in a folder on the server. These settings allow you to indicate
the allowable range for this setting. Note that not all clients will
request this information. NOTE: Some Android devices do not implement this
correctly. If you plan on synching Android devices, you should make sure
that this range is wide enough to allow Android's default of 470 seconds.
</configdescription>
<configswitch name="deviceping" desc="Allow devices to manage the
heartbeat or force Horde to use a specific heartbeat for every
device?">true
<case name="true" desc="Device managed heartbeat">
<configinteger name="heartbeatmin" desc="The minimum number of seconds
to wait before sending results. This value must be greater then zero.">
60</configinteger>
<configinteger name="heartbeatmax" desc="The maximum number of seconds
to wait before sending results. Note this value must not be greater then
3540 (59 minutes).">2700</configinteger>
<configinteger name="heartbeatdefault" desc="If the client does not
request a heartbeat interval, this interval will be used by default.">
480</configinteger>
</case>
<case name="false" desc="Forced heartbeat">
<configinteger name="forcedheartbeat" desc="The number of seconds to
force the server to wait before sending PING results.">60
</configinteger>
</case>
</configswitch>
<configinteger name="waitinterval" desc="How many seconds should elapse
between checks for changes? Increasing this value will cause the server
to wait longer between checks for changes during the heartbeat,
essentially reducing the number of checks done during each heartbeat.
Lowering this value will increase the number of checks that are down
during each heartbeat.">15</configinteger>
</configsection>
</case>
</configswitch>
</configsection>
</configtab>
</configuration>