vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / networking / atftpd.nix
blobab674d85715c6eac9864948630ee1d9d9d192b4b
1 # NixOS module for atftpd TFTP server
2 { config, pkgs, lib, ... }:
3 let
5   cfg = config.services.atftpd;
7 in
11   options = {
13     services.atftpd = {
15       enable = lib.mkOption {
16         default = false;
17         type = lib.types.bool;
18         description = ''
19           Whether to enable the atftpd TFTP server. By default, the server
20           binds to address 0.0.0.0.
21         '';
22       };
24       extraOptions = lib.mkOption {
25         default = [];
26         type = lib.types.listOf lib.types.str;
27         example = lib.literalExpression ''
28           [ "--bind-address 192.168.9.1"
29             "--verbose=7"
30           ]
31         '';
32         description = ''
33           Extra command line arguments to pass to atftp.
34         '';
35       };
37       root = lib.mkOption {
38         default = "/srv/tftp";
39         type = lib.types.path;
40         description = ''
41           Document root directory for the atftpd.
42         '';
43       };
45     };
47   };
49   config = lib.mkIf cfg.enable {
51     systemd.services.atftpd = {
52       description = "TFTP Server";
53       after = [ "network.target" ];
54       wantedBy = [ "multi-user.target" ];
55       # runs as nobody
56       serviceConfig.ExecStart = "${pkgs.atftp}/sbin/atftpd --daemon --no-fork ${lib.concatStringsSep " " cfg.extraOptions} ${cfg.root}";
57     };
59   };