diff options
author | Raito Bezarius <masterancpp@gmail.com> | 2022-12-12 12:14:49 +0100 |
---|---|---|
committer | Raito Bezarius <masterancpp@gmail.com> | 2022-12-18 01:05:53 +0100 |
commit | b19612cb24b61132d57cd1e8abeba09fdf2a5d86 (patch) | |
tree | 04379372dc770134a343193151a1cd8ce248f614 /nixos | |
parent | 3cf892d8ba2940a6bfa37ac6e46c28f90e62ae37 (diff) | |
download | nixpkgs-b19612cb24b61132d57cd1e8abeba09fdf2a5d86.tar nixpkgs-b19612cb24b61132d57cd1e8abeba09fdf2a5d86.tar.gz nixpkgs-b19612cb24b61132d57cd1e8abeba09fdf2a5d86.tar.bz2 nixpkgs-b19612cb24b61132d57cd1e8abeba09fdf2a5d86.tar.lz nixpkgs-b19612cb24b61132d57cd1e8abeba09fdf2a5d86.tar.xz nixpkgs-b19612cb24b61132d57cd1e8abeba09fdf2a5d86.tar.zst nixpkgs-b19612cb24b61132d57cd1e8abeba09fdf2a5d86.zip |
nixos/services/dolibarr: decouple nginx and let other web servers be used
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/web-apps/dolibarr.nix | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/nixos/modules/services/web-apps/dolibarr.nix b/nixos/modules/services/web-apps/dolibarr.nix index 5335c439329..f262099354d 100644 --- a/nixos/modules/services/web-apps/dolibarr.nix +++ b/nixos/modules/services/web-apps/dolibarr.nix @@ -1,11 +1,11 @@ { config, pkgs, lib, ... }: let - inherit (lib) any boolToString concatStringsSep isBool isString literalExpression mapAttrsToList mkDefault mkEnableOption mkIf mkOption optionalAttrs types; + inherit (lib) any boolToString concatStringsSep isBool isString mapAttrsToList mkDefault mkEnableOption mkIf mkMerge mkOption optionalAttrs types; package = pkgs.dolibarr.override { inherit (cfg) stateDir; }; cfg = config.services.dolibarr; - vhostCfg = config.services.nginx.virtualHosts."${cfg.domain}"; + vhostCfg = lib.optionalAttr (cfg.nginx != null) config.services.nginx.virtualHosts."${cfg.domain}"; mkConfigFile = filename: settings: let @@ -38,7 +38,7 @@ let force_install_database = cfg.database.name; force_install_databaselogin = cfg.database.user; - force_install_mainforcehttps = vhostCfg.forceSSL; + force_install_mainforcehttps = vhostCfg.forceSSL or false; force_install_createuser = false; force_install_dolibarrlogin = null; } // optionalAttrs (cfg.database.passwordFile != null) { @@ -183,7 +183,8 @@ in }; # implementation - config = mkIf cfg.enable { + config = mkIf cfg.enable (mkMerge [ + { assertions = [ { assertion = cfg.database.createLocally -> cfg.database.user == cfg.user; @@ -214,7 +215,7 @@ in # Security settings dolibarr_main_prod = true; - dolibarr_main_force_https = vhostCfg.forceSSL; + dolibarr_main_force_https = vhostCfg.forceSSL or false; dolibarr_main_restrict_os_commands = "${pkgs.mariadb}/bin/mysqldump, ${pkgs.mariadb}/bin/mysql"; dolibarr_nocsrfcheck = false; dolibarr_main_instance_unique_id = '' @@ -314,7 +315,9 @@ in users.groups = optionalAttrs (cfg.group == "dolibarr") { dolibarr = { }; }; - - users.users."${config.services.nginx.group}".extraGroups = [ cfg.group ]; - }; + } + (mkIf (cfg.nginx != null) { + users.users."${config.services.nginx.group}".extraGroups = mkIf (cfg.nginx != null) [ cfg.group ]; + }) +]); } |