| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- # -*- mode: conf -*-
- # vim:ft=cfg
- # Config file for Radicale - A simple calendar server
- #
- # Place it into /etc/radicale/config (global)
- # or ~/.config/radicale/config (user)
- #
- # The current values are the default ones
- [server]
- # CalDAV server hostnames separated by a comma
- # IPv4 syntax: address:port
- # IPv6 syntax: [address]:port
- # Hostname syntax (using "getaddrinfo" to resolve to IPv4/IPv6 adress(es)): hostname:port
- # For example: 0.0.0.0:9999, [::]:9999, localhost:9999
- #hosts = localhost:5232
- # Max parallel connections
- #max_connections = 8
- # Max size of request body (bytes)
- # In case of using a reverse proxy in front of check also there related option
- #max_content_length = 100000000
- # Socket timeout (seconds)
- #timeout = 30
- # SSL flag, enable HTTPS protocol
- #ssl = False
- # SSL certificate path
- #certificate = /etc/ssl/radicale.cert.pem
- # SSL private key
- #key = /etc/ssl/radicale.key.pem
- # CA certificate for validating clients. This can be used to secure
- # TCP traffic between Radicale and a reverse proxy
- #certificate_authority =
- # SSL protocol, secure configuration: ALL -SSLv3 -TLSv1 -TLSv1.1
- #protocol = (default)
- # SSL ciphersuite, secure configuration: DHE:ECDHE:-NULL:-SHA (see also "man openssl-ciphers")
- #ciphersuite = (default)
- # script name to strip from URI if called by reverse proxy
- #script_name = (default taken from HTTP_X_SCRIPT_NAME or SCRIPT_NAME)
- [encoding]
- # Encoding for responding requests
- #request = utf-8
- # Encoding for storing local collections
- #stock = utf-8
- [auth]
- # Authentication method
- # Value: none | htpasswd | remote_user | http_x_remote_user | dovecot | ldap | oauth2 | pam | denyall
- #type = denyall
- # Cache logins for until expiration time
- #cache_logins = false
- # Expiration time for caching successful logins in seconds
- #cache_successful_logins_expiry = 15
- ## Expiration time of caching failed logins in seconds
- #cache_failed_logins_expiry = 90
- # Ignore modifyTimestamp and createTimestamp attributes. Required e.g. for Authentik LDAP server
- #ldap_ignore_attribute_create_modify_timestamp = false
- # URI to the LDAP server
- #ldap_uri = ldap://localhost
- # The base DN where the user accounts have to be searched
- #ldap_base = ##BASE_DN##
- # The reader DN of the LDAP server
- #ldap_reader_dn = CN=ldapreader,CN=Users,##BASE_DN##
- # Password of the reader DN
- #ldap_secret = ldapreader-secret
- # Path of the file containing password of the reader DN
- #ldap_secret_file = /run/secrets/ldap_password
- # the attribute to read the group memberships from in the user's LDAP entry (default: not set)
- #ldap_groups_attribute = memberOf
- # The filter to find the DN of the user. This filter must contain a python-style placeholder for the login
- #ldap_filter = (&(objectClass=person)(uid={0}))
- # the attribute holding the value to be used as username after authentication
- #ldap_user_attribute = cn
- # Use ssl on the ldap connection
- # Soon to be deprecated, use ldap_security instead
- #ldap_use_ssl = False
- # the encryption mode to be used: tls, starttls, default is none
- #ldap_security = none
- # The certificate verification mode. Works for ssl and starttls. NONE, OPTIONAL, default is REQUIRED
- #ldap_ssl_verify_mode = REQUIRED
- # The path to the CA file in pem format which is used to certificate the server certificate
- #ldap_ssl_ca_file =
- # Connection type for dovecot authentication (AF_UNIX|AF_INET|AF_INET6)
- # Note: credentials are transmitted in cleartext
- #dovecot_connection_type = AF_UNIX
- # The path to the Dovecot client authentication socket (eg. /run/dovecot/auth-client on Fedora). Radicale must have read / write access to the socket.
- #dovecot_socket = /var/run/dovecot/auth-client
- # Host of via network exposed dovecot socket
- #dovecot_host = localhost
- # Port of via network exposed dovecot socket
- #dovecot_port = 12345
- # IMAP server hostname
- # Syntax: address | address:port | [address]:port | imap.server.tld
- #imap_host = localhost
- # Secure the IMAP connection
- # Value: tls | starttls | none
- #imap_security = tls
- # OAuth2 token endpoint URL
- #oauth2_token_endpoint = <URL>
- # PAM service
- #pam_serivce = radicale
- # PAM group user should be member of
- #pam_group_membership =
- # Htpasswd filename
- #htpasswd_filename = /etc/radicale/users
- # Htpasswd encryption method
- # Value: plain | bcrypt | md5 | sha256 | sha512 | argon2 | autodetect
- # bcrypt requires the installation of 'bcrypt' module.
- # argon2 requires the installation of 'argon2-cffi' module.
- #htpasswd_encryption = autodetect
- # Enable caching of htpasswd file based on size and mtime_ns
- #htpasswd_cache = False
- # Incorrect authentication delay (seconds)
- #delay = 1
- # Message displayed in the client when a password is needed
- #realm = Radicale - Password Required
- # Convert username to lowercase, must be true for case-insensitive auth providers
- #lc_username = False
- # Strip domain name from username
- #strip_domain = False
- [rights]
- # Rights backend
- # Value: authenticated | owner_only | owner_write | from_file
- #type = owner_only
- # File for rights management from_file
- #file = /etc/radicale/rights
- # Permit delete of a collection (global)
- #permit_delete_collection = True
- # Permit overwrite of a collection (global)
- #permit_overwrite_collection = True
- # URL Decode the given username (when URL-encoded by the client - useful for iOS devices when using email address)
- # urldecode_username = False
- [storage]
- # Storage backend
- # Value: multifilesystem | multifilesystem_nolock
- #type = multifilesystem
- # Folder for storing local collections, created if not present
- #filesystem_folder = /var/lib/radicale/collections
- # Folder for storing cache of local collections, created if not present
- # 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)
- #filesystem_cache_folder = (filesystem_folder)
- # Use subfolder 'collection-cache' for 'item' cache file structure instead of inside collection folder
- # Note: can be used on multi-instance setup to cache 'item' on local node
- #use_cache_subfolder_for_item = False
- # Use subfolder 'collection-cache' for 'history' cache file structure instead of inside collection folder
- # Note: use only on single-instance setup, will break consistency with client in multi-instance setup
- #use_cache_subfolder_for_history = False
- # Use subfolder 'collection-cache' for 'sync-token' cache file structure instead of inside collection folder
- # Note: use only on single-instance setup, will break consistency with client in multi-instance setup
- #use_cache_subfolder_for_synctoken = False
- # Use last modifiction time (nanoseconds) and size (bytes) for 'item' cache instead of SHA256 (improves speed)
- # 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
- #use_mtime_and_size_for_item_cache = False
- # Use configured umask for folder creation (not applicable for OS Windows)
- # Useful value: 0077 | 0027 | 0007 | 0022
- #folder_umask = (system default, usual 0022)
- # Delete sync token that are older (seconds)
- #max_sync_token_age = 2592000
- # Skip broken item instead of triggering an exception
- #skip_broken_item = True
- # Command that is run after changes to storage, default is emtpy
- # Supported placeholders:
- # %(user)s: logged-in user
- # %(cwd)s : current working directory
- # %(path)s: full path of item
- # %(to_path)s: full path of destination item (only set on MOVE request)
- # %(request)s: request method
- # Command will be executed with base directory defined in filesystem_folder
- # For "git" check DOCUMENTATION.md for bootstrap instructions
- # Example(test): echo \"user=%(user)s path=%(path)s cwd=%(cwd)s\"
- # Example(test/json): echo \"hook-json {'user':'%(user)s', 'cwd':'%(cwd)s', 'path':'%(path)s', 'request':'%(request)s', 'to_path':'%(to_path)s'}\"
- # Example(git): git add -A && (git diff --cached --quiet || git commit -m "Changes by \"%(user)s\"")
- #hook =
- # Create predefined user collections
- #
- # json format:
- #
- # {
- # "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"
- # }
- # }
- #
- #predefined_collections =
- [web]
- # Web interface backend
- # Value: none | internal
- #type = internal
- [logging]
- # Threshold for the logger
- # Value: debug | info | warning | error | critical
- #level = info
- # do not filter debug messages starting with 'TRACE'
- #trace_on_debug = False
- # filter debug messages starting with 'TRACE/<TOKEN>'
- #trace_filter = ""
- # Don't include passwords in logs
- #mask_passwords = True
- # Log bad PUT request content
- #bad_put_request_content = False
- # Log backtrace on level=debug
- #backtrace_on_debug = False
- # Log request header on level=debug
- #request_header_on_debug = False
- # Log request content on level=debug
- #request_content_on_debug = False
- # Log response content on level=debug
- #response_content_on_debug = False
- # Log rights rule which doesn't match on level=debug
- #rights_rule_doesnt_match_on_debug = False
- # Log storage cache actions on level=debug
- #storage_cache_actions_on_debug = False
- [headers]
- # Additional HTTP headers
- #Access-Control-Allow-Origin = *
- [hook]
- # Hook types
- # Value: none | rabbitmq | email
- #type = none
- # dry-run (do not really trigger hook action)
- #dryrun = False
- # hook: rabbitmq
- #rabbitmq_endpoint =
- #rabbitmq_topic =
- #rabbitmq_queue_type = classic
- # hook: email
- #smtp_server = localhost
- #smtp_port = 25
- #smtp_security = starttls
- #smtp_ssl_verify_mode = REQUIRED
- #smtp_username =
- #smtp_password =
- #from_email =
- #mass_email = False
- [reporting]
- # When returning a free-busy report, limit the number of returned
- # occurences per event to prevent DOS attacks.
- #max_freebusy_occurrence = 10000
|