These are some guides for various use.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

210 lines
5.4 KiB

7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
  1. # Radicale
  2. ## Setup Server
  3. ### Docker
  4. The official container and documentation was made by [tomsquest](https://hub.docker.com/r/tomsquest/docker-radicale).
  5. The `latest` tag at the moment of writing this readme was corrupted.
  6. The last usable tag was used therefore to guarantee best performance for all users.
  7. #### Volumes
  8. Set the following volumes with the -v tag.
  9. | Volume-Name | Container mount | Description |
  10. | ----------------- | --------------- | --------------------------- |
  11. | `radicale_data` | `/data` | storage for caldav |
  12. | `radicale_config` | `/config` | storage for radicale config |
  13. #### Ports
  14. Set the following ports with the -p tag.
  15. | Container Port | Recommended outside port | Protocol | Description |
  16. | -------------- | ------------------------ | -------- | ------------- |
  17. | `5232` | `5232` | TCP | WebUI, caldav |
  18. #### Additional
  19. There are some special variables to set.
  20. | Flag | Usage |
  21. | ------------- | ---------------------------------------------------------------------- |
  22. | `--read-only` | make radicale read-only, caldav can still be changed and used normally |
  23. #### Rebuild
  24. ```shell
  25. #/bin/sh
  26. docker stop radicale
  27. docker rm radicale
  28. docker pull tomsquest/docker-radicale:2.1.11.4
  29. docker run --name radicale \
  30. --restart unless-stopped \
  31. --read-only \
  32. -p 5232:5232 \
  33. -v radicale_data:/data \
  34. -v radicale_config:/config \
  35. -d tomsquest/docker-radicale:2.1.11.4
  36. ```
  37. #### Configuration
  38. After installation there are a few crucial steps to take to secure your
  39. calendars with a login.
  40. It is important to change the config file which can be found in the docker
  41. volume with name `radicale_config` to match the `config`-file.
  42. ```txt
  43. # -*- mode: conf -*-
  44. # vim:ft=cfg
  45. # Config file for Radicale - A simple calendar server
  46. #
  47. # Place it into /etc/radicale/config (global)
  48. # or ~/.config/radicale/config (user)
  49. #
  50. # The current values are the default ones
  51. [server]
  52. # CalDAV server hostnames separated by a comma
  53. # IPv4 syntax: address:port
  54. # IPv6 syntax: [address]:port
  55. # For example: 0.0.0.0:9999, [::]:9999
  56. #hosts = 127.0.0.1:5232
  57. hosts = 0.0.0.0:5232
  58. # Max parallel connections
  59. #max_connections = 8
  60. # Max size of request body (bytes)
  61. #max_content_length = 100000000
  62. # Socket timeout (seconds)
  63. #timeout = 30
  64. # SSL flag, enable HTTPS protocol
  65. #ssl = False
  66. # SSL certificate path
  67. #certificate = /etc/ssl/radicale.cert.pem
  68. # SSL private key
  69. #key = /etc/ssl/radicale.key.pem
  70. # CA certificate for validating clients. This can be used to secure
  71. # TCP traffic between Radicale and a reverse proxy
  72. #certificate_authority =
  73. # SSL Protocol used. See python's ssl module for available values
  74. #protocol = PROTOCOL_TLSv1_2
  75. # Available ciphers. See python's ssl module for available ciphers
  76. #ciphers =
  77. # Reverse DNS to resolve client address in logs
  78. #dns_lookup = True
  79. [encoding]
  80. # Encoding for responding requests
  81. #request = utf-8
  82. # Encoding for storing local collections
  83. #stock = utf-8
  84. [auth]
  85. # Authentication method
  86. # Value: none | htpasswd | remote_user | http_x_remote_user
  87. type = htpasswd
  88. # Htpasswd filename
  89. htpasswd_filename = /data/users
  90. # Htpasswd encryption method
  91. # Value: plain | sha1 | ssha | crypt | bcrypt | md5
  92. # Only bcrypt can be considered secure.
  93. # bcrypt and md5 require the passlib library to be installed.
  94. htpasswd_encryption = bcrypt
  95. # Incorrect authentication delay (seconds)
  96. #delay = 1
  97. # Message displayed in the client when a password is needed
  98. #realm = Radicale - Password Required
  99. [rights]
  100. # Rights backend
  101. # Value: none | authenticated | owner_only | owner_write | from_file
  102. #type = owner_only
  103. # File for rights management from_file
  104. #file = /etc/radicale/rights
  105. [storage]
  106. # Storage backend
  107. # Value: multifilesystem
  108. #type = multifilesystem
  109. # Folder for storing local collections, created if not present
  110. #filesystem_folder = /var/lib/radicale/collections
  111. filesystem_folder = /data/collections
  112. # Delete sync token that are older (seconds)
  113. #max_sync_token_age = 2592000
  114. # Command that is run after changes to storage
  115. # Example: ([ -d .git ] || git init) && git add -A && (git diff --cached --quiet || git commit -m "Changes by "%(user)s)
  116. #hook =
  117. [web]
  118. # Web interface backend
  119. # Value: none | internal | radicale_infcloud
  120. # (See also https://github.com/Unrud/RadicaleInfCloud)
  121. type = internal
  122. [logging]
  123. # Threshold for the logger
  124. # Value: debug | info | warning | error | critical
  125. #level = warning
  126. # Don't include passwords in logs
  127. #mask_passwords = True
  128. [headers]
  129. # Additional HTTP headers
  130. #Access-Control-Allow-Origin = *
  131. ```
  132. Following this you need to make sure there is a password file in the docker
  133. volume `radicale_data` called `users`.
  134. The password will be encrypted using `bcrypt`.
  135. Steps to create a file with a user and password:
  136. - You will have to install the package which includes `htpasswd`; for debian
  137. based distributions this is `apt install apache2-utils`
  138. - `cd /var/lib/docker/volumes/radicale\_data/\_data` - go to the volume
  139. - `touch ./users` - create a file called users
  140. - `htpasswd -B ./users username` - add user with name and password to the file
  141. (change `username` to your desired username)
  142. Now you can go to the exposed port and login with your chosen username and password.
  143. If you only added one user you shouldn't be able to login with any other data
  144. than your username and password.