dotfiles/modules/nixos/services/samba/default.nix
2025-07-18 19:01:31 -05:00

70 lines
1.8 KiB
Nix
Executable file

{
pkgs,
flake,
...
}:
let
inherit (flake.config.services)
instances
;
service = instances.samba;
in
{
# If you ever need to start fresh, you need to add yourself to the Samba users database:
# sudo smbpasswd -a username
services = {
samba = {
package = pkgs.samba4Full;
enable = true;
openFirewall = true;
settings = {
global = {
"workgroup" = "WORKGROUP";
"server string" = "NixOS Samba Server";
"netbios name" = "ceres";
"security" = "user";
"hosts allow" = "192.168.0. 127.0.0.1 localhost";
"hosts deny" = "0.0.0.0/0";
"guest account" = "nobody";
"map to guest" = "bad user";
"create mask" = "0664";
"directory mask" = "0775";
"force create mode" = "0664";
"force directory mode" = "0775";
};
${instances.jellyfin.name} = {
path = instances.jellyfin.paths.path0;
writable = "true";
"valid users" = "%wheel";
"force group" = "users";
"create mask" = "0664";
"directory mask" = "0775";
};
${instances.audiobookshelf.name} = {
path = instances.audiobookshelf.paths.path0;
writable = "true";
"valid users" = "%wheel";
"force group" = "users";
"create mask" = "0664";
"directory mask" = "0775";
};
${instances.comfyui.name} = {
path = instances.comfyui.paths.path0;
writable = "true";
"valid users" = "%wheel";
"force group" = "users";
"create mask" = "0664";
"directory mask" = "0775";
};
};
};
};
networking = {
firewall = {
allowedTCPPorts = [
service.ports.port0
];
};
};
}