about summary refs log tree commit diff
path: root/nixos/modules/services/web-servers
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2024-06-26 00:53:58 +0200
committerGitHub <noreply@github.com>2024-06-26 00:53:58 +0200
commit08605eec2a46e9d956e50f28d513f7d02ff03fe8 (patch)
treea054dc60e87f7c39067001594408e88c0ff32cf6 /nixos/modules/services/web-servers
parenta5d8db4258eb269fd110872b13d0cdcdff7637ab (diff)
parenta8da5dbf32870048279626d47bc9587462e7d955 (diff)
Merge pull request #311381 from minijackson/tomcat-port
nixos/tomcat: add 'port' option
Diffstat (limited to 'nixos/modules/services/web-servers')
-rw-r--r--nixos/modules/services/web-servers/tomcat.nix16
1 files changed, 14 insertions, 2 deletions
diff --git a/nixos/modules/services/web-servers/tomcat.nix b/nixos/modules/services/web-servers/tomcat.nix
index e243778cc747c..1c5a9af5c9245 100644
--- a/nixos/modules/services/web-servers/tomcat.nix
+++ b/nixos/modules/services/web-servers/tomcat.nix
@@ -21,6 +21,14 @@ in
         example = "tomcat10";
       };
 
+      port = lib.mkOption {
+        type = lib.types.port;
+        default = 8080;
+        description = ''
+          The TCP port Tomcat should listen on.
+        '';
+      };
+
       purifyOnStart = lib.mkOption {
         type = lib.types.bool;
         default = false;
@@ -244,8 +252,12 @@ in
             hostElementsString = lib.concatMapStringsSep "\n" hostElementForVirtualHost cfg.virtualHosts;
             hostElementsSedString = lib.replaceStrings ["\n"] ["\\\n"] hostElementsString;
           in ''
-            # Create a modified server.xml which also includes all virtual hosts
-            sed -e "/<Engine name=\"Catalina\" defaultHost=\"localhost\">/a\\"${lib.escapeShellArg hostElementsSedString} \
+            # Create a modified server.xml which listens on the given port,
+            # and also includes all virtual hosts.
+            # The host modification must be last here,
+            # else if hostElementsSedString is empty sed gets confused as to what to append
+            sed -e 's/<Connector port="8080"/<Connector port="${toString cfg.port}"/' \
+                -e "/<Engine name=\"Catalina\" defaultHost=\"localhost\">/a\\"${lib.escapeShellArg hostElementsSedString} \
                   ${tomcat}/conf/server.xml > ${cfg.baseDir}/conf/server.xml
           ''
         }