···2626 The port on which the introducer will listen.
2727 '';
2828 };
2929+ tub.location = mkOption {
3030+ default = null;
3131+ type = types.nullOr types.str;
3232+ description = ''
3333+ The external location that the introducer should listen on.
3434+3535+ If specified, the port should be included.
3636+ '';
3737+ };
2938 package = mkOption {
3039 default = pkgs.tahoelafs;
3140 defaultText = "pkgs.tahoelafs";
···6069 system to listen on a different port.
6170 '';
6271 };
7272+ tub.location = mkOption {
7373+ default = null;
7474+ type = types.nullOr types.str;
7575+ description = ''
7676+ The external location that the node should listen on.
7777+7878+ This is the setting to tweak if there are multiple interfaces
7979+ and you want to alter which interface Tahoe is advertising.
8080+8181+ If specified, the port should be included.
8282+ '';
8383+ };
6384 web.port = mkOption {
6485 default = 3456;
6586 type = types.int;
···144165 [node]
145166 nickname = ${settings.nickname}
146167 tub.port = ${toString settings.tub.port}
168168+ ${optionalString (settings.tub.location != null)
169169+ "tub.location = ${settings.tub.location}"}
147170 '';
148171 });
149172 # Actually require Tahoe, so that we will have it installed.
···209232 [node]
210233 nickname = ${settings.nickname}
211234 tub.port = ${toString settings.tub.port}
235235+ ${optionalString (settings.tub.location != null)
236236+ "tub.location = ${settings.tub.location}"}
212237 # This is a Twisted endpoint. Twisted Web doesn't work on
213238 # non-TCP. ~ C.
214239 web.port = tcp:${toString settings.web.port}