68 lines
1.7 KiB
Nix
68 lines
1.7 KiB
Nix
{
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
...
|
|
}: let
|
|
service = "syncthing";
|
|
cfg = config.holocron.${service};
|
|
sec = config.sops.secrets;
|
|
in {
|
|
options.system.${service} = {
|
|
enable = lib.mkEnableOption "enables syncthing";
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
services.syncthing = {
|
|
enable = true;
|
|
user = "blake";
|
|
group = "blake";
|
|
dataDir = "/var/lib/syncthing";
|
|
guiAddress = "0.0.0.0:2222";
|
|
openDefaultPorts = true;
|
|
extraFlags = ["--no-default-folder"];
|
|
key = sec."${service}/snowbelle/key".path;
|
|
cert = sec."${service}/snowbelle/cert".path;
|
|
settings = {
|
|
devices = {
|
|
"lugia" = {id = "BKKSFPH-YEOVVAB-DTT7KK3-UDKAEJ2-PC6ECG7-Y76ZIVP-JRYMMXS-RTZYVQ3";};
|
|
"zygarde" = {id = "UYLTF52-VVKUR7F-JN33HQZ-RFNWGL3-JER52LA-GZD2LPJ-QIFEE7K-MNMZRQ5";};
|
|
"CEN-IT-07" = {id = "DPYKA4Z-3PX7JB2-FBEOXXX-SC7TLT2-QC5P2IR-SXOPJGX-QO3DMII-5B7UCA4";};
|
|
};
|
|
folders = {
|
|
"holocron" = {
|
|
path = "/holocron/users/blake/holocron";
|
|
devices = ["lugia" "zygarge" "CEN-IT-07"];
|
|
versioning = {
|
|
type = "staggered";
|
|
fsPath = "/syncthing/backup";
|
|
params = {
|
|
cleanInterval = "3600";
|
|
maxAge = "0";
|
|
};
|
|
};
|
|
|
|
};
|
|
};
|
|
options = {
|
|
urAccepted = -1;
|
|
};
|
|
};
|
|
};
|
|
|
|
sec = {
|
|
"${service}/snowbelle/key" = {
|
|
owner = "blake";
|
|
group = "blake";
|
|
};
|
|
"${service}/snowbelle/cert" = {
|
|
owner = "blake";
|
|
group = "blake";
|
|
};
|
|
};
|
|
homelab.backups.baks = {
|
|
${service} = { paths = [ config.services.syncthing.dataDir ]; };
|
|
};
|
|
};
|
|
}
|