122 lines
2.6 KiB
Nix
122 lines
2.6 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
{
|
|
# ZFS automatic snapshots
|
|
services.zfs.autoSnapshot = {
|
|
enable = true;
|
|
frequent = 4;
|
|
hourly = 24;
|
|
daily = 7;
|
|
weekly = 4;
|
|
monthly = 12;
|
|
};
|
|
|
|
# Syncthing configuration
|
|
services.syncthing = {
|
|
enable = true;
|
|
user = "coolneng";
|
|
dataDir = "/home/coolneng";
|
|
key = config.age.secrets.syncthing.path;
|
|
devices.zion = {
|
|
id = "FLI2RS7-GNI5PDM-SQRNF7P-YJIOXJ7-46FRPEI-NRLQGBC-HXRWG7O-RKOVLAF";
|
|
addresses = [ "tcp://192.168.1.2:22000" ];
|
|
};
|
|
folders = {
|
|
Documents = {
|
|
id = "wusdj-bfjkr";
|
|
path = "/home/coolneng/Documents";
|
|
devices = [ "zion" ];
|
|
versioning = {
|
|
type = "simple";
|
|
params.keep = "5";
|
|
};
|
|
};
|
|
|
|
Notes = {
|
|
id = "kafhz-bfmzm";
|
|
path = "/home/coolneng/Notes";
|
|
devices = [ "zion" ];
|
|
versioning = {
|
|
type = "simple";
|
|
params.keep = "5";
|
|
};
|
|
};
|
|
|
|
Music = {
|
|
id = "2aqt7-vpprc";
|
|
path = "/home/coolneng/Music";
|
|
devices = [ "zion" ];
|
|
};
|
|
|
|
Photos = {
|
|
id = "mjibc-ustcg";
|
|
path = "/home/coolneng/Photos";
|
|
devices = [ "zion" ];
|
|
};
|
|
|
|
Projects = {
|
|
id = "cjhmu-avy9v";
|
|
path = "/home/coolneng/Projects";
|
|
devices = [ "zion" ];
|
|
};
|
|
|
|
Phone = {
|
|
id = "m2007j20cg_vc7r-photos";
|
|
type = "receiveonly";
|
|
path = "/home/coolneng/Photos/Phone";
|
|
devices = [ "zion" ];
|
|
};
|
|
|
|
Files = {
|
|
id = "tsk52-u6rbk";
|
|
path = "/home/coolneng/Files";
|
|
devices = [ "zion" ];
|
|
};
|
|
};
|
|
};
|
|
|
|
# Samba configuration
|
|
fileSystems."/ugent" = {
|
|
device = "//files.ugent.be/akasroua";
|
|
fsType = "cifs";
|
|
options = let
|
|
automount_opts =
|
|
"x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
|
credentials = config.age.secrets.samba-ugent.path;
|
|
# Automount external storage
|
|
systemd.mounts = [
|
|
# USB
|
|
{
|
|
what = "/dev/sda1";
|
|
where = "/usb";
|
|
mountConfig = { TimeoutSec = "5"; };
|
|
}
|
|
# SD card
|
|
{
|
|
what = "/dev/mmcblk0p1";
|
|
where = "/sdcard";
|
|
mountConfig = { TimeoutSec = "5"; };
|
|
}
|
|
];
|
|
systemd.automounts = [
|
|
# USB
|
|
{
|
|
where = "/usb";
|
|
automountConfig = { TimeoutIdleSec = "5"; };
|
|
wantedBy = [ "default.target" ];
|
|
}
|
|
# SD card
|
|
{
|
|
where = "/sdcard";
|
|
automountConfig = { TimeoutIdleSec = "5"; };
|
|
wantedBy = [ "default.target" ];
|
|
}
|
|
];
|
|
|
|
in [
|
|
"${automount_opts},credentials=${credentials},noperm,vers=3.0,sec=ntlmv2i"
|
|
];
|
|
};
|
|
|
|
}
|