added syncthing to other computers

This commit is contained in:
Leyla Becker 2025-02-24 12:49:54 -06:00
parent 6d6e34e06a
commit c9bc06f594
3 changed files with 101 additions and 50 deletions

View file

@ -118,6 +118,16 @@
enable = true; enable = true;
subdomain = "drive"; subdomain = "drive";
}; };
sync = {
enable = true;
folders = {
leyla = {
documents.enable = true;
calendar.enable = true;
notes.enable = true;
};
};
};
}; };
networking = { networking = {
hostId = "c51763d6"; hostId = "c51763d6";

View file

@ -29,6 +29,16 @@
openRGB.enable = true; openRGB.enable = true;
graphicsAcceleration.enable = true; graphicsAcceleration.enable = true;
}; };
sync = {
enable = true;
folders = {
leyla = {
documents.enable = true;
calendar.enable = true;
notes.enable = true;
};
};
};
}; };
services = { services = {

View file

@ -35,7 +35,8 @@ in {
}; };
}; };
config = { config = lib.mkMerge [
{
systemd = lib.mkIf config.services.syncthing.enable { systemd = lib.mkIf config.services.syncthing.enable {
tmpfiles.rules = [ tmpfiles.rules = [
"d ${mountDir} 755 syncthing syncthing -" "d ${mountDir} 755 syncthing syncthing -"
@ -43,8 +44,11 @@ in {
"d ${config.services.syncthing.configDir} 755 syncthing syncthing -" "d ${config.services.syncthing.configDir} 755 syncthing syncthing -"
]; ];
}; };
}
(lib.mkIf config.host.sync.enable (lib.mkMerge [
{
services.syncthing = { services.syncthing = {
enable = config.host.sync.enable; enable = true;
user = "syncthing"; user = "syncthing";
group = "syncthing"; group = "syncthing";
dataDir = "${mountDir}/default"; dataDir = "${mountDir}/default";
@ -59,32 +63,59 @@ in {
coven = { coven = {
id = "QGU7NN6-OMXTWVA-YCZ73S5-2O7ECTS-MUCTN4M-YH6WLEL-U4U577I-7PBNCA5"; id = "QGU7NN6-OMXTWVA-YCZ73S5-2O7ECTS-MUCTN4M-YH6WLEL-U4U577I-7PBNCA5";
}; };
defiant = lib.mkIf (config.networking.hostName != "defiant") {
id = "TQGGO5F-PUXQYVV-LVVM7PR-Q4TKI6T-NR576PH-CFTVB4O-RP5LL6C-WKQMXQR";
};
twilight = lib.mkIf (config.networking.hostName != "twilight") {
id = "UDIYL7V-OAZ2BI3-EJRAWFB-GZYVDWR-JNUYW3F-FFQ35MU-XBTGWEF-QD6K6QN";
};
horizon = lib.mkIf (config.networking.hostName != "horizon") {
id = "OGPAEU6-5UR56VL-SP7YC4Y-IMVCRTO-XFD4CYN-Z6T5TZO-PFZNAT6-4MKWPQS";
};
}; };
folders = lib.mkMerge [ folders = lib.mkMerge [
config.host.sync.folders.extraFolders config.host.sync.folders.extraFolders
(lib.mkIf config.host.sync.folders.leyla.documents.enable { (lib.mkIf config.host.sync.folders.leyla.documents.enable {
"documents" = { "documents" = {
id = "hvrj0-9bm1p"; id = "hvrj0-9bm1p";
path = "/mnt/sync/leyla/documents"; path = "${mountDir}/leyla/documents";
devices = ["ceder" "coven"]; devices = ["ceder" "coven"];
}; };
}) })
(lib.mkIf config.host.sync.folders.leyla.calendar.enable { (lib.mkIf config.host.sync.folders.leyla.calendar.enable {
"calendar" = { "calendar" = {
id = "8oatl-1rv6w"; id = "8oatl-1rv6w";
path = "/mnt/sync/leyla/calendar"; path = "${mountDir}/leyla/calendar";
devices = ["ceder" "coven"]; devices = ["ceder" "coven"];
}; };
}) })
(lib.mkIf config.host.sync.folders.leyla.notes.enable { (lib.mkIf config.host.sync.folders.leyla.notes.enable {
"notes" = { "notes" = {
id = "dwbuv-zffnf"; id = "dwbuv-zffnf";
path = "/mnt/sync/leyla/notes"; path = "${mountDir}/leyla/notes";
devices = ["ceder" "coven"]; devices = ["ceder" "coven"];
}; };
}) })
]; ];
}; };
}; };
}
(lib.mkIf config.host.impermanence.enable {
environment.persistence = {
"/persist/system/root" = {
enable = true;
hideMounts = true;
directories = [
{
directory = mountDir;
user = "syncthing";
group = "syncthing";
}
];
}; };
};
})
]))
];
} }