#
# You find additional information on Radicale Homepage
# http://radicale.org
#
# OpenWrt's wiki needs to be setup/updated ;-)
#
# if setting additional options please remember that UCI does not support
# section names and option names with "-" (Dash) inside their name
# to use them anyway replace "-" with "_" (Underscore)
# Each Radicale's config [section] is setup as UCI config setting 'section'
#

####################################################
# OpenWrt specific settings
# not part of radicale package
#
config	system 'radicale'
	# delayed startup at boot (default 10 seconds)
	# to wait for netifd to bring up interfaces
	# during this time iface hotplug events are ignored
#	option	boot_delay	'10'

####################################################
# Server options
#
config setting 'server'

	# hostname:port
	# IPv4 syntax: address:port
	# IPv6 syntax: [address]:port
	# ATTENTION:
	# only use ports > 1024 (non-privileged Ports)
	# because this implementation is running as non-root user
	# Default: 0.0.0.0:5232
#	list hosts '0.0.0.0:5232'
#	list hosts 'localhost:5232'

	# SSL flag, enable HTTPS protocol
	# Default: 0 (disabled)
#	option ssl '1'

	# SSL Protocol used. See python's ssl module for available values
	# Default: PROTOCOL_SSLv23
#	option protocol 'PROTOCOL_SSLv23'

	# Ciphers available. See python's ssl module for available ciphers
#	option ciphers ''

	# SSL certificate path and file
#	option certificate '/etc/radicale/ssl/server.crt'

	# SSL private key path and file
#	option key '/etc/radicale/ssl/server.key'

	# Reverse DNS to resolve client address in logs
	# Default: 0 (disabled)
#	option dns_lookup '1'

	# Message displayed in the client when a password is needed
#	option realm 'Radicale - Password Required'


####################################################
# Encoding options
#
config	setting	'encoding'

	# Encoding for responding requests
#	option	request	'utf-8'

	# Encoding for storing local collections
#	option	stock	'utf-8'


####################################################
# Authentication options
#
config	setting	'auth'

	# Authentication method
	# Value: None | htpasswd | IMAP | LDAP | PAM | courier | http | remote_user | custom
	# Default: None
	# if setting 'htpasswd' the file /etc/radicale/users is used (hardcoded)

	# Htpasswd encryption method
	# Value: plain | sha1 | ssha | crypt
#	option htpasswd_encryption 'crypt'

	# for other authenication methods consult Radicale documentation
	# and set options here


####################################################
# Git default options
#
config	setting	'git'

	# Git default options
#	option committer 'Radicale <radicale@example.com>'


####################################################
# Rights backend
#
config setting 'rights'

	# Value: None | authenticated | owner_only | owner_write | from_file | custom
	# Default: None
	# if setting 'from_file' the file /etc/radicale/rights is used (hardcoded)

	# Custom rights handler
#	option custom_handler ''


####################################################
# Storage backend
# -------
# WARNING: ONLY "filesystem" IS DOCUMENTED AND TESTED,
#          OTHER BACKENDS ARE NOT READY FOR PRODUCTION.
# -------
#
config setting 'storage'
	# Value: filesystem | multifilesystem | database | custom
	option	type			'filesystem'
	option	filesystem_folder	'/srv/radicale'


####################################################
# Additional HTTP headers
#
config	setting	'headers'
	# enable all if using CardDavMATE-, CalDavZAP- or InfCloud- WEBclient
#	list	Access_Control_Allow_Origin	'*'
#	list	Access_Control_Allow_Methods	'GET'
#	list	Access_Control_Allow_Methods	'POST'
#	list	Access_Control_Allow_Methods	'OPTIONS'
#	list	Access_Control_Allow_Methods	'PROPFIND'
#	list	Access_Control_Allow_Methods	'PROPPATCH'
#	list	Access_Control_Allow_Methods	'REPORT'
#	list	Access_Control_Allow_Methods	'PUT'
#	list	Access_Control_Allow_Methods	'MOVE'
#	list	Access_Control_Allow_Methods	'DELETE'
#	list	Access_Control_Allow_Methods	'LOCK'
#	list	Access_Control_Allow_Methods	'UNLOCK'
#	list	Access_Control_Allow_Headers	'User-Agent'
#	list	Access_Control_Allow_Headers	'Authorization'
#	list	Access_Control_Allow_Headers	'Content-type'
#	list	Access_Control_Allow_Headers	'Depth'
#	list	Access_Control_Allow_Headers	'If-match'
#	list	Access_Control_Allow_Headers	'If-None-Match'
#	list	Access_Control_Allow_Headers	'Lock-Token'
#	list	Access_Control_Allow_Headers	'Timeout'
#	list	Access_Control_Allow_Headers	'Destination'
#	list	Access_Control_Allow_Headers	'Overwrite'
#	list	Access_Control_Allow_Headers	'X-client'
#	list	Access_Control_Allow_Headers	'X-Requested-With'
#	list	Access_Control_Expose_Headers	'Etag'


####################################################
# Global logging options
#
config setting 'logging'

	# Set the default logging level to debug for all outputs (ignore output level settings)
	# Default: 0 (disabled)
#	option	debug	'1'
	# Log all environment variables (including those set in the shell) when starting
	# Default: 0 (disabled)
#	option	full_environment '1'


####################################################
# Spezial logging options
# !!! not documented in Radicale documentation
# !!! special settings for this implementation
#
config logging 'logger'

	# Level: DEBUG | INFO | WARNING | ERROR | CRITICAL
	# To nearly disable logging set level to critical

	# log level on console
#	option	console_level	'ERROR'

	# Here we use Rotating Logfiles in this implementation
	# !!! if maxbytes and/or backupcount is set to 0  !!!
	# !!! file rotation is disabled and logfile grows endless !!!
	# log level
#	option	file_level	'INFO'
	# directory where log files are written
#	option	file_path	'/var/log/radicale'
	# max size of each logfile (see warning above)
#	option	file_maxbytes	'8196'
	# number of backup files to create (see warning above)
#	option	file_backupcount	'1'

	# log level for syslog logging
#	option	syslog_level	'WARNING'

