~ruther/nixos-config

ref: 6904cf1761334d033556f106c82d79b48e6657f4 nixos-config/nixos/modules/profiles/sync.nix -rw-r--r-- 1.7 KiB
6904cf17 — Frantisek Bohacek refactor: modularize the configuration 1 year, 1 day ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
{ config, lib, ... }:

let
  user = config.nixos-config.defaultUser;
  homePath = config.home-manager.users.${user}.home.homeDirectory;
in {

  options = {
    profiles.sync = {
      enable = lib.mkEnableOption "sync";
    };
  };

  config = lib.mkIf config.profiles.sync.enable {

    networking.firewall = {
      allowedTCPPorts = [ 22000 ];
      allowedUDPPorts = [ 22000 21027 ];
    };

    services.syncthing = {
      enable = true;
      user = "${user}";
      dataDir = "${homePath}";
      configDir = "${homePath}/.config/syncthing";
      overrideDevices = true;
      overrideFolders = true;
      settings = {

        devices = {
          phone = { id = "SRCBWOD-UBR76WT-ZB4OLV2-34U6TRL-YLVMSGQ-I5JYZP6-VD7XR6S-5732ZAZ"; };
          desktop = { id = "BVFWKZE-DWZTSJR-OHCLGY3-X2PU7F3-XMPMGEH-QONACL5-MMRJE5O-CHRY4Q5"; };
          laptop = { id = "3AGVM6S-RFTHVHR-OGK5RHI-YDEO6GN-RU4ZH77-VLBZAC7-JVHD6S6-VISXGQT"; };
        };

        folders = {
          "uni" = {
            path = "${homePath}/doc/uni";
            devices = [ "phone" "desktop" "laptop" ];
          };
          "notes" = {
            path = "${homePath}/doc/notes/obsidian/Notes";
            devices = [ "phone" "desktop" "laptop" ];
          };
          "camera" = {
            path = "${homePath}/doc/camera";
            devices = [ "phone" "desktop" "laptop" ];
          };
          "study" = {
            path = "${homePath}/doc/study";
            devices = [ "phone" "desktop" "laptop" ];
          };
        };
        options = {
          natenabled = false;
          relaysEnabled = false;
          globalAnnounceEnabled = false;
          localAnnounceEnabled = true;
        };
      };
    };
  };
}
Do not follow this link