{ config, pkgs, lib, ... }: {

  # Syncthing configuration
  services.syncthing = {
    enable = true;
    openDefaultPorts = true;
    guiAddress = "0.0.0.0:8384";
    dataDir = "/vault/syncthing";
    declarative = {
      devices = {
        panacea = {
          id =
            "UNZIABR-GEQ4AWT-XKFADLW-HW3SQ3Y-BEYZ56A-W530DLS-DXGQWKK-2QQ4RQ6";
        };
        caravanserai = {
          id =
            "6KSGHNJ-NH4EZGP-X5HGV6B-OQ3ZFE6-WZQACOC-6WKPRGI-TTBRHJ5-U3R2AQ3";
        };
      };
      folders = {
        Documents = {
          id = "wusdj-bfjkr";
          type = "receiveonly";
          path = "/vault/syncthing/Documents";
          devices = [ "panacea" "caravanserai" ];
        };

        Notes = {
          id = "kafhz-bfmzm";
          type = "receiveonly";
          path = "/vault/syncthing/Notes";
          devices = [ "panacea" "caravanserai" ];
        };

        Music = {
          id = "2aqt7-vpprc";
          type = "receiveonly";
          path = "/vault/syncthing/Music";
          devices = [ "panacea" "caravanserai" ];
        };

        Photos = {
          id = "mjibc-ustcg";
          type = "receiveonly";
          path = "/vault/syncthing/Photos";
          devices = [ "panacea" "caravanserai" ];
        };

        Projects = {
          id = "cjhmu-avy9v";
          type = "receiveonly";
          path = "/vault/syncthing/Projects";
          devices = [ "panacea" ];
        };

        Phone = {
          id = "m2007j20cg_288y-photos";
          type = "receiveonly";
          path = "/vault/syncthing/Photos/Phone";
          devices = [ "panacea" "caravanserai" ];
        };

        Files = {
          id = "tsk52-u6rbk";
          type = "receiveonly";
          path = "/vault/syncthing/Files";
          devices = [ "panacea" "caravanserai" ];
        };
      };
    };
  };

  # Enable Radicale
  services.radicale = {
    enable = true;
    config = ''
      [server]
      hosts = 127.0.0.1:5232

      [auth]
      type = htpasswd
      htpasswd_filename = /vault/radicale/users
      htpasswd_encryption = md5
      delay = 1

      [storage]
      filesystem_folder = /vault/radicale/collections
    '';
  };

  # ZFS automatic snapshots
  services.zfs.autoSnapshot = {
    enable = true;
    frequent = 4;
    hourly = 24;
    daily = 7;
    weekly = 4;
    monthly = 12;
  };

}