{ 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 } ) ] ); }