50 lines
1.1 KiB
Nix
50 lines
1.1 KiB
Nix
{ config, ... }:
|
|
let
|
|
metaRepo = config.meta.lib.repo;
|
|
metaLib = config.meta.lib;
|
|
service = metaRepo.services.radicale;
|
|
in
|
|
{
|
|
flake.modules.nixos.radicale =
|
|
{ lib, ... }:
|
|
lib.mkMerge [
|
|
{
|
|
services.radicale = {
|
|
enable = true;
|
|
settings = {
|
|
server.hosts = [ "${service.host}:${toString service.port}" ];
|
|
|
|
auth = {
|
|
type = "htpasswd";
|
|
htpasswd_filename = "/var/lib/radicale/users";
|
|
htpasswd_encryption = "bcrypt";
|
|
};
|
|
|
|
storage.filesystem_folder = "/var/lib/radicale/collections";
|
|
};
|
|
};
|
|
}
|
|
|
|
(metaLib.mkCaddyReverseProxy {
|
|
inherit (service)
|
|
domain
|
|
port
|
|
;
|
|
extraHeaders = [
|
|
{
|
|
name = "X-Script-Name";
|
|
value = "/";
|
|
}
|
|
{
|
|
name = "X-Forwarded-For";
|
|
value = "{remote}";
|
|
}
|
|
{
|
|
name = "X-Remote-User";
|
|
value = "{http.auth.user.id}";
|
|
}
|
|
];
|
|
})
|
|
];
|
|
}
|