summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/share/omo.nix
blob: 16959bc90fab1b317330d34318fe2353020a72ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
{ config, lib, pkgs, ... }:

with import <stockholm/lib>;
let
  hostname = config.krebs.build.host.name;
  # TODO local-ip from the nets config
  internal-ip = "192.168.111.11";
  # local-ip = config.krebs.build.host.nets.retiolum.ip4.addr;
in {

  # samba share /media/crypt1/share
  systemd.services.samba-smbd.serviceConfig.RequiresMountFor = [ "/media/cryptX" ];
  users.users.smbguest = {
    name = "smbguest";
    uid = config.ids.uids.smbguest;
    description = "smb guest user";
    home = "/var/empty";
    group = "share";
  };
  users.groups.share = {};
  services.samba = {
    enable = true;
    shares = {
      winshare = {
        path = "/media/crypt1/share";
        "read only" = "no";
        browseable = "yes";
        "guest ok" = "yes";
      };
      emu = {
        path = "/media/crypt1/emu";
        "read only" = "yes";
        browseable = "yes";
        "guest ok" = "yes";
      };
      movies = {
        path = "/media/cryptX/movies";
        "read only" = "yes";
        browseable = "yes";
        "guest ok" = "yes";
      };
      audiobook = {
        path = "/media/crypt1/audiobooks";
        "read only" = "yes";
        browseable = "yes";
        "guest ok" = "yes";
      };
      crypt0 = {
        path = "/media/crypt0";
        "read only" = "yes";
        browseable = "yes";
        "guest ok" = "yes";
      };
      anime = {
        path = "/media/cryptX/anime";
        "read only" = "yes";
        browseable = "yes";
        "guest ok" = "yes";
      };
      serien = {
        path = "/media/cryptX/series";
        "read only" = "yes";
        browseable = "yes";
        "guest ok" = "yes";
      };
      youtube = {
        path = "/media/cryptX/youtube";
        "read only" = "yes";
        browseable = "yes";
        "guest ok" = "yes";
      };
      photos = {
        path = "/media/cryptX/photos";
        "read only" = "yes";
        browseable = "yes";
        "guest ok" = "yes";
      };
      crypX-games = {
        path = "/media/cryptX/games";
        "read only" = "yes";
        browseable = "yes";
        "guest ok" = "yes";
      };
      media-rw = {
        path = "/media/";
        "read only" = "no";
        browseable = "yes";
        "guest ok" = "no";
        "valid users" = "makefu";
      };
      #cloud = {
      #  path = "/media/cloud/download/finished";
      #  "read only" = "no";
      #  browseable = "yes";
      #  "guest ok" = "yes";
      #};
    };
    extraConfig = ''
      guest account = smbguest
      map to guest = bad user
      # disable printing
      load printers = no
      printing = bsd
      printcap name = /dev/null
      disable spoolss = yes
      workgroup = WORKGROUP
      server string = ${config.networking.hostName}
      netbios name = ${config.networking.hostName}
    '';
  };
}