nix/moduler/services/kanboard/default.nix
2025-11-12 10:12:29 +01:00

47 lines
1.1 KiB
Nix

{
lib,
pkgs,
config,
...
}:
with lib;
{
options = {
kanboard = {
enable = mkEnableOption "enables kanboard";
port = lib.mkOption {
type = lib.types.int;
default = 3128;
description = "The port kanboard listens on.";
};
host = mkOption {
type = types.str;
defaultText = literalExpression "127.0.0.1";
description = "The hostname that kanboard binds to";
};
domain = mkOption {
type = types.str;
defaultText = literalExpression "home.wastring.com";
description = "The hostname that kanboard binds to";
};
};
};
config = mkMerge [
(mkIf config.kanboard.enable {
services.kanboard = {
enable = true;
domain = config.kanboard.domain;
nginx = null;
};
services.nginx.virtualHosts.${config.kanboard.domain} = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://${toString config.kanboard.host}:${toString config.kanboard.port}";
proxyWebsockets = true;
};
};
})
];
}