summaryrefslogtreecommitdiff
path: root/modules/nixos
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos')
-rw-r--r--modules/nixos/syncthing.nix126
1 files changed, 62 insertions, 64 deletions
diff --git a/modules/nixos/syncthing.nix b/modules/nixos/syncthing.nix
index 24bfbb6..399fb6b 100644
--- a/modules/nixos/syncthing.nix
+++ b/modules/nixos/syncthing.nix
@@ -50,76 +50,13 @@ in {
overrideDevices = true;
overrideFolders = true;
- devices = mapAttrs (name: attr:
- mkIf (attr.syncthing.id != null && hasAttr "wireguard" attr) {
- inherit (attr.syncthing) id;
- addresses = ["tcp://${name}.${config.networking.domain}:22000"];
- introducer = this.isHeadless;
- })
- my.configurations;
-
- folders = let
- filterDevices = f:
- attrNames (filterAttrs (_: attr:
- (attr.hostname != this.hostname)
- && (attr.syncthing.id != null)
- && f attr)
- my.configurations);
- all = filterDevices (_: true);
- notHeadless = filterDevices (attr: !attr.isHeadless);
- notOther = filterDevices (attr: !attr.isOther);
-
- simple = {
- type = "simple";
- params.keep = "5";
- };
- trashcan = {
- type = "trashcan";
- params.cleanoutDays = "7";
- };
- in
- with config.hm.xdg.userDirs; {
- share = {
- path = publicShare;
- devices = notHeadless;
- versioning = trashcan;
- };
- pass = {
- path = config.hm.programs.password-store.settings.PASSWORD_STORE_DIR;
- devices = notOther;
- versioning = trashcan;
- };
- org = {
- path = "${documents}/org";
- devices = all;
- versioning = simple;
- };
- roam = {
- path = "${documents}/roam";
- devices = notOther;
- versioning = simple;
- };
- elfeed = {
- path = "${config.my.home}/.elfeed";
- devices = notOther;
- versioning = trashcan;
- };
- books = {
- path = "${documents}/books";
- devices = notOther;
- versioning = trashcan;
- };
- };
-
- extraOptions = {
+ settings = {
options = {
- testOption = false;
autoUpgradeIntervalH = 0;
crashReportingEnabled = false;
globalAnnounceEnabled = false;
relaysEnabled = false;
setLowPriority = this.isHeadless;
- stunKeepaliveMinS = 0;
stunKeepaliveStartS = 0;
urAccepted = -1;
};
@@ -128,6 +65,67 @@ in {
insecureAdminAccess = true;
insecureSkipHostcheck = this.isHeadless;
};
+
+ devices = mapAttrs (name: attr:
+ mkIf (attr.syncthing.id != null && hasAttr "wireguard" attr) {
+ inherit (attr.syncthing) id;
+ addresses = ["tcp://${name}.${config.networking.domain}:22000"];
+ introducer = this.isHeadless;
+ })
+ my.configurations;
+
+ folders = let
+ filterDevices = f:
+ attrNames (filterAttrs (_: attr:
+ (attr.hostname != this.hostname)
+ && (attr.syncthing.id != null)
+ && f attr)
+ my.configurations);
+ all = filterDevices (_: true);
+ notHeadless = filterDevices (attr: !attr.isHeadless);
+ notOther = filterDevices (attr: !attr.isOther);
+
+ simple = {
+ type = "simple";
+ params.keep = "5";
+ };
+ trashcan = {
+ type = "trashcan";
+ params.cleanoutDays = "7";
+ };
+ in
+ with config.hm.xdg.userDirs; {
+ share = {
+ path = publicShare;
+ devices = notHeadless;
+ versioning = trashcan;
+ };
+ pass = {
+ path = config.hm.programs.password-store.settings.PASSWORD_STORE_DIR;
+ devices = notOther;
+ versioning = trashcan;
+ };
+ org = {
+ path = "${documents}/org";
+ devices = all;
+ versioning = simple;
+ };
+ roam = {
+ path = "${documents}/roam";
+ devices = notOther;
+ versioning = simple;
+ };
+ elfeed = {
+ path = "${config.my.home}/.elfeed";
+ devices = notOther;
+ versioning = trashcan;
+ };
+ books = {
+ path = "${documents}/books";
+ devices = notOther;
+ versioning = trashcan;
+ };
+ };
};
};