grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / programs / mosh.nix
blob897bcf941a5d09d3a435a20b2bf7888bde2076a9
1 { config, lib, pkgs, ... }:
3 let
5   cfg  = config.programs.mosh;
7 in
9   options.programs.mosh = {
10     enable = lib.mkEnableOption "mosh";
11     openFirewall = lib.mkEnableOption "" // {
12       description = "Whether to automatically open the necessary ports in the firewall.";
13       default = true;
14     };
15     withUtempter = lib.mkEnableOption "" // {
16       description = ''
17         Whether to enable libutempter for mosh.
19         This is required so that mosh can write to /var/run/utmp (which can be queried with `who` to display currently connected user sessions).
20         Note, this will add a guid wrapper for the group utmp!
21       '';
22       default = true;
23     };
24   };
26   config = lib.mkIf cfg.enable {
27     environment.systemPackages = [ pkgs.mosh ];
28     networking.firewall.allowedUDPPortRanges = lib.optional cfg.openFirewall { from = 60000; to = 61000; };
29     security.wrappers = lib.mkIf cfg.withUtempter {
30       utempter = {
31         source = "${pkgs.libutempter}/lib/utempter/utempter";
32         owner = "root";
33         group = "utmp";
34         setuid = false;
35         setgid = true;
36       };
37     };
38   };