Radicale: Difference between revisions

From NixOS Wiki
imported>O8opi
mNo edit summary
Web proxy configuration examples
 
(2 intermediate revisions by 2 users not shown)
Line 10: Line 10:
</syntaxhighlight>
</syntaxhighlight>


The <code>settings</code> is standard Radicale configuration, see https://radicale.org/v3.html#basic-configuration.
The <code>settings</code> is standard Radicale configuration, see https://radicale.org/v3.html#configuration.


== Authentication ==
== Authentication ==
Line 30: Line 30:
};
};
</syntaxhighlight>
</syntaxhighlight>
== Web Proxy examples ==
Caddy configured to proxy radicale in a subdirectory
<syntaxhighlight lang="nix">
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}
        }
      }
    }
  '';
}
</syntaxhighlight>
Nginx virtualhost location snippet configured to proxy radicale in a subdirectory
<syntaxhighlight lang="nix">
locations."/radicale/" = {
  proxyPass = "http://127.0.0.1:5232/";
  extraConfig = ''
    proxy_set_header X-Script-Name /radicale;
    proxy_pass_header Authorization;
  '';
};
</syntaxhighlight>


== See also ==
== See also ==
* [https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/networking/radicale.nix Source code of the service]
* [https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/networking/radicale.nix Source code of the service]
* [https://search.nixos.org/options/?query=services.radicale List of Radicale options supported by NixOS]
* [https://search.nixos.org/options/?query=services.radicale List of Radicale options supported by NixOS]
[[Category:Server]]

Latest revision as of 16:51, 5 August 2024

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 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