summaryrefslogtreecommitdiff
path: root/hosts/poweredge/fileshares.nix
blob: faf0f83ca5cddc98b52042f00ce38f9143accbf8 (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
{
	# Configure services
	services._fileShares = {
		enable = true;
		smb.openFirewall = true;
		nfs.openFirewall = true;
	};
	# Shares
	services._fileShares.shares = {
		WinBackups = {
			path = "/media/ingens/backups/windows";
			smb.enable = true;
		};
		pictures = {
			path = "/media/ingens/pictures";
			nfs.enable = true;
		};
		tapes = {
			path = "/media/ingens/tapes";
			nfs.enable = true;
			smb.enable = true;
		};
		backups = {
			path = "/media/ingens/backups";
			nfs.enable = true;
		};
		games = {
			path = "/media/ingens/games";
			nfs.enable = true;
		};
		documents = {
			path = "/media/ingens/documents";
			nfs.enable = true;
			smb.enable = true;
		};
	};

	# retro shares
	containers.retronas = {
		autoStart = true;
		bindMounts = {
			"/media/ingens/games" = {
				hostPath = "/media/ingens/games";
				isReadOnly = false;
			};
		};

		config = { config, pkgs, ... }: {
			imports = [ ../../nixos/services/fileshares.nix ];  # Get fileshares module

			services._fileShares = {
				enable = true;
				smb = {
					port = 1445;
					enableLegacyNT1 = true;  # purpose of this container
					openFirewall = true;
				};
			};
			services._fileShares.shares = {
				PS2 = {
					path = "/media/ingens/games/ps2";
					smb.enable = true;
					smb.allowGuests = true;
				};
			};
		};
	};
}