Files
nix-config/modules/nixos/services/calibre/default.nix
2026-04-05 19:10:23 -05:00

58 lines
1.2 KiB
Nix

{
config,
lib,
pkgs,
namespace,
...
}:
let
name = "calibre";
cfg = config.${namespace}.services.${name};
cfgWeb = config.${namespace}.services."${name}-web";
calibreConfig = lib.${namespace}.mkModule {
inherit config name;
serviceName = "calibre-web";
description = "Calibre Server";
options = { };
moduleConfig = {
services.calibre-server = {
inherit (cfg) port;
enable = false;
openFirewall = true;
libraries = [ "${cfg.dataDir}/books" ];
};
};
};
calibreWebConfig = lib.${namespace}.mkModule {
inherit config;
name = "${name}-web";
description = "Calibre Web";
options = { };
moduleConfig = {
services.calibre-web = {
enable = true;
openFirewall = true;
package = pkgs.stable.calibre-web;
dataDir = "${cfgWeb.configDir}/calibre-web";
listen = {
inherit (cfgWeb) port;
ip = "0.0.0.0";
};
options = {
enableBookUploading = true;
enableBookConversion = true;
calibreLibrary = "${cfgWeb.dataDir}/books";
};
};
};
};
in
{
imports = [
calibreConfig
calibreWebConfig
];
}