summary refs log tree commit diff
path: root/nixos/modules/services
diff options
context:
space:
mode:
authorRaito Bezarius <masterancpp@gmail.com>2022-12-12 12:14:49 +0100
committerRaito Bezarius <masterancpp@gmail.com>2022-12-18 01:05:53 +0100
commitb19612cb24b61132d57cd1e8abeba09fdf2a5d86 (patch)
tree04379372dc770134a343193151a1cd8ce248f614 /nixos/modules/services
parent3cf892d8ba2940a6bfa37ac6e46c28f90e62ae37 (diff)
downloadnixpkgs-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/modules/services')
-rw-r--r--nixos/modules/services/web-apps/dolibarr.nix19
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 ];
+  })
+]);
 }