zion/modules/datasync.nix

102 lines
2.3 KiB
Nix

{ 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;
};
}