From e14304fb513450a14225bfa37408cd18a2390515 Mon Sep 17 00:00:00 2001 From: Ingolf Wagner Date: Mon, 3 Jul 2023 09:39:14 +0200 Subject: [PATCH] fiddeling around with the samba share module --- nixos/machines/chungus/media-share.nix | 4 +++ nixos/modules/services/samba-share.nix | 40 +++++++++++++++++--------- 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/nixos/machines/chungus/media-share.nix b/nixos/machines/chungus/media-share.nix index c756db1..fef3971 100644 --- a/nixos/machines/chungus/media-share.nix +++ b/nixos/machines/chungus/media-share.nix @@ -4,6 +4,10 @@ # To set password: # nix-shell -p samba --run "smbpasswd -a media" custom.samba-share.enable = true; + custom.samba-share.enableWSDD = true; + custom.samba-share.folders = { + music = "/media/music"; + }; custom.samba-share.private = { media = { folder = "/media"; diff --git a/nixos/modules/services/samba-share.nix b/nixos/modules/services/samba-share.nix index 461814f..9d62911 100644 --- a/nixos/modules/services/samba-share.nix +++ b/nixos/modules/services/samba-share.nix @@ -1,16 +1,22 @@ { config, lib, pkgs, ... }: with lib; - +with types; let - cfg = config.custom.samba-share; - in { options.custom.samba-share = { enable = mkEnableOption "enable custom.samba-share"; + enableWSDD = mkEnableOption "enable services.samba-wsdd.enable"; + guestUser = mkOption { + default = "media"; + type = str; + description = '' + user name a guest users uses. + ''; + }; folders = mkOption { default = { }; type = with types; attrsOf str; @@ -52,7 +58,7 @@ in enable = true; # services.samba.securityType = "share"; extraConfig = '' - guest account = smbguest + guest account = ${cfg.guestUser} map to guest = bad user # disable printing @@ -89,20 +95,28 @@ in cfg.private); }; - users.users.smbguest = { - name = "smbguest"; - uid = config.ids.uids.smbguest; - description = "smb guest user"; - home = "/home/smbguest"; - createHome = true; - group = "smbguest"; - }; - users.groups.smbguest = { }; + #users.users.smbguest = { + # name = "smbguest"; + # uid = config.ids.uids.smbguest; + # description = "smb guest user"; + # home = "/home/smbguest"; + # createHome = true; + # group = "smbguest"; + #}; + #users.groups.smbguest = { }; }) # todo : maybe better to have a parameter for this (mkIf config.services.syncthing.enable { users.groups."syncthing".members = [ "smbguest" ]; }) + + (mkIf cfg.enableWSDD { + services.samba-wsdd.enable = true; + services.samba-wsdd.discovery = true; + networking.firewall.allowedTCPPorts = [ 5357 ]; + networking.firewall.allowedUDPPorts = [ 3702 ]; + } + ) ]; }