grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / services / web-servers / jboss / default.nix
blobd243e0f3f1b7875d75e286499164b0ffa3191804
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
7   cfg = config.services.jboss;
9   jbossService = pkgs.stdenv.mkDerivation {
10     name = "jboss-server";
11     builder = ./builder.sh;
12     inherit (pkgs) jboss su;
13     inherit (cfg) tempDir logDir libUrl deployDir serverDir user useJK;
14   };
20   ###### interface
22   options = {
24     services.jboss = {
26       enable = mkOption {
27         type = types.bool;
28         default = false;
29         description = "Whether to enable JBoss. WARNING : this package is outdated and is known to have vulnerabilities.";
30       };
32       tempDir = mkOption {
33         default = "/tmp";
34         type = types.str;
35         description = "Location where JBoss stores its temp files";
36       };
38       logDir = mkOption {
39         default = "/var/log/jboss";
40         type = types.str;
41         description = "Location of the logfile directory of JBoss";
42       };
44       serverDir = mkOption {
45         description = "Location of the server instance files";
46         default = "/var/jboss/server";
47         type = types.str;
48       };
50       deployDir = mkOption {
51         description = "Location of the deployment files";
52         default = "/nix/var/nix/profiles/default/server/default/deploy/";
53         type = types.str;
54       };
56       libUrl = mkOption {
57         default = "file:///nix/var/nix/profiles/default/server/default/lib";
58         description = "Location where the shared library JARs are stored";
59         type = types.str;
60       };
62       user = mkOption {
63         default = "nobody";
64         description = "User account under which jboss runs.";
65         type = types.str;
66       };
68       useJK = mkOption {
69         type = types.bool;
70         default = false;
71         description = "Whether to use to connector to the Apache HTTP server";
72       };
74     };
76   };
79   ###### implementation
81   config = mkIf config.services.jboss.enable {
82     systemd.services.jboss = {
83       description = "JBoss server";
84       script = "${jbossService}/bin/control start";
85       wantedBy = [ "multi-user.target" ];
86     };
87   };