nixos/system/core/syncthing.nix
2026-01-15 14:45:26 +01:00

70 lines
1.9 KiB
Nix

{ config, lib, ... }:
let
host = config.networking.hostName;
in
{
options.syncthing.enable = lib.mkEnableOption "Enables Syncthing";
options.syncthing.dataDir = lib.mkOption { default = "/home/lilith"; };
config = lib.mkIf config.syncthing.enable {
sops.secrets."syncthing/key.pem" = {
sopsFile = ../../hosts/${host}/secrets/default.yaml;
};
sops.secrets."syncthing/cert.pem" = {
sopsFile = ../../hosts/${host}/secrets/default.yaml;
};
services.syncthing = {
enable = true;
user = "lilith";
dataDir = config.syncthing.dataDir;
configDir = "/home/lilith/.config/syncthing";
overrideDevices = true;
overrideFolders = true;
key = config.sops.secrets."syncthing/key.pem".path;
cert = config.sops.secrets."syncthing/cert.pem".path;
settings = {
devices = {
"lilith-phone" = {
id = "N3VHPZJ-DARZYPM-TIBLRAZ-KN6QWYJ-VU6FP2N-INYVJZ3-ZSUD63P-NSXLIQ6";
};
"lilith-lab" = {
id = "DW6GTZ3-3JPAHLO-UEB3LBL-AWOX3BT-QPI7ODT-OZ6Q4YR-K3KK22C-5RY3XQZ";
};
"lilith-pc" = {
id = "ZXFUFLA-MJJCNE4-SJTGTYD-SEJZUCX-3KIFTL6-LFIWBBU-HD2LX2F-7FQ5VAF";
};
"lilith-pad" = {
id = "GQJA6WA-G5YZZSN-4OOQMVE-JPIR22N-VFHPY4O-XMRG37D-DALH4R2-7DCTMQK";
};
};
folders = {
"sync" = {
id = "rdcj2-mfyb4";
path = "${config.syncthing.dataDir}/sync";
devices = [
"lilith-phone"
"lilith-lab"
"lilith-pad"
"lilith-pc"
];
};
"keepass" = {
id = "sdpfs-2beqd";
path = "${config.syncthing.dataDir}/.keepass";
devices = [
"lilith-phone"
"lilith-lab"
"lilith-pad"
"lilith-pc"
];
};
};
};
};
};
}