dotfiles/nixos/syncthing.nix

107 lines
3 KiB
Nix

{
config,
pkgs,
inputs,
...
}: let
workstations = ["skinnyv" "foryog" "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";
};
"foryog" = {
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";
};
"mama" = {
id = "AKHXOY5-P6JA42Z-JIPAU7O-NQ7XDYZ-QAFGYD2-MMKCCJA-S7A77HJ-TRAGAA4";
};
"janusz" = {
id = "66JO6BS-R2WBYDP-J2TW3LZ-MSMCE6O-EDIC7OK-YUVE4TF-BOSA34Y-AWE56AN";
};
"danuta" = {
id = "X4V4GXR-VE6U5IZ-XTWETRL-U42DEMS-5ANDTT7-N5OUSYT-NOPYZGW-MSPLEQR";
};
};
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"];
};
"/home/cyryl/rodzice_sync" = {
id = "rodzice";
label = "rodzice";
devices = workstations ++ ["hagath" "mama" "janusz" "danuta"];
};
};
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"
];
};
};
};
}