Caleb Herbert <[email protected]> writes:
> How do I deploy Radicale? Just (service radicale-service-type)?
>
> Or do I need a config?
I use it like that (with nginx as reverse proxy) and htpasswd for auth:
(define-module (test caldav)
#:use-module (gnu services mail)
#:use-module (gnu services web)
#:use-module (gnu services)
#:export (caldav-services))
(define caldav-services
(list
(service radicale-service-type
(radicale-configuration
(web-interface? #f)
(auth (radicale-auth-configuration
(type 'htpasswd)
(htpasswd-encryption 'bcrypt)
;; File is created manually using htpasswd
;; Like: guix shell httpd -- htpasswd -B -c radicale-users
testuser
(htpasswd-filename "/etc/radicale/users")))))
(simple-service 'radicale-nginx nginx-service-type
(list (nginx-server-configuration
(listen '("443 ssl"))
(server-name '("dav.test.com"))
(ssl-certificate
"/etc/letsencrypt/live/test.com/fullchain.pem")
(ssl-certificate-key
"/etc/letsencrypt/live/test.com/privkey.pem")
(locations
(list (nginx-location-configuration
(uri "/")
(body
(list
"proxy_pass http://127.0.0.1:5232/;"
"proxy_pass_header Authorization;"
"proxy_set_header Host $host;"
"proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;"
"proxy_set_header X-Forwarded-Proto
$scheme;"
"proxy_set_header X-Script-Name
\"\";"))))))))))