Radicale can be configured with a configuration file or with command
line arguments.
One can also use command line options in startup scripts using
following examples:
In the following, all configuration categories and options are
described.
server
The configuration options in this category are only relevant in
standalone mode. All options are ignored, when Radicale runs via
WSGI.
hosts
A comma separated list of addresses that the server will bind to.
Default: localhost:5232
max_connections
The maximum number of parallel connections. Set to 0
to
disable the limit.
Default: 8
max_content_length
The maximum size of the request body. (bytes)
Default: 100000000
timeout
Socket timeout. (seconds)
Default: 30
ssl
Enable transport layer encryption.
Default: False
certificate
Path of the SSL certifcate.
Default: /etc/ssl/radicale.cert.pem
key
Path to the private key for SSL. Only effective if ssl
is enabled.
Default: /etc/ssl/radicale.key.pem
certificate_authority
Path to the CA certificate for validating client certificates. This
can be used to secure TCP traffic between Radicale and a reverse proxy.
If you want to authenticate users with client-side certificates, you
also have to write an authentication plugin that extracts the username
from the certificate.
Default:
protocol
Accepted SSL protocol (maybe not all supported by underlying OpenSSL
version) Example for secure configuration: ALL -SSLv3 -TLSv1 -TLSv1.1
Format: Apache SSLProtocol list (from "mod_ssl")
Default: (system default)
ciphersuite
Accepted SSL ciphersuite (maybe not all supported by underlying
OpenSSL version) Example for secure configuration: DHE:ECDHE:-NULL:-SHA
Format: OpenSSL cipher list (see also "man openssl-ciphers")
Default: (system-default)
script_name
Strip script name from URI if called by reverse proxy
Default: (taken from HTTP_X_SCRIPT_NAME or SCRIPT_NAME)
auth
type
The method to verify usernames and passwords.
Available backends:
none
: Just allows all usernames and passwords.
htpasswd
: Use an Apache
htpasswd file to store usernames and passwords.
remote_user
: Takes the username from the
REMOTE_USER
environment variable and disables HTTP
authentication. This can be used to provide the username from a WSGI
server.
http_x_remote_user
: Takes the username from the
X-Remote-User
HTTP header and disables HTTP authentication.
This can be used to provide the username from a reverse proxy.
ldap
: Use a LDAP or AD server to authenticate
users.
dovecot
: Use a Dovecot server to authenticate
users.
imap
: Use an IMAP server to authenticate users.
oauth2
: Use an OAuth2 server to authenticate users.
pam
: Use local PAM to authenticate users.
Default: none
cache_logins
Cache successful/failed logins until expiration time. Enable this to
avoid overload of authentication backends.
Default: false
cache_successful_logins_expiry
Expiration time of caching successful logins in seconds
Default: 15
cache_failed_logins_expiry
Expiration time of caching failed logins in seconds
Default: 90
htpasswd_filename
Path to the htpasswd file.
Default: /etc/radicale/users
htpasswd_encryption
The encryption method that is used in the htpasswd file. Use the htpasswd
or similar to generate this files.
Available methods:
plain
: Passwords are stored in plaintext. This is
obviously not secure! The htpasswd file for this can be created by hand
and looks like:
user1:password1
user2:password2
bcrypt
: This uses a modified version of the Blowfish
stream cipher. It's very secure. The installation of
bcrypt is required for this.
md5
: This uses an iterated MD5 digest of the password
with a salt (nowadays insecure).
sha256
: This uses an iterated SHA-256 digest of the
password with a salt.
sha512
: This uses an iterated SHA-512 digest of the
password with a salt.
autodetect
: This selects autodetection of method per
entry.
Default: autodetect
htpasswd_cache
Enable caching of htpasswd file based on size and mtime_ns
Default: False
delay
Average delay after failed login attempts in seconds.
Default: 1
realm
Message displayed in the client when a password is needed.
Default: Radicale - Password Required
ldap_uri
The URI to the ldap server
Default: ldap://localhost
ldap_base
LDAP base DN of the ldap server. This parameter must be provided if
auth type is ldap.
Default:
ldap_reader_dn
The DN of a ldap user with read access to get the user accounts. This
parameter must be provided if auth type is ldap.
Default:
ldap_secret
The password of the ldap_reader_dn. Either this parameter or
ldap_secret_file
must be provided if auth type is ldap.
Default:
ldap_secret_file
Path of the file containing the password of the ldap_reader_dn.
Either this parameter or ldap_secret
must be provided if
auth type is ldap.
Default:
ldap_filter
The search filter to find the user DN to authenticate by the
username. User '{0}' as placeholder for the user name.
Default: (cn={0})
ldap_user_attribute
The LDAP attribute whose value shall be used as the user name after
successful authentication
Default: not set, i.e. the login name given is used directly.
ldap_groups_attribute
The LDAP attribute to read the group memberships from in the
authenticated user's LDAP entry.
If set, load the LDAP group memberships from the attribute given
These memberships can be used later on to define rights. This also gives
you access to the group calendars, if they exist.
- The group calendar will be placed under
collection_root_folder/GROUPS
- The name of the calendar directory is the base64 encoded group
name.
- The group calendar folders will not be created automatically. This
must be done manually. In the LDAP-authentication
section of Radicale's wiki you can find a script to create a group
calendar.
Use 'memberOf' if you want to load groups on Active Directory and
alikes, 'groupMembership' on Novell eDirectory, ...
Default: unset
ldap_use_ssl
Use ssl on the ldap connection
Default: False
ldap_ssl_verify_mode
The certificate verification mode. NONE, OPTIONAL or REQUIRED
Default: REQUIRED
ldap_ssl_ca_file
The path to the CA file in pem format which is used to certificate
the server certificate
Default:
dovecot_connection_type = AF_UNIX
Connection type for dovecot authentication
(AF_UNIX|AF_INET|AF_INET6)
Note: credentials are transmitted in cleartext
Default: AF_UNIX
dovecot_socket
The path to the Dovecot client authentication socket (eg.
/run/dovecot/auth-client on Fedora). Radicale must have read / write
access to the socket.
Default: /var/run/dovecot/auth-client
dovecot_host
Host of via network exposed dovecot socket
Default: localhost
dovecot_port
Port of via network exposed dovecot socket
Default: 12345
imap_host
IMAP server hostname: address | address:port | [address]:port |
imap.server.tld
Default: localhost
imap_security
Secure the IMAP connection: tls | starttls | none
Default: tls
oauth2_token_endpoint
OAuth2 token endpoint URL
Default:
pam_service
PAM service
Default: radicale
pam_group_membership
PAM group user should be member of
Default:
lc_username
Сonvert username to lowercase, must be true for case-insensitive auth
providers like ldap, kerberos
Default: False
Note: cannot be enabled together with uc_username
uc_username
Сonvert username to uppercase, must be true for case-insensitive auth
providers like ldap, kerberos
Default: False
Note: cannot be enabled together with lc_username
strip_domain
Strip domain from username
Default: False
rights
type
The backend that is used to check the access rights of
collections.
The recommended backend is owner_only
. If access to
calendars and address books outside the home directory of users (that's
/USERNAME/
) is granted, clients won't detect these
collections and will not show them to the user. Choosing any other
method is only useful if you access calendars and address books directly
via URL.
Available backends:
authenticated
: Authenticated users can read and write
everything.
owner_only
: Authenticated users can read and write
their own collections under the path /USERNAME/.
owner_write
: Authenticated users can read everything
and write their own collections under the path /USERNAME/.
from_file
: Load the rules from a file.
Default: owner_only
file
File for the rights backend from_file
. See the Rights section.
permit_delete_collection
(New since 3.1.9)
Global control of permission to delete complete collection (default:
True)
If False it can be permitted by permissions per section with: D If
True it can be forbidden by permissions per section with: d
permit_overwrite_collection
(New since 3.3.0)
Global control of permission to overwrite complete collection
(default: True)
If False it can be permitted by permissions per section with: O If
True it can be forbidden by permissions per section with: o
storage
type
The backend that is used to store data.
Available backends:
multifilesystem
: Stores the data in the filesystem.
multifilesystem_nolock
: The
multifilesystem
backend without file-based locking. Must
only be used with a single process.
Default: multifilesystem
filesystem_folder
Folder for storing local collections, created if not present.
Default: /var/lib/radicale/collections
filesystem_cache_folder
Folder for storing cache of local collections, created if not
present
Default: (filesystem_folder)
Note: only used in case of use_cache_subfolder_* options are
active
Note: can be used on multi-instance setup to cache files on local
node (see below)
use_cache_subfolder_for_item
Use subfolder collection-cache
for cache file structure
of 'item' instead of inside collection folders, created if not
present
Default: False
Note: can be used on multi-instance setup to cache 'item' on local
node
use_cache_subfolder_for_history
Use subfolder collection-cache
for cache file structure
of 'history' instead of inside collection folders, created if not
present
Default: False
Note: use only on single-instance setup, will break consistency with
client in multi-instance setup
use_cache_subfolder_for_synctoken
Use subfolder collection-cache
for cache file structure
of 'sync-token' instead of inside collection folders, created if not
present
Default: False
Note: use only on single-instance setup, will break consistency with
client in multi-instance setup
use_mtime_and_size_for_item_cache
Use last modifiction time (nanoseconds) and size (bytes) for 'item'
cache instead of SHA256 (improves speed)
Default: False
Note: check used filesystem mtime precision before enabling
Note: conversion is done on access, bulk conversion can be done
offline using storage verification option
radicale --verify-storage
folder_umask
Use configured umask for folder creation (not applicable for OS
Windows)
Default: (system-default, usual 0022
)
Useful value: 0077
(user:rw group:- other:-) or
0027
(user:rw group:r other:-) or 0007
(user:rw group:rw other:-) or 0022
(user:rw group:r
other:r)
max_sync_token_age
Delete sync-token that are older than the specified time.
(seconds)
Default: 2592000
skip_broken_item
Skip broken item instead of triggering an exception
Default: True
hook
Command that is run after changes to storage. Take a look at the Versioning with Git tutorial for an
example.
Default:
Supported placeholders:
Command will be executed with base directory defined in
filesystem_folder
(see above)
predefined_collections
Create predefined user collections
Example:
{
"def-addressbook": {
"D:displayname": "Personal Address Book",
"tag": "VADDRESSBOOK"
},
"def-calendar": {
"C:supported-calendar-component-set": "VEVENT,VJOURNAL,VTODO",
"D:displayname": "Personal Calendar",
"tag": "VCALENDAR"
}
}
Default: