Jump to content

Radicale: Difference between revisions

From Official NixOS Wiki
Jopejoe1 (talk | contribs)
No edit summary
Tgarea (talk | contribs)
mNo edit summary
Line 14: Line 14:
== Authentication ==
== Authentication ==


The default authentication mode is <code>None</code> which just allows all usernames and passwords. The other option is to use an Apache htpasswd file for authentication.
The default authentication mode is <code>denyall</code>. You can change it to <code>none</code> which just allows all usernames and passwords. The other option is to use an Apache htpasswd file for authentication.


<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">

Revision as of 22:14, 20 October 2026

Radicale is a Free and Open-Source CalDAV (calendars, todo-lists) and CardDAV (contacts) Server. For more information about Radicale itself, see https://radicale.org/.

This basic configuration will run the server. Note that you might want to allow the port (5232 in this case) on your firewall.

services.radicale = {
  enable = true;
  settings.server.hosts = [ "0.0.0.0:5232" ];
};

The settings is standard Radicale configuration, see https://radicale.org/v3.html#configuration.

Authentication

The default authentication mode is denyall. You can change it to none which just allows all usernames and passwords. The other option is to use an Apache htpasswd file for authentication.

services.radicale = {
  enable = true;
  settings = {
    server.hosts = [ "0.0.0.0:5232" ];
    auth = {
      type = "htpasswd";
      htpasswd_filename = "/path/to/htpasswd/file/radicale_users";
      # hash function used for passwords. May be `plain` if you don't want to hash the passwords
      htpasswd_encryption = "bcrypt";
    };
  };
};

Web Proxy examples

Caddy configured to proxy radicale in a subdirectory

caddy = {
  enable = true;
  extraConfig = ''
    :80 {
      redir /radicale /radicale/
      handle /radicale/* {
        uri strip_prefix /radicale
        reverse_proxy localhost:5232 {
          header_up X-Script-Name /radicale
          header_up Authorization {header.Authorization}
        }
      }
    }
  '';
}

Nginx virtualhost location snippet configured to proxy radicale in a subdirectory

locations."/radicale/" = {
  proxyPass = "http://127.0.0.1:5232/";
  extraConfig = ''
    proxy_set_header X-Script-Name /radicale;
    proxy_pass_header Authorization;
  '';
};


See also