48 lines
1,015 B
Nix
48 lines
1,015 B
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
osConfig,
|
|
...
|
|
}: let
|
|
cfg = config.services.panoramax;
|
|
in {
|
|
options.services.panoramax = {
|
|
enable = lib.mkEnableOption "panoramax";
|
|
|
|
package = lib.mkOption {
|
|
type = lib.types.package;
|
|
default = pkgs.panoramax;
|
|
description = "The panoramax package to use";
|
|
};
|
|
|
|
# TODO: create configs
|
|
# TODO: auto config db
|
|
# config = {
|
|
# DB_PORT = lib.mkOption {};
|
|
# DB_HOST = lib.mkOption {};
|
|
# DB_USERNAME = lib.mkOption {};
|
|
# DB_PASSWORD = lib.mkOption {};
|
|
# DB_NAME = lib.mkOption {};
|
|
# FS_URL = lib.mkOption {};
|
|
# };
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable (
|
|
lib.mkMerge [
|
|
{
|
|
# TODO: configure options for the package
|
|
}
|
|
(
|
|
lib.mkIf config.services.fail2ban {
|
|
# TODO: configure options for fail2ban
|
|
}
|
|
)
|
|
(
|
|
lib.mkIf osConfig.host.impermanence.enable {
|
|
# TODO: configure impermanence for panoramax data
|
|
}
|
|
)
|
|
]
|
|
);
|
|
}
|