blob: 71cd3acffb5919edd35bae85f2d219b660a5b1a1 (
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
|
{ lib, ... }:
let
commonFolderSettings = {
devices = [
"bismuth"
"graphite"
"renard"
];
# clean every hour, keep files that are less than 14 days old.
versioning = {
type = "staggered";
params = {
cleanInterval = toString (60 * 60);
maxAge = toString (14 * 24 * 60 * 60);
};
};
};
folder = name: path: {
${name} = {
inherit path;
} // commonFolderSettings;
};
in
{
# client-side
services.syncthing = {
enable = true;
openDefaultPorts = true;
dataDir = "/home/mel";
configDir = "/home/mel/.config/syncthing";
user = "mel";
group = "users";
# only take declarative configuration below
overrideDevices = true;
overrideFolders = true;
settings = {
devices = {
# clients
bismuth.id = "MXC4UQG-PRZESJ3-AQYGWNG-EMCI44Q-UC7YFNP-6ZDF3SA-NLZCVUH-FQAK6QK";
graphite.id = "THWA2HN-BZ4URXS-P5PKAJY-YEBYQSH-2MUDKXC-CL3YQ2A-VHFUPCE-ROHQNQ7";
# server, defined in network
renard.id = "XLGIQ7O-NZ6RRJT-EOEZHGT-SCX5MMM-NCC3WWO-D4QLBY5-EP5ZNKA-CL74XAU";
};
folders = lib.mergeAttrsList [
# freedesktop.org user directories
(folder "desktop" "~/Desktop")
(folder "documents" "~/Documents")
(folder "pictures" "~/Pictures")
(folder "music" "~/Music")
(folder "videos" "~/Videos")
# other custom directories
(folder "thoughts" "~/Thoughts")
(folder "code" "~/Code")
(folder "scripts" "~/Scripts")
(folder "projects" "~/Projects")
];
# no telemetry
options.urAccepted = -1;
};
};
}
|