dotfiles/nixos/syncthing.nix

94 lines
2.5 KiB
Nix

{
config,
pkgs,
inputs,
...
}: let
workstations = ["skinnyv" "foureighty" "thinky"];
workstations_plus_phone = ["OnePlus9"] ++ workstations;
in {
services.syncthing = {
enable = true;
user = "cyryl";
dataDir = "/home/cyryl/";
openDefaultPorts = true;
package =
inputs.nixpkgs-nixos-unstable.legacyPackages."x86_64-linux".syncthing;
overrideDevices = false;
devices = {
"OnePlus9" = {
id = "2UVDAHX-IWQEBLF-6VOYLWO-MYQBMO2-62QPM76-CFYPPZW-CWVIBZF-JEUS4QZ";
};
"skinnyv" = {
id = "SUNR6EL-UBSLEE6-CZOSGIL-D527FQG-BXL2PMA-ISEQHMV-2CXKKPD-U7GERQB";
};
"foureighty" = {
id = "Q4AA3LA-QIMMBNK-QWKW2AL-5SRGBU3-RYWD5EH-GKMVXRT-XVYFU3R-UYAAMAH";
};
"hagath" = {
id = "SXQA3TX-3G5T4CQ-3SX42KJ-UEBZWF7-RL66ORF-DVV6ROT-PYTE6QV-EARKMQU";
};
"thinky" = {
id = "G6SYM4M-32SHELZ-E4IDW3L-3MAOZ54-N7FB5BD-ZNUFXYW-2JVV6GB-LQHNRAF";
};
};
folders = {
"/home/cyryl/vaults" = {
id = "vaults";
label = "vaults";
devices = workstations_plus_phone ++ ["hagath"];
};
"/home/cyryl/documents" = {
id = "documents";
label = "documents";
devices = workstations_plus_phone ++ ["hagath"];
};
"/home/cyryl/camera" = {
id = "camera";
label = "camera";
devices = workstations_plus_phone;
};
"/home/cyryl/ISOs" = {
id = "isos";
label = "ISOs";
devices = workstations;
};
"/home/cyryl/rpg" = {
id = "rpg";
label = "rpg";
devices = workstations;
};
"/home/cyryl/music" = {
id = "music";
label = "music";
devices = workstations;
};
"/home/cyryl/photos" = {
id = "photos";
label = "photos";
devices = workstations ++ ["hagath"];
};
"/home/cyryl/gopro" = {
id = "gopro";
label = "gopro";
devices = workstations;
};
"/home/cyryl/videos" = {
id = "videos";
label = "videos";
devices = workstations ++ ["hagath"];
};
};
extraOptions = {
options = {
listenAddresses = [
"tcp://${config.networking.hostName}.raptor-carp.ts.net:22000"
"quic://${config.networking.hostName}.raptor-carp.ts.net:22000"
"relay://vpsfree1.raptor-carp.ts.net:22067/?id=BVJ54DH-VCLK4C7-SKNGOZP-36K76IE-UEEKLVF-WA5QHN6-6TK2ICW-HSDI6Q7"
"dynamic+https://relays.syncthing.net/endpoint"
];
};
};
};
}