configurations for my servers and desktops
nix
nixos
flake
dots
dotfiles
1{pkgs, ...}: {
2 users.groups.share-general.members = ["transmission" "devin"];
3 users.groups.share-media.members = ["jellyfin" "navidrome" "slskd" "transmission" "devin"];
4
5 systemd.tmpfiles.rules = [
6 "d /srv/general 2775 root share-general -"
7 "d /srv/media 2775 root share-media -"
8 ];
9
10 services.avahi = {
11 enable = true;
12 nssmdns4 = true;
13 publish = {
14 enable = true;
15 userServices = true;
16 };
17 };
18
19 services.samba-wsdd = {
20 enable = true;
21 openFirewall = true;
22 };
23
24 services.samba = {
25 enable = true;
26 openFirewall = true;
27 settings = {
28 global = {
29 # https://wiki.samba.org/index.php/Configure_Samba_to_Work_Better_with_Mac_OS_X
30 "vfs objects" = "catia fruit streams_xattr"; # added catia
31 "fruit:metadata" = "stream";
32 "fruit:veto_appledouble" = "no";
33 "fruit:nfs_aces" = "no";
34 "fruit:wipe_intentionally_left_blank_rfork" = "yes";
35 "fruit:delete_empty_adfiles" = "yes";
36 "fruit:posix_rename" = "yes";
37 };
38 "timemachine" = {
39 "fruit:time machine" = "yes";
40 "fruit:time machine max size" = "2T";
41 "path" = "/mnt/backup/timemachine";
42 "comment" = "os x time machine backups";
43 "writeable" = "yes";
44 };
45 "transmission" = {
46 "path" = "/var/lib/transmission";
47 "comment" = "transmission daemon directory";
48 "writeable" = "yes";
49 };
50 "slskd" = {
51 "path" = "/var/lib/slskd";
52 "comment" = "soulseek daemon directory";
53 "writeable" = "yes";
54 };
55 "general" = {
56 "path" = "/srv/general";
57 "comment" = "general miscellaneous stuff, like docs and downloads and other archival things";
58 "writeable" = "yes";
59 };
60 "media" = {
61 "path" = "/srv/media";
62 "comment" = "devin's music, tv (mostly anime), movies, and more";
63 "writeable" = "yes";
64 };
65 };
66 };
67}