{ 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"; }; prosorinos = { id = "3VO3M5I-FXJXPFZ-HSSBQIJ-4ZK4ALK-O3MI2CL-TS7BNBC-Z5OLGE2-MO7K3QK "; }; }; folders = { Documents = { id = "wusdj-bfjkr"; type = "receiveonly"; path = "/vault/syncthing/Documents"; devices = [ "panacea" "prosorinos" ]; }; Notes = { id = "kafhz-bfmzm"; type = "receiveonly"; path = "/vault/syncthing/Notes"; devices = [ "panacea" "prosorinos" ]; }; Music = { id = "2aqt7-vpprc"; type = "receiveonly"; path = "/vault/syncthing/Music"; devices = [ "panacea" "prosorinos" ]; }; Photos = { id = "mjibc-ustcg"; type = "receiveonly"; path = "/vault/syncthing/Photos"; devices = [ "panacea" "prosorinos" ]; }; Projects = { id = "cjhmu-avy9v"; type = "receiveonly"; path = "/vault/syncthing/Projects"; devices = [ "panacea" ]; }; }; }; }; # Enable Radicale services.radicale = { enable = true; config = '' [server] hosts = 127.0.0.1:5232 max_connections = 20 max_content_length = 100000000 timeout = 30 [auth] type = htpasswd htpasswd_filename = /var/lib/radicale/users htpasswd_encryption = plain delay = 1 ''; }; # ZFS automatic snapshotting services.znapzend = { enable = true; autoCreation = true; features = { compressed = true; recvu = true; }; zetup = { "vault/backups" = { plan = "1day=>1hour,1month=>1day,1year=>1month"; recursive = true; mbuffer.enable = true; }; "vault/syncthing" = { plan = "1hour=>15min,1day=>15min,1month=>1day,1year=>1month"; recursive = true; mbuffer.enable = true; }; "vault/git" = { plan = "1hour=>15min,1day=>1hour,1month=>1day,1year=>1month"; recursive = true; mbuffer.enable = true; }; }; }; }