RADICALE(1)
๐ NAME ๐
radicale โ bestie, it's literally a simple calendar server ๐ (this is the radicale(1) page from User Commands, and yes she ate)
โจ DESCRIPTION โจ
okay so here's the whole vibe, the entire invocation of this thing is:
usage: radicale [OPTIONS]
that's it, that's the shape of it ๐ซถ now let's get into the good stuff.
๐ options: ๐
the general-usage girlies, the ones who apply no matter what:
-h,--helpโ shows you this exact help message and then dips, exits. iconic behaviour tbh ๐--versionโ prints the program's version number and yeets itself out, exits โจ--verify-storageโ goes through the storage looking for errors, then exits. a little wellness check for your data ๐--verify-item VERIFY_ITEMโ same energy but for one specific item file you point at, checks it for errors and exits ๐--verify-sharingโ runs an error check over the sharing database and exits ๐ฆ-C,--config [CONFIG ...]โ use specific configuration files, plural, you can pass a whole list bestie ๐-D,--debugโ spills the debug information, the juicy behind-the-scenes tea โ
๐ฅ๏ธ server: ๐ฅ๏ธ
the main-character section, this is where the server itself gets configured:
-H,--hosts,--server-hosts VALUEโ sets the server hostnames, ports included, don't forget the ports ๐--server-max-connections VALUEโ the maximum number of parallel connections allowed at once, no crowding the function ๐--server-max-content-length VALUEโ biggest allowed request body size in bytes (default:100 Mbyte) ๐--server-delay-on-error VALUEโ the base delay used when a5xxerror response happens, in seconds โณ--server-max-resource-size VALUEโ max size of a resource (default:10 Mbyte) ๐ธ--server-max-vevent-rrule-occurrence VALUEโ max occurrence by anRRULE(default:10000). yes the recurring events have a limit, periodt ๐--server-timeout VALUEโ the socket timeout โฑ๏ธ-s,--ssl,--server-ssl [VALUE]โ use an SSL connection, secure-girl behaviour ๐-S,--no-ssl,--no-server-sslโ do not use an SSL connection (it's the exact opposite of--server-ssl) ๐--server-protocol VALUEโ the SSL/TLS protocol, written in ApacheSSLProtocolformat ๐--server-ciphersuite VALUEโ the SSL/TLS Cipher Suite, in OpenSSL cipher list format ๐-c,--certificate,--server-certificate VALUEโ set the certificate file ๐-k,--key,--server-key VALUEโ set the private key file ๐๏ธ--certificate-authority,--server-certificate-authority VALUEโ set the CA certificate used for validating clients, so you know who's at the door ๐--server-script-name VALUEโ the script name to strip from the URI when you're being called by a reverse proxy (default is taken fromHTTP_X_SCRIPT_NAMEorSCRIPT_NAME) ๐ง--server-validate-user-value VALUEโ validates the user value. options are:none|minimal|unicodeletter|unicode-none|strictโ--server-validate-path-value VALUEโ validates the path value. same menu:none|minimal|unicodeletter|unicode-none|strictโ
๐ค encoding: ๐ค
--encoding-request VALUEโ the encoding used for responding to requests ๐ฌ--encoding-stock VALUEโ the encoding used for storing local collections ๐๏ธ
๐ auth: ๐ (authentication, the bouncer at the club)
backend specific options omitted โ yes bestie, they really are omitted in this listing, i don't make the rules ๐
--auth-type VALUEโ which authentication method you want:none|remote_user|http_x_remote_user|http_remote_user|denyall|htpasswd|ldap|imap|oauth2|pam|dovecot๐--auth-cache-logins [VALUE]โ caches successful and failed logins until the expiration time hits ๐ฐ๏ธ--no-auth-cache-loginsโ do not cache successful/failed logins until expiration time (the opposite of--auth-cache-logins) ๐ซ--auth-cache-successful-logins-expiry VALUEโ expiration time in seconds for the cached successful logins โฒ๏ธ--auth-cache-failed-logins-expiry VALUEโ expiration time in seconds for the cached failed logins ๐--auth-htpasswd-filename VALUEโ the htpasswd filename ๐--auth-htpasswd-encryption VALUEโ the htpasswd encryption method ๐--auth-htpasswd-cache [VALUE]โ turns on caching of the htpasswd file โก--no-auth-htpasswd-cacheโ does not enable caching of the htpasswd file (opposite of--auth-htpasswd-cache) ๐ซ--auth-dovecot-connection-type VALUEโ the Connection type for dovecot authentication ๐๏ธ--auth-dovecot-socket VALUEโ the dovecot authAF_UNIXsocket ๐--auth-dovecot-host VALUEโ the dovecot authAF_INETorAF_INET6host ๐--auth-dovecot-port VALUEโ the dovecot auth port ๐ช--auth-remote-ip-source VALUEโ the remote address source, so it can get passed along to the auth method ๐ฌ--auth-realm VALUEโ the message that gets displayed when a password is needed ๐ฃ๏ธ--auth-delay VALUEโ the delay on an incorrect authentication โณ--auth-ldap-uri VALUEโ URI pointing at the LDAP server ๐งญ--auth-ldap-base VALUEโ the Base DN of the LDAP server ๐ณ--auth-ldap-reader-dn VALUEโ DN of an LDAP user with read access to users anmd โ if defined โ groups (yes, "anmd", we keep it exactly as written, no notes ๐)--auth-ldap-secret VALUEโ the Password ofldap_reader_dn(but honestly bestie: useldap_secret_fileinstead, it's the safer glow-up) ๐--auth-ldap-secret-file VALUEโ Path to the file containing the password ofldap_reader_dn๐--auth-ldap-filter VALUEโ the Filter used to search for the LDAP entry of the user you're authenticating ๐--auth-ldap-user-attribute VALUEโ the Attribute that gets used as username after authentication ๐ท๏ธ--auth-ldap-security VALUEโ the Encryption mode to use:*none*|tls|starttls๐ก๏ธ--auth-ldap-ssl-verify-mode VALUEโ Certificate verification mode fortlsandstarttls. Options areNONE,OPTIONAL, and the default isREQUIRED๐--auth-ldap-ssl-ca-file VALUEโ Path to the CA file in PEM format, the one used to certify the server certificate ๐--auth-ldap-groups-attribute VALUEโ the Attribute in the user's LDAP entry that the group memberships get read from ๐ฅ--auth-ldap-group-members-attribute VALUEโ the Attribute in the group entries that the group's members get read from ๐ซ--auth-ldap-group-base VALUEโ Base DN to search for groups. Only used if it differs fromldap_baseand ifldap_group_members_attributeis set ๐งฉ--auth-ldap-group-filter VALUEโ Search filter for finding groups that have the user as a member. Only used ifldap_group_members_attributeis set ๐--auth-ldap-ignore-attribute-create-modify-timestamp [VALUE]โ a Quirk for the Authentik LDAP server: it makes you ignore themodifyTimestampandcreateTimestampattributes ๐--no-auth-ldap-ignore-attribute-create-modify-timestampโ does not Quirk for Authentik LDAP server: ignoremodifyTimestampandcreateTimestampattributes. (this is the opposite of--auth-ldap-ignore-attribute-createmodify-timestamp) ๐ซ--auth-imap-host VALUEโ the IMAP server hostname, in the formaddress|address:port|[address]:port|*localhost*๐ฎ--auth-imap-security VALUEโ secures the IMAP connection:*tls*|starttls|none๐--auth-imap-append-domain VALUEโ appends'@'+ domain to the login before it even tries the IMAP connection โ--auth-oauth2-token-endpoint VALUEโ the OAuth2 token endpoint URL ๐--auth-oauth2-client-id VALUEโ the OAuth2 client id ๐ชช--auth-oauth2-client-secret VALUEโ the OAuth2 client secret ๐คซ--auth-pam-group-membership VALUEโ the PAM group the user should be a member of ๐ฏ--auth-pam-service VALUEโ the PAM service ๐๏ธ--auth-strip-domain [VALUE]โ strips the domain from the username โ๏ธ--no-auth-strip-domainโ does not strip the domain from the username (opposite of--authstrip-domain) ๐ซ--auth-uc-username [VALUE]โ converts the username to uppercase, must be true for caseinsensitive auth providers โฌ๏ธ--no-auth-uc-usernameโ does not convert the username to uppercase, must be true for case-insensitive auth providers (opposite of--authuc-username) ๐ซ--auth-lc-username [VALUE]โ converts the username to lowercase, must be true for caseinsensitive auth providers โฌ๏ธ--no-auth-lc-usernameโ does not convert the username to lowercase, must be true for case-insensitive auth providers (opposite of--authlc-username) ๐ซ--auth-urldecode-username [VALUE]โ url-decodes the username. set this toTruewhen clients send a url-encoded email address as the username ๐ง--no-auth-urldecode-usernameโ does not url-decode the username. set toTruewhen clients send a url-encoded email address as username (opposite of--auth-urldecode-username) ๐ซ
๐ rights: ๐
who's allowed to do what, the rules of the group chat:
backend specific options omitted โ again bestie, that's just what the page says ๐
--rights-type VALUEโ the rights backend ๐๏ธ--rights-permit-delete-collection [VALUE]โ permits deleting of a collection ๐๏ธ--no-rights-permit-delete-collectionโ does not permit delete of a collection (opposite of--rights-permit-delete-collection) ๐ซ--rights-permit-overwrite-collection [VALUE]โ permits overwriting of a collection โป๏ธ--no-rights-permit-overwrite-collectionโ does not permit overwrite of a collection (opposite of--rights-permit-overwrite-collection) ๐ซ--rights-file VALUEโ the file used for rights managementfrom_file๐
๐ฆ storage: ๐ฆ
where all your precious data actually lives:
backend specific options omitted โ one more time, that's the word from the page โจ
--storage-type VALUEโ the storage backend ๐๏ธ--storage-filesystem-folder VALUEโ the path where collections are stored ๐--storage-filesystem-cache-folder VALUEโ the path where the cache of collections is stored in case any of theuse_cache_subfolder_*options are active ๐๏ธ--storage-use-cache-subfolder-for-item [VALUE]โ uses the subfolder'collection-cache'for the'item'cache file structure instead of keeping it inside the collection folder ๐๏ธ--no-storage-use-cache-subfolder-for-itemโ does not use the subfolder'collection-cache'for the'item'cache file structure instead of inside the collection folder (opposite of--storage-use-cache-subfolder-foritem) ๐ซ--storage-use-cache-subfolder-for-history [VALUE]โ uses the subfolder'collection-cache'for the'history'cache file structure instead of inside the collection folder โณ--no-storage-use-cache-subfolder-for-historyโ does not use the subfolder'collection-cache'for the'history'cache file structure instead of inside the collection folder (opposite of--storage-use-cache-subfolder-forhistory) ๐ซ--storage-use-cache-subfolder-for-synctoken [VALUE]โ uses the subfolder'collection-cache'for the'sync-token'cache file structure instead of inside the collection folder ๐--no-storage-use-cache-subfolder-for-synctokenโ does not use the subfolder'collection-cache'for the'synctoken'cache file structure instead of inside the collection folder (opposite of--storage-use-cachesubfolder-for-synctoken) ๐ซ--storage-use-mtime-and-size-for-item-cache [VALUE]โ uses mtime and file size instead ofSHA256for the'item'cache (it improves speed, lowkey a glow-up) โก--no-storage-use-mtime-and-size-for-item-cacheโ does not use mtime and file size instead ofSHA256for'item'cache (improves speed) (opposite of--storageuse-mtime-and-size-for-item-cache) ๐ซ--storage-folder-umask VALUEโ the umask for folder creation (empty means: system default) ๐ญ--storage-max-sync-token-age VALUEโ deletes sync token that are older ๐ฐ๏ธ--storage-skip-broken-item [VALUE]โ skips broken item instead of triggering an exception ๐ฉน--no-storage-skip-broken-itemโ does not skip broken item instead of triggering exception (opposite of--storage-skip-broken-item) ๐ซ--storage-hook VALUEโ the command that is run after changes to storage ๐ช
okay bestie that's part one, don't go anywhere, there's more coming ๐
--storage-strict-preconditions [VALUE]โ strict preconditions check on PUT, bestie. It's giving "no shortcuts" energy. ๐--no-storage-strict-preconditionsโ do not strict preconditions check on PUT (opposite of--storage-strict-preconditions) ๐--storage-predefined-collections VALUEโ predefined user collections, slay. โจ
๐ธ sharing: ๐ธ
backend specific options omitted (iykyk, they're just not here)
--sharing-type VALUEโ sharing database type--sharing-database-path VALUEโ database path--sharing-collection-by-token [VALUE]โ enable sharing of collection by token--no-sharing-collection-by-tokenโ do not enable sharing of collection by token (opposite of--sharing-collection-by-token)--sharing-collection-by-map [VALUE]โ enable sharing of collection by map--no-sharing-collection-by-mapโ do not enable sharing of collection by map (opposite of--sharing-collection-by-map)--sharing-permit-create-token [VALUE]โ permit create of token-based sharing--no-sharing-permit-create-tokenโ do not permit create of token-based sharing (opposite of--sharing-permit-create-token)--sharing-permit-create-map [VALUE]โ permit create of map-based sharing--no-sharing-permit-create-mapโ do not permit create of map-based sharing (opposite of--sharing-permit-create-map)--sharing-permit-properties-overlay [VALUE]โ permit properties overlay--no-sharing-permit-properties-overlayโ do not permit properties overlay (opposite of--sharing-permit-properties-overlay)--sharing-enforce-properties-overlay [VALUE]โ enforce properties overlay on write access--no-sharing-enforce-properties-overlayโ do not enforce properties overlay on write access (opposite of--sharing-enforce-properties-overlay)--sharing-default-permissions-create-token VALUEโ default permissions for token-based sharing--sharing-default-permissions-create-map VALUEโ default permissions for map-based sharing--sharing-conversion-bday-summary-template VALUEโ conversion bday summary template--sharing-conversion-bday-description-template VALUEโ conversion bday description template--sharing-conversion-bday-alarm-trigger-template VALUEโ conversion bday alarm trigger template--sharing-conversion-bday-categories VALUEโ conversion bday categories--sharing-conversion-bday-age-max VALUEโ conversion bday age max
๐ฆ hook: ๐ฆ
backend specific options omitted (again, not here but they exist)
--hook-type VALUEโ hook backend--hook-dryrun [VALUE]โ dry-run (do not really trigger hook action)--no-hook-dryrunโ do not dry-run (do not really trigger hook action) (opposite of--hook-dryrun)--hook-rabbitmq-endpoint VALUEโ endpoint where rabbitmq server is running--hook-rabbitmq-topic VALUEโ topic to declare queue--hook-rabbitmq-queue-type VALUEโ queue type for topic declaration--hook-smtp-server VALUEโ SMTP server to send emails--hook-smtp-port VALUEโ SMTP server port--hook-smtp-security VALUEโ SMTP security mode: none|tls|starttls--hook-smtp-ssl-verify-mode VALUEโ The certificate verification mode. Works for tls and starttls: NONE, OPTIONAL, default is REQUIRED--hook-smtp-username VALUEโ SMTP server username--hook-smtp-password VALUEโ SMTP server password--hook-from-email VALUEโ SMTP server password (yes, same description, we don't make the rules lol)--hook-mass-email [VALUE]โ Send one email to all attendees, versus one email per attendee--no-hook-mass-emailโ do not Send one email to all attendees, versus one email per attendee (opposite of--hook-mass-email)--hook-new-or-added-to-event-template VALUEโ Template for the email sent when an event is created or attendee is added. Select placeholder words prefixed with $ will be replaced--hook-deleted-or-removed-from-event-template VALUEโ Template for the email sent when an event is deleted or attendee is removed. Select placeholder words prefixed with $ will be replaced--hook-updated-event-template VALUEโ Template for the email sent when an event is updated. Select placeholder words prefixed with $ will be replaced
๐ web: ๐
backend specific options omitted (you know the drill)
--web-type VALUEโ web interface backend--web-prefer-browser-login [VALUE]โ prefer browser login--no-web-prefer-browser-loginโ do not prefer browser login (opposite of--web-preferbrowser-login) (yep, typo in the original, we keep it fr fr)
โจ logging: โจ
--logging-level VALUEโ threshold for the logger--logging-limit-content VALUEโ limit content of wrapped text (chars)--logging-trace-filter VALUEโ filter trace messages starting with '<TOKEN>'--logging-bad-put-request-content [VALUE]โ log bad PUT request content--no-logging-bad-put-request-contentโ do not log bad PUT request content (opposite of--logging-bad-put-request-content)--logging-backtrace-on-debug [VALUE]โ log backtrace on level=debug--no-logging-backtrace-on-debugโ do not log backtrace on level=debug (opposite of--logging-backtrace-on-debug)--logging-request-header-on-debug [VALUE]โ log request header on level=debug--no-logging-request-header-on-debugโ do not log request header on level=debug (opposite of--logging-request-header-on-debug)--logging-request-content-on-debug [VALUE]โ log request content on level=debug--no-logging-request-content-on-debugโ do not log request content on level=debug (opposite of--logging-request-content-on-debug)--logging-response-header-on-debug [VALUE]โ log response header on level=debug--no-logging-response-header-on-debugโ do not log response header on level=debug (opposite of--logging-response-header-on-debug)--logging-response-content-on-debug [VALUE]โ log response content on level=debug--no-logging-response-content-on-debugโ do not log response content on level=debug (opposite of--logging-response-content-on-debug)--logging-request-header-on-notice-condition VALUEโ log request header on level=notice with condition--logging-request-content-on-notice-condition VALUEโ log request content on level=notice with condition--logging-response-header-on-notice-condition VALUEโ log response header on level=notice with condition--logging-response-content-on-notice-condition VALUEโ log response content on level=notice with condition--logging-rights-rule-doesnt-match-on-debug [VALUE]โ log rights rules which doesn't match on level=debug--no-logging-rights-rule-doesnt-match-on-debugโ do not log rights rules which doesn't match on level=debug (opposite of--logging-rights-rule-doesntmatch-on-debug) (yes, exactly that string, keep it ๐ฏ)--logging-storage-cache-actions-on-debug [VALUE]โ log storage cache action on level=debug--no-logging-storage-cache-actions-on-debugโ do not log storage cache action on level=debug (opposite of--logging-storage-cache-actions-on-debug)--logging-profiling VALUEโ log profiling data level=info--logging-profiling-per-request-min-duration VALUEโ log profiling data per request minimum duration (seconds)--logging-profiling-per-request-header [VALUE]โ Log profiling request body (if passing minimum duration)--no-logging-profiling-per-request-headerโ do not Log profiling request body (if passing minimum duration) (opposite of--logging-profiling-perrequest-header)--logging-profiling-per-request-xml [VALUE]โ Log profiling request XML (if passing minimum duration)--no-logging-profiling-per-request-xmlโ do not Log profiling request XML (if passing minimum duration) (opposite of--logging-profiling-perrequest-xml)--logging-profiling-per-request-method-interval VALUEโ log profiling data per request method interval (seconds)--logging-profiling-top-x-functions VALUEโ log profiling top X functions (limit)--logging-mask-passwords [VALUE]โ mask passwords in logs--no-logging-mask-passwordsโ do not mask passwords in logs (opposite of--loggingmask-passwords)
๐ headers: ๐
additional options allowed (e.g. --headers-Pragma=no-cache) ๐
๐ reporting: ๐
--reporting-max-expand-occurrence VALUEโ number of expand occurrences per event when reporting--reporting-max-freebusy-occurrence VALUEโ number of free-busy occurrences per event when reporting
That's the whole vibe for radicale 3.7.8+ds-3, dated August 2026. Stay iconic, bestie! ๐ซถโจ
๐ฆ where this page comes from
- ubuntu stonking: radicale 3.7.8+ds-3 ยท GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms